@@ -265,6 +265,7 @@ runBenchmarkInEra sourceWallet submitMode (ThreadName threadName) shape tps era
265
265
let walletRefDst = walletRefSrc
266
266
metadata <- makeMetadata
267
267
268
+
268
269
fundSource <- liftIO (mkBufferedSource walletRefSrc
269
270
(auxInputs shape)
270
271
(auxMinValuePerUTxO shape)
@@ -326,6 +327,7 @@ runPlutusBenchmark sourceWallet submitMode scriptFile scriptBudget scriptData sc
326
327
walletRefDst = walletRefSrc
327
328
walletRefCollateral = walletRefSrc
328
329
fundKey <- getName $ KeyName " pass-partout"
330
+
329
331
script <- liftIO $ PlutusExample. readScript scriptFile
330
332
-- This does not remove the collateral from the wallet, i.e. same collateral is uses for everything.
331
333
-- This is fine unless a script ever fails.
@@ -464,72 +466,44 @@ initWallet :: WalletName -> ActionM ()
464
466
initWallet name = liftIO Wallet. initWallet >>= setName name
465
467
466
468
createChange :: AnyCardanoEra -> WalletName -> WalletName -> SubmitMode -> PayMode -> Lovelace -> Int -> ActionM ()
467
- createChange era sourceWallet dstWallet submitMode payMode value count = case payMode of
468
- PayToAddr keyName -> withEra era $ createChangeInEra sourceWallet dstWallet submitMode PlainOldFund keyName value count
469
- -- Problem here: PayToCollateral will create an output marked as collateral
470
- -- and also return any change to a collateral, which makes the returned change unusable.
471
- PayToCollateral keyName -> withEra era $ createChangeInEra sourceWallet dstWallet submitMode CollateralFund keyName value count
472
- PayToScript scriptFile scriptData -> createChangeScriptFunds sourceWallet dstWallet submitMode scriptFile scriptData value count
473
-
474
- createChangeScriptFunds :: WalletName -> WalletName -> SubmitMode -> FilePath -> ScriptData -> Lovelace -> Int -> ActionM ()
475
- createChangeScriptFunds sourceWallet dstWallet submitMode scriptFile scriptData value count = do
476
- walletRef <- getName dstWallet
477
- networkId <- getUser TNetworkId
478
- protocolParameters <- getProtocolParameters
479
- _fundKey <- getName $ KeyName " pass-partout"
480
- fee <- getUser TFee
481
- script <- liftIO $ PlutusExample. readScript scriptFile -- TODO: this should throw a file-not-found-error !
482
- let
483
- createCoins fundSource coins = do
484
- let
485
- -- selector :: FundSet.FundSource
486
- -- selector = mkWalletFundSource walletRef $ FundSet.selectMinValue $ sum coins + fee
487
- inOut :: [Lovelace ] -> [Lovelace ]
488
- inOut = Wallet. includeChange fee coins
489
- toUTxO = PlutusExample. mkUtxoScript networkId (scriptFile, script, scriptData) Confirmed
490
- fundToStore = mkWalletFundStore walletRef
491
-
492
- tx <- liftIO $ sourceToStoreTransaction
493
- (genTx protocolParameters (TxInsCollateralNone , [] )
494
- (mkFee fee) TxMetadataNone (KeyWitness KeyWitnessForSpending ))
495
- fundSource inOut toUTxO fundToStore
496
- return $ fmap txInModeCardano tx
497
- addressMsg = Text. unpack $ serialiseAddress $ makeShelleyAddress networkId (PaymentCredentialByScript $ hashScript script) NoStakeAddress
498
- createChangeGeneric sourceWallet submitMode createCoins addressMsg value count
469
+ createChange era sourceWallet dstWallet submitMode payMode value count
470
+ = withEra era $ createChangeInEra sourceWallet dstWallet submitMode payMode value count
499
471
500
472
createChangeInEra :: forall era . IsShelleyBasedEra era
501
473
=> WalletName
502
474
-> WalletName
503
475
-> SubmitMode
504
- -> Variant
505
- -> KeyName
476
+ -> PayMode
506
477
-> Lovelace
507
478
-> Int
508
479
-> AsType era
509
480
-> ActionM ()
510
- createChangeInEra sourceWallet dstWallet submitMode variant keyName value count _proxy = do
481
+ createChangeInEra sourceWallet dstWallet submitMode payMode value count era = do
511
482
networkId <- getUser TNetworkId
512
483
walletRef <- getName dstWallet
513
484
fee <- getUser TFee
514
485
protocolParameters <- getProtocolParameters
515
- fundKey <- getName keyName
486
+ (toUTxO, addressMsg) <- case payMode of
487
+ PayToAddr keyName -> do
488
+ fundKey <- getName keyName
489
+ return ( Wallet. mkUTxOVariant PlainOldFund networkId fundKey Confirmed
490
+ , Text. unpack $ serialiseAddress $ keyAddress @ era networkId fundKey)
491
+ PayToCollateral keyName -> do
492
+ fundKey <- getName keyName
493
+ return ( Wallet. mkUTxOVariant CollateralFund networkId fundKey Confirmed
494
+ , Text. unpack $ serialiseAddress $ keyAddress @ era networkId fundKey)
495
+ PayToScript scriptFile scriptData -> do
496
+ script <- liftIO $ PlutusExample. readScript scriptFile -- TODO: this should throw a file-not-found-error !
497
+ return ( PlutusExample. mkUTxOScript networkId (scriptFile, script, scriptData) Confirmed
498
+ , Text. unpack $ serialiseAddress $ makeShelleyAddress networkId (PaymentCredentialByScript $ hashScript script) NoStakeAddress )
516
499
let
517
500
createCoins :: FundSet. FundSource -> [Lovelace ] -> ActionM (Either String (TxInMode CardanoMode ))
518
501
createCoins fundSource coins = do
519
- let
520
- -- selector :: FundSet.FundSource
521
- -- selector = mkWalletFundSource walletRef $ FundSet.selectMinValue $ sum coins + fee
522
- inOut :: [Lovelace ] -> [Lovelace ]
523
- inOut = Wallet. includeChange fee coins
524
- toUTxO = Wallet. mkUTxOVariant variant networkId fundKey Confirmed
525
- fundToStore = mkWalletFundStore walletRef
526
-
527
502
(tx :: Either String (Tx era )) <- liftIO $ sourceToStoreTransaction
528
503
(genTx protocolParameters (TxInsCollateralNone , [] )
529
504
(mkFee fee) TxMetadataNone (KeyWitness KeyWitnessForSpending ))
530
- fundSource inOut toUTxO fundToStore
505
+ fundSource ( Wallet. includeChange fee coins) toUTxO (mkWalletFundStore walletRef)
531
506
return $ fmap txInModeCardano tx
532
- addressMsg = Text. unpack $ serialiseAddress $ keyAddress @ era networkId fundKey
533
507
createChangeGeneric sourceWallet submitMode createCoins addressMsg value count
534
508
535
509
createChangeGeneric ::
0 commit comments