9
9
module Cardano.DbSync.Era.Shelley.Generic.Tx.Alonzo
10
10
( fromAlonzoTx
11
11
, dataHashToBytes
12
+ , mkCollTxIn
12
13
, mkTxData
13
14
, mkTxScript
14
15
, resolveRedeemers
@@ -30,20 +31,19 @@ import qualified Cardano.Crypto.Hash as Crypto
30
31
import Cardano.Db (ScriptType (.. ))
31
32
32
33
import Cardano.DbSync.Era.Shelley.Generic.Metadata
33
- import Cardano.DbSync.Era.Shelley.Generic.ParamProposal
34
34
import Cardano.DbSync.Era.Shelley.Generic.Tx.Allegra (getInterval )
35
- import Cardano.DbSync.Era.Shelley.Generic.Tx.Shelley (calcWithdrawalSum , fromTxIn ,
36
- mkTxCertificate , mkTxWithdrawal )
35
+ import Cardano.DbSync.Era.Shelley.Generic.Tx.Shelley
37
36
import Cardano.DbSync.Era.Shelley.Generic.Tx.Types
38
37
import Cardano.DbSync.Era.Shelley.Generic.Util
39
38
import Cardano.DbSync.Era.Shelley.Generic.Witness
40
39
41
40
import qualified Cardano.Ledger.Address as Ledger
42
- import qualified Cardano.Ledger.Alonzo.Data as Alonzo
41
+ import Cardano.Ledger.Alonzo.Data ( AlonzoAuxiliaryData ( .. ))
43
42
import qualified Cardano.Ledger.Alonzo.Language as Alonzo
44
43
import Cardano.Ledger.Alonzo.Scripts (ExUnits (.. ), txscriptfee )
45
44
import qualified Cardano.Ledger.Alonzo.Scripts as Alonzo
46
45
import qualified Cardano.Ledger.Alonzo.Tx as Alonzo
46
+ import Cardano.Ledger.Alonzo.TxBody (AlonzoEraTxBody , AlonzoTxOut )
47
47
import qualified Cardano.Ledger.Alonzo.TxBody as Alonzo
48
48
import qualified Cardano.Ledger.Alonzo.TxWitness as Alonzo
49
49
import Cardano.Ledger.BaseTypes
@@ -73,15 +73,15 @@ import Ouroboros.Consensus.Cardano.Block (StandardAlonzo, StandardCryp
73
73
fromAlonzoTx :: Maybe Alonzo. Prices -> (Word64 , Core. Tx StandardAlonzo ) -> Tx
74
74
fromAlonzoTx mprices (blkIndex, tx) =
75
75
Tx
76
- { txHash = Crypto. hashToBytes . Ledger. extractHash $ Ledger. hashAnnotated txBody
76
+ { txHash = txHashId tx
77
77
, txBlockIndex = blkIndex
78
78
, txSize = fromIntegral $ tx ^. Core. sizeTxF
79
79
, txValidContract = isValid2
80
80
, txInputs =
81
81
if not isValid2
82
- then map fromTxIn . toList $ Alonzo. collateral' txBody
82
+ then collInputs
83
83
else Map. elems $ rmInps finalMaps
84
- , txCollateralInputs = map fromTxIn . toList $ Alonzo. collateral' txBody
84
+ , txCollateralInputs = collInputs
85
85
, txReferenceInputs = [] -- Alonzo does not have reference inputs
86
86
, txOutputs =
87
87
if not isValid2
@@ -98,11 +98,11 @@ fromAlonzoTx mprices (blkIndex, tx) =
98
98
else sumTxOutCoin outputs
99
99
, txInvalidBefore = invalidBefore
100
100
, txInvalidHereafter = invalidAfter
101
- , txWithdrawalSum = calcWithdrawalSum $ Alonzo. wdrls' txBody
102
- , txMetadata = fromAlonzoMetadata <$> strictMaybeToMaybe (getField @ " auxiliaryData " tx)
101
+ , txWithdrawalSum = calcWithdrawalSum txBody
102
+ , txMetadata = fromAlonzoMetadata <$> getTxMetadata tx
103
103
, txCertificates = snd <$> rmCerts finalMaps
104
104
, txWithdrawals = Map. elems $ rmWdrl finalMaps
105
- , txParamProposal = maybe [] (convertParamProposal ( Alonzo Standard )) $ strictMaybeToMaybe ( Alonzo. update' txBody)
105
+ , txParamProposal = mkTxParamProposal ( Alonzo Standard ) txBody
106
106
, txMint = Alonzo. mint' txBody
107
107
, txRedeemer = redeemers
108
108
, txData = txDataWitness tx
@@ -117,7 +117,7 @@ fromAlonzoTx mprices (blkIndex, tx) =
117
117
outputs :: [TxOut ]
118
118
outputs = zipWith fromTxOut [0 .. ] $ toList (Alonzo. outputs' txBody)
119
119
120
- fromTxOut :: Word64 -> Alonzo. AlonzoTxOut StandardAlonzo -> TxOut
120
+ fromTxOut :: Word64 -> AlonzoTxOut StandardAlonzo -> TxOut
121
121
fromTxOut index txOut =
122
122
TxOut
123
123
{ txOutIndex = index
@@ -143,11 +143,16 @@ fromAlonzoTx mprices (blkIndex, tx) =
143
143
144
144
(invalidBefore, invalidAfter) = getInterval $ Alonzo. vldt' txBody
145
145
146
+ collInputs = mkCollTxIn txBody
147
+
148
+ mkCollTxIn :: (Ledger. Crypto era ~ StandardCrypto , AlonzoEraTxBody era ) => Core. TxBody era -> [TxIn ]
149
+ mkCollTxIn txBody = map fromTxIn . toList $ txBody ^. Alonzo. collateralInputsTxBodyL
150
+
146
151
getScripts ::
147
152
forall era .
148
153
( Ledger. Crypto era ~ StandardCrypto
149
154
, Core. Script era ~ Alonzo. AlonzoScript era
150
- , Core. AuxiliaryData era ~ Alonzo. AlonzoAuxiliaryData era
155
+ , Core. AuxiliaryData era ~ AlonzoAuxiliaryData era
151
156
, Core. EraWitnesses era
152
157
, Core. EraTx era
153
158
) => Core. Tx era -> [TxScript ]
@@ -157,12 +162,12 @@ getScripts tx =
157
162
++ getAuxScripts (tx ^. Core. auxDataTxL))
158
163
where
159
164
getAuxScripts
160
- :: ShelleyMa. StrictMaybe (Alonzo. AlonzoAuxiliaryData era )
165
+ :: ShelleyMa. StrictMaybe (AlonzoAuxiliaryData era )
161
166
-> [(ScriptHash StandardCrypto , Alonzo. AlonzoScript era )]
162
167
getAuxScripts maux =
163
168
case strictMaybeToMaybe maux of
164
169
Nothing -> []
165
- Just (Alonzo. AlonzoAuxiliaryData' _ scrs) ->
170
+ Just (AlonzoAuxiliaryData' _ scrs) ->
166
171
map (\ scr -> (Core. hashScript @ era scr, scr)) $ toList scrs
167
172
168
173
resolveRedeemers ::
@@ -302,10 +307,10 @@ getPlutusScriptSize script =
302
307
Alonzo. PlutusScript _lang sbs -> Just $ fromIntegral (SBS. length sbs)
303
308
304
309
txDataWitness ::
305
- (HasField " wits " tx ( Alonzo. TxWitness era ) , Ledger. Crypto era ~ StandardCrypto )
306
- => tx -> [PlutusData ]
310
+ (Core. Witnesses era ~ Alonzo. TxWitness era , Core. EraTx era , Ledger. Crypto era ~ StandardCrypto )
311
+ => Core. Tx era -> [PlutusData ]
307
312
txDataWitness tx =
308
- mkTxData <$> Map. toList (Alonzo. unTxDats $ Alonzo. txdats' (getField @ " wits " tx ))
313
+ mkTxData <$> Map. toList (Alonzo. unTxDats $ Alonzo. txdats' (tx ^. Core. witsTxL ))
309
314
310
315
mkTxData :: (Ledger. DataHash StandardCrypto , Alonzo. Data era ) -> PlutusData
311
316
mkTxData (dataHash, dt) = PlutusData (dataHashToBytes dataHash) (jsonData dt) (Ledger. originalBytes dt)
@@ -317,7 +322,7 @@ mkTxData (dataHash, dt) = PlutusData (dataHashToBytes dataHash) (jsonData dt) (L
317
322
. Api. scriptDataToJson Api. ScriptDataJsonDetailedSchema
318
323
. Api. fromAlonzoData
319
324
320
- extraKeyWits :: Alonzo. AlonzoEraTxBody era
325
+ extraKeyWits :: AlonzoEraTxBody era
321
326
=> Core. TxBody era -> [ByteString ]
322
327
extraKeyWits txBody = Set. toList $
323
328
Set. map (\ (Ledger. KeyHash h) -> Crypto. hashToBytes h) $
0 commit comments