Skip to content

Commit 37e3e01

Browse files
committed
Implement mkTxProposalProcedures
1 parent 2345abc commit 37e3e01

File tree

3 files changed

+17
-6
lines changed
  • cardano-api
    • src/Cardano/Api/Experimental
    • test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus

3 files changed

+17
-6
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ module Cardano.Api.Experimental.Tx
129129
, defaultTxBodyContent
130130
, mkTxCertificates
131131
, mkTxVotingProcedures
132+
, mkTxProposalProcedures
132133
, setTxAuxScripts
133134
, setTxCertificates
134135
, setTxCollateral

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ module Cardano.Api.Experimental.Tx.Internal.BodyContent.New
2727
, txMintValueToValue
2828
, mkTxCertificates
2929
, mkTxVotingProcedures
30+
, mkTxProposalProcedures
3031

3132
-- * Getters and Setters
3233
, setTxAuxScripts
@@ -419,10 +420,22 @@ newtype TxProposalProcedures era
419420
= TxProposalProcedures
420421
( OMap
421422
(L.ProposalProcedure era)
422-
(Maybe (AnyWitness era))
423+
(AnyWitness era)
423424
)
424425
deriving (Show, Eq)
425426

427+
-- | A smart constructor for 'TxProposalProcedures'. It makes sure that the value produced is consistent - the
428+
-- witnessed proposals are also present in the first constructor parameter.
429+
mkTxProposalProcedures
430+
:: forall era
431+
. IsEra era
432+
=> [(L.ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
433+
-> TxProposalProcedures (LedgerEra era)
434+
mkTxProposalProcedures proposals = do
435+
TxProposalProcedures $
436+
obtainCommonConstraints (useEra @era) $
437+
OMap.fromList proposals
438+
426439
data TxVotingProcedures era
427440
= TxVotingProcedures
428441
(L.VotingProcedures era)
@@ -646,10 +659,7 @@ extractWitnessableProposals (Just txPropProcedures) =
646659
:: TxProposalProcedures (LedgerEra era)
647660
-> [(L.ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
648661
getProposals (TxProposalProcedures txps) =
649-
[ (p, wit)
650-
| (p, mScriptWit) <- obtainCommonConstraints (useEra @era) (toList txps)
651-
, wit <- maybe [] return mScriptWit
652-
]
662+
obtainCommonConstraints (useEra @era) (toList txps)
653663

654664
collectTxBodyScriptWitnessRequirements
655665
:: forall era

cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ prop_extractAllIndexedPlutusScriptWitnesses =
185185
, createIndexedPlutusScriptWitnesses
186186
[ (Exp.WitProposal p, wit)
187187
| let Exp.TxProposalProcedures pMap = generatedTxProposalProcedures
188-
, (p, Just wit) <- OMap.toAscList pMap
188+
, (p, wit) <- OMap.toAscList pMap
189189
]
190190
]
191191

0 commit comments

Comments
 (0)