@@ -23,51 +23,54 @@ module Testnet.Cardano
23
23
24
24
import Prelude
25
25
26
- import qualified Cardano.Crypto.Hash.Blake2b
27
- import qualified Cardano.Crypto.Hash.Class
28
26
import Control.Monad
29
27
import Control.Monad.IO.Class (MonadIO , liftIO )
30
28
import Control.Monad.Trans.Except
31
29
import Data.Aeson ((.=) )
30
+ import qualified Data.Aeson as J
32
31
import qualified Data.ByteString as BS
33
32
import Data.ByteString.Lazy (ByteString )
33
+ import qualified Data.HashMap.Lazy as HM
34
34
import Data.List ((\\) )
35
+ import qualified Data.List as L
36
+ import qualified Data.Map.Strict as M
35
37
import Data.Maybe
36
38
import Data.String
37
- import qualified Hedgehog as H
38
- import Hedgehog.Extras.Stock.IO.Network.Sprocket (Sprocket (.. ))
39
- import Hedgehog.Extras.Stock.Time (formatIso8601 , showUTCTimeSeconds )
40
- import Ouroboros.Network.PeerSelection.LedgerPeers (UseLedgerAfter (.. ))
41
- import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (.. ))
39
+ import qualified Data.Time.Clock as DTC
40
+ import Data.Word
41
+ import qualified System.Directory as IO
42
42
import System.FilePath.Posix ((</>) )
43
+ import qualified System.Info as OS
43
44
44
45
import Cardano.Chain.Genesis (GenesisHash (unGenesisHash ), readGenesisData )
46
+ import qualified Cardano.Crypto.Hash.Blake2b
47
+ import qualified Cardano.Crypto.Hash.Class
48
+ import Ouroboros.Network.PeerSelection.LedgerPeers (UseLedgerAfter (.. ))
49
+ import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (.. ))
50
+
45
51
import qualified Cardano.Node.Configuration.Topology as NonP2P
46
52
import qualified Cardano.Node.Configuration.TopologyP2P as P2P
47
- import qualified Data.Aeson as J
48
- import qualified Data.HashMap.Lazy as HM
49
- import qualified Data.List as L
50
- import qualified Data.Map.Strict as M
51
- import qualified Data.Time.Clock as DTC
53
+
54
+ import qualified Hedgehog as H
52
55
import qualified Hedgehog.Extras.Stock.Aeson as J
53
56
import qualified Hedgehog.Extras.Stock.IO.Network.Socket as IO
57
+ import Hedgehog.Extras.Stock.IO.Network.Sprocket (Sprocket (.. ))
54
58
import qualified Hedgehog.Extras.Stock.IO.Network.Sprocket as IO
55
59
import qualified Hedgehog.Extras.Stock.OS as OS
56
60
import qualified Hedgehog.Extras.Stock.String as S
61
+ import Hedgehog.Extras.Stock.Time (formatIso8601 , showUTCTimeSeconds )
57
62
import qualified Hedgehog.Extras.Test.Base as H
58
63
import qualified Hedgehog.Extras.Test.Concurrent as H
59
64
import qualified Hedgehog.Extras.Test.File as H
60
65
import qualified Hedgehog.Extras.Test.Network as H
61
- import qualified System.Directory as IO
62
- import qualified System.Info as OS
66
+
67
+ import qualified Testnet.Conf as H
63
68
import qualified Testnet.Util.Assert as H
64
69
import qualified Testnet.Util.Process as H
65
70
import Testnet.Util.Process (execCli_ )
66
71
import Testnet.Util.Runtime as TR (NodeLoggingFormat (.. ), PaymentKeyPair (.. ),
67
72
PoolNode (PoolNode ), PoolNodeKeys (.. ), TestnetRuntime (.. ), startNode )
68
73
69
- import qualified Testnet.Conf as H
70
-
71
74
{- HLINT ignore "Redundant flip" -}
72
75
{- HLINT ignore "Redundant id" -}
73
76
{- HLINT ignore "Use let" -}
@@ -87,6 +90,7 @@ data CardanoTestnetOptions = CardanoTestnetOptions
87
90
, cardanoEpochLength :: Int
88
91
, cardanoSlotLength :: Double
89
92
, cardanoActiveSlotsCoeff :: Double
93
+ , cardanoMaxSupply :: Word64 -- ^ The amount of ADA you are starting your testnet with
90
94
, cardanoEnableP2P :: Bool
91
95
, cardanoNodeLoggingFormat :: NodeLoggingFormat
92
96
} deriving (Eq , Show )
@@ -98,6 +102,7 @@ defaultTestnetOptions = CardanoTestnetOptions
98
102
, cardanoEpochLength = 1500
99
103
, cardanoSlotLength = 0.2
100
104
, cardanoActiveSlotsCoeff = 0.2
105
+ , cardanoMaxSupply = 10020000000
101
106
, cardanoEnableP2P = False
102
107
, cardanoNodeLoggingFormat = NodeLoggingFormatAsText
103
108
}
@@ -190,8 +195,8 @@ cardanoTestnet testnetOptions H.Conf {..} = do
190
195
bftNodeNames = (" node-bft" <> ) . show @ Int <$> bftNodesN
191
196
poolNodeNames = (" node-pool" <> ) . show @ Int <$> poolNodesN
192
197
allNodeNames = bftNodeNames <> poolNodeNames
193
- maxByronSupply = 10020000000
194
- fundsPerGenesisAddress = maxByronSupply `div` numBftNodes
198
+ maxByronSupply = cardanoMaxSupply testnetOptions
199
+ fundsPerGenesisAddress = maxByronSupply `div` fromIntegral numBftNodes
195
200
fundsPerByronAddress = fundsPerGenesisAddress - 100000000
196
201
userPoolN = poolNodesN
197
202
maxShelleySupply = 1000000000000
@@ -309,7 +314,7 @@ cardanoTestnet testnetOptions H.Conf {..} = do
309
314
, " --k" , show @ Int securityParam
310
315
, " --n-poor-addresses" , " 0"
311
316
, " --n-delegate-addresses" , show @ Int numBftNodes
312
- , " --total-balance" , show @ Int maxByronSupply
317
+ , " --total-balance" , show @ Word64 maxByronSupply
313
318
, " --delegate-share" , " 1"
314
319
, " --avvm-entry-count" , " 0"
315
320
, " --avvm-entry-balance" , " 0"
@@ -359,7 +364,7 @@ cardanoTestnet testnetOptions H.Conf {..} = do
359
364
, " --tx" , tempAbsPath </> " tx0.tx"
360
365
, " --wallet-key" , tempAbsPath </> " byron/delegate-keys.000.key"
361
366
, " --rich-addr-from" , richAddrFrom
362
- , " --txout" , show @ (String , Int ) (txAddr, fundsPerByronAddress)
367
+ , " --txout" , show @ (String , Word64 ) (txAddr, fundsPerByronAddress)
363
368
]
364
369
365
370
-- Update Proposal and votes
0 commit comments