module Cooked.MockChain.GenerateTx
( GenerateTxError (..),
generateBodyContent,
generateTxOut,
generateTx,
)
where
import Cardano.Api qualified as Cardano
import Cardano.Node.Emulator.Internal.Node qualified as Emulator
import Control.Monad.Reader
import Cooked.MockChain.GenerateTx.Body
import Cooked.MockChain.GenerateTx.Common
import Cooked.MockChain.GenerateTx.Output
import Cooked.Skeleton
import Cooked.Wallet
import Data.Map (Map)
import Data.Set (Set)
import Plutus.Script.Utils.Scripts qualified as Script
import PlutusLedgerApi.V3 qualified as Api
generateTxOut ::
Cardano.NetworkId ->
TxSkelOut ->
Either GenerateTxError (Cardano.TxOut Cardano.CtxTx Cardano.ConwayEra)
generateTxOut :: NetworkId
-> TxSkelOut -> Either GenerateTxError (TxOut CtxTx ConwayEra)
generateTxOut NetworkId
networkId TxSkelOut
txSkelOut = ReaderT NetworkId (Either GenerateTxError) (TxOut CtxTx ConwayEra)
-> NetworkId -> Either GenerateTxError (TxOut CtxTx ConwayEra)
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT (TxSkelOut
-> ReaderT
NetworkId (Either GenerateTxError) (TxOut CtxTx ConwayEra)
toCardanoTxOut TxSkelOut
txSkelOut) NetworkId
networkId
generateBodyContent ::
Integer ->
Emulator.Params ->
Map Api.DatumHash Api.Datum ->
Map Api.TxOutRef Api.TxOut ->
Map Script.ValidatorHash (Script.Versioned Script.Validator) ->
Maybe (Set Api.TxOutRef, Wallet) ->
TxSkel ->
Either GenerateTxError (Cardano.TxBodyContent Cardano.BuildTx Cardano.ConwayEra)
generateBodyContent :: Integer
-> Params
-> Map DatumHash Datum
-> Map TxOutRef TxOut
-> Map ValidatorHash (Versioned Validator)
-> Maybe (Set TxOutRef, Wallet)
-> TxSkel
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra)
generateBodyContent Integer
fee Params
params Map DatumHash Datum
managedData Map TxOutRef TxOut
managedTxOuts Map ValidatorHash (Versioned Validator)
managedValidators Maybe (Set TxOutRef, Wallet)
mCollaterals =
(ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra)
-> TxContext
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra))
-> TxContext
-> ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra)
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra)
forall a b c. (a -> b -> c) -> b -> a -> c
flip ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra)
-> TxContext
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra)
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT TxContext {Integer
Maybe (Set TxOutRef, Wallet)
Map TxOutRef TxOut
Map DatumHash Datum
Map ValidatorHash (Versioned Validator)
Params
fee :: Integer
params :: Params
managedData :: Map DatumHash Datum
managedTxOuts :: Map TxOutRef TxOut
managedValidators :: Map ValidatorHash (Versioned Validator)
mCollaterals :: Maybe (Set TxOutRef, Wallet)
fee :: Integer
mCollaterals :: Maybe (Set TxOutRef, Wallet)
params :: Params
managedData :: Map DatumHash Datum
managedTxOuts :: Map TxOutRef TxOut
managedValidators :: Map ValidatorHash (Versioned Validator)
..} (ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra)
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra))
-> (TxSkel
-> ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra))
-> TxSkel
-> Either GenerateTxError (TxBodyContent BuildTx ConwayEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxSkel
-> ReaderT
TxContext
(Either GenerateTxError)
(TxBodyContent BuildTx ConwayEra)
txSkelToBodyContent
generateTx ::
Integer ->
Emulator.Params ->
Map Api.DatumHash Api.Datum ->
Map Api.TxOutRef Api.TxOut ->
Map Script.ValidatorHash (Script.Versioned Script.Validator) ->
Maybe (Set Api.TxOutRef, Wallet) ->
TxSkel ->
Either GenerateTxError (Cardano.Tx Cardano.ConwayEra)
generateTx :: Integer
-> Params
-> Map DatumHash Datum
-> Map TxOutRef TxOut
-> Map ValidatorHash (Versioned Validator)
-> Maybe (Set TxOutRef, Wallet)
-> TxSkel
-> Either GenerateTxError (Tx ConwayEra)
generateTx Integer
fee Params
params Map DatumHash Datum
managedData Map TxOutRef TxOut
managedTxOuts Map ValidatorHash (Versioned Validator)
managedValidators Maybe (Set TxOutRef, Wallet)
mCollaterals =
(ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra)
-> TxContext -> Either GenerateTxError (Tx ConwayEra))
-> TxContext
-> ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra)
-> Either GenerateTxError (Tx ConwayEra)
forall a b c. (a -> b -> c) -> b -> a -> c
flip ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra)
-> TxContext -> Either GenerateTxError (Tx ConwayEra)
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT TxContext {Integer
Maybe (Set TxOutRef, Wallet)
Map TxOutRef TxOut
Map DatumHash Datum
Map ValidatorHash (Versioned Validator)
Params
fee :: Integer
mCollaterals :: Maybe (Set TxOutRef, Wallet)
params :: Params
managedData :: Map DatumHash Datum
managedTxOuts :: Map TxOutRef TxOut
managedValidators :: Map ValidatorHash (Versioned Validator)
fee :: Integer
params :: Params
managedData :: Map DatumHash Datum
managedTxOuts :: Map TxOutRef TxOut
managedValidators :: Map ValidatorHash (Versioned Validator)
mCollaterals :: Maybe (Set TxOutRef, Wallet)
..} (ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra)
-> Either GenerateTxError (Tx ConwayEra))
-> (TxSkel
-> ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra))
-> TxSkel
-> Either GenerateTxError (Tx ConwayEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxSkel -> ReaderT TxContext (Either GenerateTxError) (Tx ConwayEra)
txSkelToCardanoTx