@@ -49,8 +49,8 @@ compileToScript = do
49
49
genesisWallet <- newWallet " genesis_wallet"
50
50
importGenesisFunds genesisWallet
51
51
splitWallet <- splittingPhase genesisWallet
52
- addCollaterals genesisWallet splitWallet
53
- benchmarkingPhase splitWallet
52
+ collateralWallet <- addCollaterals genesisWallet
53
+ benchmarkingPhase splitWallet collateralWallet
54
54
55
55
initConstants :: Compiler ()
56
56
initConstants = do
@@ -72,16 +72,18 @@ importGenesisFunds wallet = do
72
72
emit $ ImportGenesisFund era wallet LocalSocket (KeyName " pass-partout" ) (KeyName " pass-partout" )
73
73
delay
74
74
75
- addCollaterals :: SrcWallet -> DstWallet -> Compiler ()
76
- addCollaterals src dest = do
75
+ addCollaterals :: SrcWallet -> Compiler (Maybe WalletName )
76
+ addCollaterals src = do
77
77
era <- askNixOption _nix_era
78
78
isAnyPlutusMode >>= \ case
79
- False -> return ()
80
- True -> do
79
+ False -> return Nothing
80
+ True -> do
81
81
tx_fee <- askNixOption _nix_tx_fee
82
82
safeCollateral <- _safeCollateral <$> evilFeeMagic
83
+ collateralWallet <- newWallet " collaeral_wallet"
83
84
emit $ CreateChange era src src LocalSocket (PayToAddr $ KeyName " pass-partout" ) (safeCollateral + tx_fee) 1
84
- emit $ CreateChange era src dest LocalSocket (PayToCollateral $ KeyName " pass-partout" ) safeCollateral 1
85
+ emit $ CreateChange era src collateralWallet LocalSocket (PayToCollateral $ KeyName " pass-partout" ) safeCollateral 1
86
+ return $ Just collateralWallet
85
87
86
88
splittingPhase :: SrcWallet -> Compiler DstWallet
87
89
splittingPhase srcWallet = do
@@ -104,10 +106,17 @@ splittingPhase srcWallet = do
104
106
createChangePlutus :: AnyCardanoEra -> SplitStep -> Compiler DstWallet
105
107
createChangePlutus era (src, dst, value, count) = do
106
108
autoMode <- isPlutusAutoMode
107
- plutusTarget <- if autoMode
108
- then PayToScript <$> askNixOption _nix_plutusLoopScript <*> pure (ScriptDataNumber 0 )
109
- else PayToScript <$> askNixOption _nix_plutusScript <*> (ScriptDataNumber <$> askNixOption _nix_plutusData)
110
- emit $ CreateChange era src dst LocalSocket plutusTarget value count
109
+ scriptSpec <- if autoMode
110
+ then ScriptSpec <$> askNixOption _nix_plutusLoopScript <*> pure AutoScript
111
+ else do
112
+ executionUnits <- ExecutionUnits <$> askNixOption _nix_executionMemory <*> askNixOption _nix_executionSteps
113
+ debugMode <- askNixOption _nix_debugMode
114
+ budget <- (if debugMode then CheckScriptBudget else StaticScriptBudget )
115
+ <$> (ScriptDataNumber <$> askNixOption _nix_plutusData)
116
+ <*> (ScriptDataNumber <$> askNixOption _nix_plutusRedeemer)
117
+ <*> pure executionUnits
118
+ ScriptSpec <$> askNixOption _nix_plutusScript <*> pure budget
119
+ emit $ CreateChange era src dst LocalSocket (PayToScript scriptSpec) value count
111
120
delay
112
121
return dst
113
122
@@ -138,29 +147,15 @@ unfoldSplitSequence fee value count
138
147
-- todo: this must be in sync with Scipt/Core.hs
139
148
maxOutputs = 30
140
149
141
- benchmarkingPhase :: WalletName -> Compiler ()
142
- benchmarkingPhase wallet = do
150
+ benchmarkingPhase :: WalletName -> Maybe WalletName -> Compiler ()
151
+ benchmarkingPhase wallet collateralWallet = do
143
152
debugMode <- askNixOption _nix_debugMode
144
- plutusMode <- askNixOption _nix_plutusMode
145
- plutusAutoMode <- askNixOption _nix_plutusAutoMode
146
153
targetNodes <- askNixOption _nix_targetNodes
147
154
extraArgs <- evilValueMagic
148
155
tps <- askNixOption _nix_tps
149
156
era <- askNixOption _nix_era
150
157
let target = if debugMode then LocalSocket else NodeToNode targetNodes
151
- spendMode <- case (plutusAutoMode, plutusMode) of
152
- ( True , _ ) -> SpendAutoScript <$> askNixOption _nix_plutusLoopScript
153
- (False , True ) -> do
154
- executionUnits <- ExecutionUnits <$> askNixOption _nix_executionMemory <*> askNixOption _nix_executionSteps
155
- scriptBudget <- if debugMode
156
- then return $ CheckScriptBudget executionUnits
157
- else return $ StaticScriptBudget executionUnits
158
- SpendScript <$> askNixOption _nix_plutusScript
159
- <*> pure scriptBudget
160
- <*> (ScriptDataNumber <$> askNixOption _nix_plutusData)
161
- <*> (ScriptDataNumber <$> askNixOption _nix_plutusRedeemer)
162
- (False ,False ) -> return SpendOutput
163
- emit $ RunBenchmark era wallet target spendMode (ThreadName " tx-submit-benchmark" ) extraArgs tps
158
+ emit $ RunBenchmark era wallet target (ThreadName " tx-submit-benchmark" ) extraArgs collateralWallet tps
164
159
unless debugMode $ do
165
160
emit $ WaitBenchmark $ ThreadName " tx-submit-benchmark"
166
161
0 commit comments