33-- | Code common for resolving Tx of backends which use `cardano-api`
44module Cardano.CEM.Monads.L1Commons where
55
6- import Prelude
7-
8- import Data.List (nub )
9- import Data.Map qualified as Map
10-
11- -- Cardano imports
126import Cardano.Api hiding (queryUtxo )
137import Cardano.Api.Shelley (LedgerProtocolParameters (.. ))
14-
15- -- Project imports
168import Cardano.CEM.Monads
179import Cardano.CEM.OffChain
1810import Cardano.Extras
11+ import Data.List (nub )
12+ import Data.Map qualified as Map
1913import Data.Maybe (mapMaybe )
14+ import Prelude
2015
21- -- Main function
22-
16+ -- | Main function
2317cardanoTxBodyFromResolvedTx ::
2418 (MonadQueryUtxo m , MonadBlockchainParams m ) =>
2519 ResolvedTx ->
2620 m (Either (TxBodyErrorAutoBalance Era ) (TxBodyContent BuildTx Era , TxBody Era , TxInMode , UTxO Era ))
2721cardanoTxBodyFromResolvedTx (MkResolvedTx {.. }) = do
28- -- (lowerBound, upperBound) <- convertValidityBound validityBound
2922
30- -- FIXME: proper fee coverage selection
3123 utxo <- queryUtxo $ ByAddresses [signingKeyToAddress signer]
3224 let
3325 feeTxIns = Map. keys $ unUTxO utxo
@@ -41,8 +33,7 @@ cardanoTxBodyFromResolvedTx (MkResolvedTx {..}) = do
4133
4234 let preBody =
4335 TxBodyContent
44- { -- FIXME: duplicate TxIn for coin-selection redeemer bug
45- txIns = nub allTxIns
36+ { txIns = nub allTxIns -- duplicate TxIn for coin-selection redeemer bug
4637 , txInsCollateral =
4738 TxInsCollateral AlonzoEraOnwardsBabbage feeTxIns
4839 , txInsReference =
@@ -98,14 +89,14 @@ cardanoTxBodyFromResolvedTx (MkResolvedTx {..}) = do
9889 recordFee txInsUtxo body@ (TxBody content) = do
9990 case txFee content of
10091 TxFeeExplicit era coin -> do
101- MkBlockchainParams {protocolParameters, systemStart, eraHistory } <-
92+ MkBlockchainParams {protocolParameters, systemStart, ledgerEpochInfo } <-
10293 queryBlockchainParams
10394 Right report <-
10495 return $
10596 evaluateTransactionExecutionUnits
10697 (shelleyBasedToCardanoEra era)
10798 systemStart
108- eraHistory
99+ ledgerEpochInfo
109100 (LedgerProtocolParameters protocolParameters)
110101 txInsUtxo
111102 body
@@ -150,13 +141,13 @@ callBodyAutoBalance
150141 preBody
151142 utxo
152143 changeAddress = do
153- MkBlockchainParams {protocolParameters, systemStart, eraHistory , stakePools} <-
144+ MkBlockchainParams {protocolParameters, systemStart, ledgerEpochInfo , stakePools} <-
154145 queryBlockchainParams
155146 let result =
156147 makeTransactionBodyAutoBalance @ Era
157148 shelleyBasedEra
158149 systemStart
159- eraHistory
150+ ledgerEpochInfo
160151 (LedgerProtocolParameters protocolParameters)
161152 stakePools
162153 Map. empty -- Stake credentials
0 commit comments