Skip to content

Commit c904c5a

Browse files
committed
Add dijkstra genesis support in create-testnet-data
1 parent bed4c37 commit c904c5a

File tree

12 files changed

+29
-6
lines changed

12 files changed

+29
-6
lines changed

cardano-cli/cardano-cli.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ library
251251
cardano-ledger-api,
252252
cardano-ledger-conway,
253253
cardano-ledger-core,
254+
cardano-ledger-dijkstra,
254255
cardano-ping ^>=0.9,
255256
cardano-prelude,
256257
cardano-protocol-tpraos,

cardano-cli/src/Cardano/CLI/EraBased/Genesis/Command.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ data GenesisCreateTestNetDataCmdArgs = forall era. GenesisCreateTestNetDataCmdAr
105105
-- ^ Path to the @genesis-alonzo@ file to use. If unspecified, a default one will be used.
106106
, specConway :: !(Maybe FilePath)
107107
-- ^ Path to the @genesis-conway@ file to use. If unspecified, a default one will be used.
108+
, specDijkstra :: !(Maybe FilePath)
109+
-- ^ Path to the @genesis-dijkstra@ file to use. If unspecified, a default one will be used.
108110
, numGenesisKeys :: !Word
109111
-- ^ The number of genesis keys credentials to create and write to disk.
110112
, numPools :: !Word

cardano-cli/src/Cardano/CLI/EraBased/Genesis/CreateTestnetData/Run.hs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ import Cardano.CLI.Type.Error.NodeCmdError
5656
import Cardano.CLI.Type.Error.StakePoolCmdError
5757
import Cardano.CLI.Type.Key
5858
import Cardano.Crypto.Hash qualified as Crypto
59-
import Cardano.Ledger.Compactible qualified as L
6059
import Cardano.Prelude (canonicalEncodePretty)
6160
import Cardano.Protocol.Crypto qualified as C
6261

@@ -222,6 +221,7 @@ runGenesisCreateTestNetDataCmd
222221
, specShelley
223222
, specAlonzo
224223
, specConway
224+
, specDijkstra
225225
, numGenesisKeys
226226
, numPools
227227
, stakeDelegators =
@@ -252,6 +252,9 @@ runGenesisCreateTestNetDataCmd
252252
<$> traverse (fromExceptTCli . decodeAlonzoGenesisFile) specAlonzo
253253
conwayGenesis <-
254254
fromMaybe conwayGenesisDefaults <$> fromExceptTCli (traverse decodeConwayGenesisFile specConway)
255+
dijkstraGenesis <-
256+
fromMaybe dijkstraGenesisDefaults
257+
<$> fromExceptTCli (traverse decodeDijkstraGenesisFile specDijkstra)
255258

256259
-- Read NetworkId either from file or from the flag. Flag overrides template file.
257260
let actualNetworkId =
@@ -427,9 +430,10 @@ runGenesisCreateTestNetDataCmd
427430
-- 2. Users of cardano-testnet may use them
428431

