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
29-
30- -- FIXME: proper fee coverage selection
3122 utxo <- queryUtxo $ ByAddresses [signingKeyToAddress signer]
3223 let
3324 feeTxIns = Map. keys $ unUTxO utxo
@@ -41,8 +32,7 @@ cardanoTxBodyFromResolvedTx (MkResolvedTx {..}) = do
4132
4233 let preBody =
4334 TxBodyContent
44- { -- FIXME: duplicate TxIn for coin-selection redeemer bug
45- txIns = nub allTxIns
35+ { txIns = nub allTxIns -- duplicate TxIn for coin-selection redeemer bug
4636 , txInsCollateral =
4737 TxInsCollateral AlonzoEraOnwardsBabbage feeTxIns
4838 , txInsReference =
@@ -98,14 +88,14 @@ cardanoTxBodyFromResolvedTx (MkResolvedTx {..}) = do
9888 recordFee txInsUtxo body@ (TxBody content) = do
9989 case txFee content of
10090 TxFeeExplicit era coin -> do
101- MkBlockchainParams {protocolParameters, systemStart, eraHistory } <-
91+ MkBlockchainParams {protocolParameters, systemStart, ledgerEpochInfo } <-
10292 queryBlockchainParams
10393 Right report <-
10494 return $
10595 evaluateTransactionExecutionUnits
10696 (shelleyBasedToCardanoEra era)
10797 systemStart
108- eraHistory
98+ ledgerEpochInfo
10999 (LedgerProtocolParameters protocolParameters)
110100 txInsUtxo
111101 body
@@ -150,13 +140,13 @@ callBodyAutoBalance
150140 preBody
151141 utxo
152142 changeAddress = do
153- MkBlockchainParams {protocolParameters, systemStart, eraHistory , stakePools} <-
143+ MkBlockchainParams {protocolParameters, systemStart, ledgerEpochInfo , stakePools} <-
154144 queryBlockchainParams
155145 let result =
156146 makeTransactionBodyAutoBalance @ Era
157147 shelleyBasedEra
158148 systemStart
159- eraHistory
149+ ledgerEpochInfo
160150 (LedgerProtocolParameters protocolParameters)
161151 stakePools
162152 Map. empty -- Stake credentials
0 commit comments