Skip to content

Commit bc6dba0

Browse files
committed
Modify extract* functions with more specific types and expose them for
testing
1 parent b44b5b9 commit bc6dba0

4 files changed

Lines changed: 42 additions & 28 deletions

File tree

cardano-api/src/Cardano/Api/Experimental/Plutus/Internal/ScriptWitness.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ type ScriptRedeemer = HashableScriptData
6060
data PlutusScriptWitness (lang :: L.Language) (purpose :: PlutusScriptPurpose) era where
6161
PlutusScriptWitness
6262
:: L.SLanguage lang
63-
-> (PlutusScriptOrReferenceInput lang era)
64-
-> (PlutusScriptDatum lang purpose)
63+
-> PlutusScriptOrReferenceInput lang era
64+
-> PlutusScriptDatum lang purpose
6565
-> ScriptRedeemer
6666
-> ExecutionUnits
6767
-> PlutusScriptWitness lang purpose era

cardano-api/src/Cardano/Api/Experimental/Tx/Internal/Body.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@ extractAllIndexedPlutusScriptWitnesses
2525
extractAllIndexedPlutusScriptWitnesses era b = obtainCommonConstraints era $ do
2626
let sbe = convert era
2727
aeon = convert era
28-
legacyTxInWits = extractWitnessableTxIns aeon b
29-
legacyCertWits = extractWitnessableCertificates aeon b
30-
legacyMintWits = extractWitnessableMints aeon b
28+
legacyTxInWits = extractWitnessableTxIns aeon $ txIns b
29+
legacyCertWits = extractWitnessableCertificates aeon $ txCertificates b
30+
legacyMintWits = extractWitnessableMints aeon $ txMintValue b
3131
proposalWits
3232
:: [(Witnessable ProposalItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))] =
3333
caseShelleyToBabbageOrConwayEraOnwards
3434
(const [])
35-
(`extractWitnessableProposals` b)
35+
(`extractWitnessableProposals` txProposalProcedures b)
3636
sbe
37-
legacyWithdrawalWits = extractWitnessableWithdrawals aeon b
37+
legacyWithdrawalWits = extractWitnessableWithdrawals aeon $ txWithdrawals b
3838
legacyVoteWits
3939
:: [(Witnessable VoterItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))] =
4040
caseShelleyToBabbageOrConwayEraOnwards
4141
(const [])
42-
(`extractWitnessableVotes` b)
42+
(`extractWitnessableVotes` txVotingProcedures b)
4343
sbe
4444

4545
txInWits <- legacyWitnessConversion aeon legacyTxInWits

cardano-api/src/Cardano/Api/Tx.hs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,13 @@ module Cardano.Api.Tx
844844
, fromShelleyMetadata
845845
, toShelleyMetadatum
846846
, fromShelleyMetadatum
847+
-- Exported for testing
848+
, extractWitnessableCertificates
849+
, extractWitnessableMints
850+
, extractWitnessableProposals
851+
, extractWitnessableTxIns
852+
, extractWitnessableVotes
853+
, extractWitnessableWithdrawals
847854
-- Exporting for testing. Deprecate in the future.
848855
, legacyKeyWitnessEncode
849856

cardano-api/src/Cardano/Api/Tx/Internal/Body.hs

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2852,9 +2852,15 @@ collectTxBodyScriptWitnessRequirements
28522852
(TxScriptWitnessRequirements (ShelleyLedgerEra era))
28532853
collectTxBodyScriptWitnessRequirements
28542854
aEon
2855-
bc@TxBodyContent
2856-
{ txInsReference
2855+
TxBodyContent
2856+
{ txIns
2857+
, txInsReference
28572858
, txOuts
2859+
, txCertificates
2860+
, txMintValue
2861+
, txWithdrawals
2862+
, txVotingProcedures
2863+
, txProposalProcedures
28582864
} =
28592865
obtainAlonzoScriptPurposeConstraints aEon $ do
28602866
let sbe = shelleyBasedEra @era
@@ -2867,22 +2873,22 @@ collectTxBodyScriptWitnessRequirements
28672873
txInWits <-
28682874
first TxBodyPlutusScriptDecodeError $
28692875
legacyWitnessToScriptRequirements aEon $
2870-
extractWitnessableTxIns aEon bc
2876+
extractWitnessableTxIns aEon txIns
28712877

28722878
txWithdrawalWits <-
28732879
first TxBodyPlutusScriptDecodeError $
28742880
legacyWitnessToScriptRequirements aEon $
2875-
extractWitnessableWithdrawals aEon bc
2881+
extractWitnessableWithdrawals aEon txWithdrawals
28762882

28772883
txCertWits <-
28782884
first TxBodyPlutusScriptDecodeError $
28792885
legacyWitnessToScriptRequirements aEon $
2880-
extractWitnessableCertificates aEon bc
2886+
extractWitnessableCertificates aEon txCertificates
28812887

28822888
txMintWits <-
28832889
first TxBodyPlutusScriptDecodeError $
28842890
legacyWitnessToScriptRequirements aEon $
2885-
extractWitnessableMints aEon bc
2891+
extractWitnessableMints aEon txMintValue
28862892

28872893
txVotingWits <-
28882894
caseShelleyToBabbageOrConwayEraOnwards
@@ -2892,7 +2898,7 @@ collectTxBodyScriptWitnessRequirements
28922898
( \eon ->
28932899
first TxBodyPlutusScriptDecodeError $
28942900
legacyWitnessToScriptRequirements aEon $
2895-
extractWitnessableVotes eon bc
2901+
extractWitnessableVotes eon txVotingProcedures
28962902
)
28972903
sbe
28982904
txProposalWits <-
@@ -2901,7 +2907,7 @@ collectTxBodyScriptWitnessRequirements
29012907
( \eon ->
29022908
first TxBodyPlutusScriptDecodeError $
29032909
legacyWitnessToScriptRequirements aEon $
2904-
extractWitnessableProposals eon bc
2910+
extractWitnessableProposals eon txProposalProcedures
29052911
)
29062912
sbe
29072913

@@ -2946,17 +2952,17 @@ getDatums eon txInsRef txOutsFromTx = alonzoEraOnwardsConstraints eon $ do
29462952

29472953
extractWitnessableTxIns
29482954
:: AlonzoEraOnwards era
2949-
-> TxBodyContent BuildTx era
2955+
-> TxIns BuildTx era
29502956
-> [(Witnessable TxInItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxTxIn era))]
2951-
extractWitnessableTxIns aeon TxBodyContent{txIns} =
2957+
extractWitnessableTxIns aeon txIns =
29522958
alonzoEraOnwardsConstraints aeon $
29532959
List.nub [(WitTxIn txin, wit) | (txin, wit) <- txIns]
29542960