429432
forM_
430-
[ ("conway-genesis.json", WritePretty conwayGenesis')
431-
, ("shelley-genesis.json", WritePretty shelleyGenesis')
433+
[ ("shelley-genesis.json", WritePretty shelleyGenesis')
432434
, ("alonzo-genesis.json", WritePretty alonzoGenesis)
435+
, ("conway-genesis.json", WritePretty conwayGenesis')
436+
, ("dijkstra-genesis.json", WritePretty dijkstraGenesis)
433437
]
434438
$ \(filename, genesis) -> fromExceptTCli $ writeFileGenesis (outputDir </> filename) genesis
435439
where

cardano-cli/src/Cardano/CLI/EraBased/Genesis/Internal/Common.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module Cardano.CLI.EraBased.Genesis.Internal.Common
1212
( decodeShelleyGenesisFile
1313
, decodeAlonzoGenesisFile
1414
, decodeConwayGenesisFile
15+
, decodeDijkstraGenesisFile
1516
, genStuffedAddress
1617
, getCurrentTimePlus30
1718
, readRelays
@@ -33,6 +34,7 @@ import Cardano.CLI.Type.Error.ProtocolParamsError
3334
import Cardano.Crypto.Hash (HashAlgorithm)
3435
import Cardano.Crypto.Hash qualified as Hash
3536
import Cardano.Crypto.Random qualified as Crypto
37+
import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis (..))
3638

3739
import Data.Aeson qualified as A
3840
import Data.Binary.Get qualified as Bin
@@ -66,6 +68,12 @@ decodeConwayGenesisFile
6668
-> t m ConwayGenesis
6769
decodeConwayGenesisFile = readAndDecodeGenesisFileWith A.eitherDecode
6870

71+
decodeDijkstraGenesisFile
72+
:: MonadIOTransError GenesisCmdError t m
73+
=> FilePath
74+
-> t m DijkstraGenesis
75+
decodeDijkstraGenesisFile = readAndDecodeGenesisFileWith A.eitherDecode
76+
6977
readAndDecodeGenesisFileWith
7078
:: forall t m a
7179
. Typeable a

cardano-cli/src/Cardano/CLI/EraBased/Genesis/Option.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ pGenesisCreateTestNetData envCli =
231231
<$> optional (pSpecFile "shelley")
232232
<*> optional (pSpecFile "alonzo")
233233
<*> optional (pSpecFile "conway")
234+
<*> optional (pSpecFile "dijkstra")
234235
<*> pNumGenesisKeys
235236
<*> pNumPools
236237
<*> pNumStakeDelegs

cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import Cardano.Api.Byron qualified as Byron
4040
import Cardano.Api.Experimental (obtainCommonConstraints)
4141
import Cardano.Api.Experimental qualified as Exp
4242
import Cardano.Api.Ledger qualified as L
43-
import Cardano.Ledger.Compactible qualified as L
4443
import Cardano.Api.Network qualified as Consensus
4544
import Cardano.Api.Network qualified as Net.Tx
4645

cardano-cli/src/Cardano/CLI/Type/Common.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ import Cardano.Api hiding (Script)
106106
import Cardano.Api.Ledger qualified as L
107107

108108
import Cardano.Ledger.Api.State.Query qualified as L
109-
import Cardano.Ledger.Compactible qualified as L
110109
import Cardano.Ledger.State qualified as L
111110

112111
import Data.Aeson (object, pairs, (.=))

cardano-cli/test/cardano-cli-golden/files/golden/conway/create-testnet-data.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ delegate-keys/delegate2/opcert.cert
5050
delegate-keys/delegate2/opcert.counter
5151
delegate-keys/delegate2/vrf.skey
5252
delegate-keys/delegate2/vrf.vkey
53+
dijkstra-genesis.json
5354
drep-keys/README.md
5455
drep-keys/drep1/drep.skey
5556
drep-keys/drep1/drep.vkey

cardano-cli/test/cardano-cli-golden/files/golden/help.cli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,6 +1232,7 @@ Usage: cardano-cli conway genesis create-staked
12321232
Usage: cardano-cli conway genesis create-testnet-data [--spec-shelley FILEPATH]
12331233
[--spec-alonzo FILEPATH]
12341234
[--spec-conway FILEPATH]
1235+
[--spec-dijkstra FILEPATH]
12351236
[--genesis-keys INT]
12361237
[--pools INT]
12371238
[ --stake-delegators INT
@@ -3529,6 +3530,7 @@ Usage: cardano-cli latest genesis create-staked
35293530
Usage: cardano-cli latest genesis create-testnet-data [--spec-shelley FILEPATH]
35303531
[--spec-alonzo FILEPATH]
35313532
[--spec-conway FILEPATH]
3533+
[--spec-dijkstra FILEPATH]
35323534
[--genesis-keys INT]
35333535
[--pools INT]
35343536
[ --stake-delegators INT

cardano-cli/test/cardano-cli-golden/files/golden/help/conway_genesis_create-testnet-data.cli

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Usage: cardano-cli conway genesis create-testnet-data [--spec-shelley FILEPATH]
22
[--spec-alonzo FILEPATH]
33
[--spec-conway FILEPATH]
4+
[--spec-dijkstra FILEPATH]
45
[--genesis-keys INT]
56
[--pools INT]
67
[ --stake-delegators INT
@@ -28,6 +29,8 @@ Available options:
2829
default one is generated if omitted.
2930
--spec-conway FILEPATH The conway specification file to use as input. A
3031
default one is generated if omitted.
32+
--spec-dijkstra FILEPATH The dijkstra specification file to use as input. A
33+
default one is generated if omitted.
3134
--genesis-keys INT The number of genesis keys to make (default is 3).
3235
--pools INT The number of stake pool credential sets to make
3336
(default is 0).

0 commit comments

Comments
 (0)