module Cooked.MockChain.GenerateTx
( txSignersAndBodyToCardanoTx,
txSkelToCardanoTx,
)
where
import Cardano.Api.Shelley qualified as Cardano
import Cooked.MockChain.BlockChain
import Cooked.MockChain.GenerateTx.Body
import Cooked.MockChain.GenerateTx.Witness
import Cooked.Skeleton
import Cooked.Wallet
import Data.Set (Set)
import PlutusLedgerApi.V3 qualified as Api
txSignersAndBodyToCardanoTx :: [Wallet] -> Cardano.TxBody Cardano.ConwayEra -> Cardano.Tx Cardano.ConwayEra
txSignersAndBodyToCardanoTx :: [Wallet] -> TxBody ConwayEra -> Tx ConwayEra
txSignersAndBodyToCardanoTx [Wallet]
signers TxBody ConwayEra
txBody = TxBody ConwayEra -> [KeyWitness ConwayEra] -> Tx ConwayEra
forall era. TxBody era -> [KeyWitness era] -> Tx era
Cardano.Tx TxBody ConwayEra
txBody (TxBody ConwayEra -> Wallet -> KeyWitness ConwayEra
toKeyWitness TxBody ConwayEra
txBody (Wallet -> KeyWitness ConwayEra)
-> [Wallet] -> [KeyWitness ConwayEra]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Wallet]
signers)
txSkelToCardanoTx :: (MonadBlockChainBalancing m) => TxSkel -> Integer -> Maybe (Set Api.TxOutRef, Wallet) -> m (Cardano.Tx Cardano.ConwayEra)
txSkelToCardanoTx :: forall (m :: * -> *).
MonadBlockChainBalancing m =>
TxSkel
-> Integer -> Maybe (Set TxOutRef, Wallet) -> m (Tx ConwayEra)
txSkelToCardanoTx TxSkel
txSkel Integer
fee Maybe (Set TxOutRef, Wallet)
mCollaterals =
[Wallet] -> TxBody ConwayEra -> Tx ConwayEra
txSignersAndBodyToCardanoTx (TxSkel -> [Wallet]
txSkelSigners TxSkel
txSkel) (TxBody ConwayEra -> Tx ConwayEra)
-> m (TxBody ConwayEra) -> m (Tx ConwayEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxSkel
-> Integer -> Maybe (Set TxOutRef, Wallet) -> m (TxBody ConwayEra)
forall (m :: * -> *).
MonadBlockChainBalancing m =>
TxSkel
-> Integer -> Maybe (Set TxOutRef, Wallet) -> m (TxBody ConwayEra)
txSkelToTxBody TxSkel
txSkel Integer
fee Maybe (Set TxOutRef, Wallet)
mCollaterals