@@ -9,7 +9,6 @@ import Data.Dependent.Sum ((==>))
9
9
import Data.String
10
10
11
11
import Control.Monad
12
- import Control.Monad.IO.Class (liftIO )
13
12
14
13
import Cardano.Api
15
14
import Ouroboros.Network.NodeToClient (IOManager )
@@ -20,7 +19,7 @@ import Cardano.Benchmarking.Script.Env as Script
20
19
import Cardano.Benchmarking.Script.Setters
21
20
import Cardano.Benchmarking.Script.Store
22
21
import Cardano.Benchmarking.Script.Types
23
- import Cardano.Benchmarking.Tracer (initDefaultTracers )
22
+ import Cardano.Benchmarking.Tracer (initNullTracers )
24
23
25
24
import Paths_tx_generator
26
25
@@ -30,7 +29,7 @@ runSelftest iom outFile = do
30
29
let
31
30
submitMode = maybe DiscardTX DumpToFile outFile
32
31
fullScript = do
33
- liftIO initDefaultTracers >>= set BenchTracers
32
+ set BenchTracers initNullTracers
34
33
forM_ (testScript protocolFile submitMode) action
35
34
runActionM fullScript iom >>= \ case
36
35
(Right a , _ , () ) -> return $ Right a
@@ -40,28 +39,44 @@ printJSON :: IO ()
40
39
printJSON = BSL. putStrLn $ prettyPrint $ testScript " /dev/zero" DiscardTX
41
40
42
41
testScript :: FilePath -> SubmitMode -> [Action ]
43
- testScript protocolFile _submitMode =
42
+ testScript protocolFile submitMode =
44
43
[ SetProtocolParameters (UseLocalProtocolFile protocolFile)
45
44
, Set (TTTL ==> SlotNo 1000000 )
46
45
, Set (TNetworkId ==> Testnet (NetworkMagic {unNetworkMagic = 42 }))
47
- , InitWallet wallet
46
+ , InitWallet genesisWallet
47
+ , InitWallet splitWallet1
48
+ , InitWallet splitWallet2
49
+ , InitWallet splitWallet3
50
+ , InitWallet doneWallet
48
51
, DefineSigningKey key
49
52
(TextEnvelope { teType = TextEnvelopeType " GenesisUTxOSigningKey_ed25519"
50
53
, teDescription = fromString " Genesis Initial UTxO Signing Key"
51
- , teRawCBOR = " X \v l1~\182\201v(\152\250A\202\157h0\ETX \248h\153\171\SI /m\186\242D\228\NAK \182(&\162" })
52
- , AddFund era wallet
54
+ , teRawCBOR = " X \v l1~\182\201v(\152\250A\202\157h0\ETX \248h\153\171\SI /m\186\242D\228\NAK \182(&\162" })
55
+ , AddFund era genesisWallet
53
56
(TxIn " 900fc5da77a0747da53f7675cbb7d149d46779346dea2f879ab811ccc72a2162" (TxIx 0 ))
54
57
(Lovelace 90000000000000 ) key
55
- , createChange 2200000000000 10
56
- , createChange 70000000000 300
57
- , createChange 2300000000 9000
58
- -- , Submit era submitMode $ Take 4000 $ Cycle $ BechmarkTx wallet extraArgs Nothing
58
+ , createChange genesisWallet splitWallet1 1 10
59
+ , createChange splitWallet1 splitWallet2 10 30 -- 10 TXs with 30 outputs -> in total 300 outputs
60
+ , createChange splitWallet2 splitWallet3 300 30
61
+ {-
62
+ , createChange genesisWallet splitWallet3 1 10
63
+ -- Fifo implementation should also work fine when sourceWallet==destWallet
64
+ , createChange splitWallet3 splitWallet3 10 30
65
+ , createChange splitWallet3 splitWallet3 300 30
66
+ -}
67
+
68
+ , Submit era submitMode $ Take 4000 $ Cycle
69
+ $ NtoM fee splitWallet3 (PayToAddr key doneWallet) 2 2 Nothing Nothing
59
70
]
60
- where
71
+ where
61
72
era = AnyCardanoEra AllegraEra
62
- wallet = WalletName " test-wallet"
73
+ fee = 1000000
74
+ genesisWallet = WalletName " genesisWallet"
75
+ splitWallet1 = WalletName " SplitWallet-1"
76
+ splitWallet2 = WalletName " SplitWallet-2"
77
+ splitWallet3 = WalletName " SplitWallet-3"
78
+ doneWallet = WalletName " doneWallet"
63
79
key = KeyName " pass-partout"
64
- -- payMode = PayToAddr key wallet
65
- createChange :: Int -> Int -> Action
66
- createChange _val _count
67
- = LogMsg " TODO: Fix this " -- CreateChange era wallet submitMode payMode payMode (Lovelace val) count
80
+ createChange :: WalletName -> WalletName -> Int -> Int -> Action
81
+ createChange src dest txCount outputs
82
+ = Submit era submitMode $ Take txCount $ Cycle $ SplitN fee src (PayToAddr key dest) outputs
0 commit comments