29552961
extractWitnessableWithdrawals
29562962
:: AlonzoEraOnwards era
2957-
-> TxBodyContent BuildTx era
2963+
-> TxWithdrawals BuildTx era
29582964
-> [(Witnessable WithdrawalItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))]
2959-
extractWitnessableWithdrawals aeon TxBodyContent{txWithdrawals} =
2965+
extractWitnessableWithdrawals aeon txWithdrawals =
29602966
alonzoEraOnwardsConstraints aeon $
29612967
List.nub
29622968
[ (WitWithdrawal addr withAmt, wit)
@@ -2968,9 +2974,9 @@ extractWitnessableWithdrawals aeon TxBodyContent{txWithdrawals} =
29682974

29692975
extractWitnessableCertificates
29702976
:: AlonzoEraOnwards era
2971-
-> TxBodyContent BuildTx era
2977+
-> TxCertificates BuildTx era
29722978
-> [(Witnessable CertItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))]
2973-
extractWitnessableCertificates aeon TxBodyContent{txCertificates} =
2979+
extractWitnessableCertificates aeon txCertificates =
29742980
alonzoEraOnwardsConstraints aeon $
29752981
List.nub
29762982
[ ( WitTxCert (certificateToTxCert cert) stakeCred
@@ -2984,9 +2990,9 @@ extractWitnessableCertificates aeon TxBodyContent{txCertificates} =
29842990

29852991
extractWitnessableMints
29862992
:: AlonzoEraOnwards era
2987-
-> TxBodyContent BuildTx era
2993+
-> TxMintValue build era
29882994
-> [(Witnessable MintItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxMint era))]
2989-
extractWitnessableMints aeon TxBodyContent{txMintValue} =
2995+
extractWitnessableMints aeon txMintValue =
29902996
alonzoEraOnwardsConstraints aeon $
29912997
List.nub
29922998
[ (WitMint policyId policyAssets, BuildTxWith $ ScriptWitness ScriptWitnessForMinting wit)
@@ -2998,9 +3004,9 @@ extractWitnessableMints aeon TxBodyContent{txMintValue} =
29983004

29993005
extractWitnessableVotes
30003006
:: ConwayEraOnwards era
3001-
-> TxBodyContent BuildTx era
3007+
-> Maybe (Featured eon era (TxVotingProcedures BuildTx era))
30023008
-> [(Witnessable VoterItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))]
3003-
extractWitnessableVotes e@ConwayEraOnwardsConway TxBodyContent{txVotingProcedures} =
3009+
extractWitnessableVotes e@ConwayEraOnwardsConway txVotingProcedures =
30043010
List.nub
30053011
[ (WitVote vote, BuildTxWith wit)
30063012
| (vote, wit) <- getVotes e $ maybe TxVotingProceduresNone unFeatured txVotingProcedures
@@ -3021,9 +3027,10 @@ extractWitnessableVotes e@ConwayEraOnwardsConway TxBodyContent{txVotingProcedure
30213027

30223028
extractWitnessableProposals
30233029
:: ConwayEraOnwards era
3024-
-> TxBodyContent BuildTx era
3030+
-> Maybe
3031+
(Featured eon era (TxProposalProcedures BuildTx era))
30253032
-> [(Witnessable ProposalItem (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness WitCtxStake era))]
3026-
extractWitnessableProposals e@ConwayEraOnwardsConway TxBodyContent{txProposalProcedures} =
3033+
extractWitnessableProposals e@ConwayEraOnwardsConway txProposalProcedures =
30273034
List.nub
30283035
[ (WitProposal prop, BuildTxWith wit)
30293036
| (Proposal prop, wit) <-

0 commit comments

Comments
 (0)