Skip to content

Commit d7bc0aa

Browse files
committed
Refactor makeUnsignedTx
1 parent f2eed50 commit d7bc0aa

File tree

5 files changed

+38
-30
lines changed

5 files changed

+38
-30
lines changed

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module Cardano.Api.Experimental.Plutus.Internal.Shim.LegacyScripts
1414
( convertToNewScriptWitness
1515
, legacyWitnessToScriptRequirements
1616
, legacyWitnessConversion
17+
, obtainMonoidConstraint
1718
, toPlutusSLanguage
1819
)
1920
where
@@ -25,7 +26,9 @@ import Cardano.Api.Experimental.Plutus.Internal.Script
2526
import Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
2627
import Cardano.Api.Experimental.Simple.Script
2728
import Cardano.Api.Experimental.Tx.Internal.AnyWitness
28-
import Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements
29+
import Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements hiding
30+
( obtainMonoidConstraint
31+
)
2932
import Cardano.Api.Plutus.Internal.Script
3033
( ExecutionUnits
3134
, Witness
@@ -214,6 +217,16 @@ obtainConstraints v =
214217
Old.PlutusScriptV3 -> id
215218
Old.PlutusScriptV4 -> id
216219

220+
obtainMonoidConstraint
221+
:: AlonzoEraOnwards era
222+
-> (Monoid (TxScriptWitnessRequirements (ShelleyLedgerEra era)) => a)
223+
-> a
224+
obtainMonoidConstraint eon = case eon of
225+
AlonzoEraOnwardsAlonzo -> id
226+
AlonzoEraOnwardsBabbage -> id
227+
AlonzoEraOnwardsConway -> id
228+
AlonzoEraOnwardsDijkstra -> id
229+
217230
toPlutusSLanguage
218231
:: Old.PlutusScriptVersion lang -> L.SLanguage (Old.ToLedgerPlutusLanguage lang)
219232
toPlutusSLanguage = \case

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

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,10 @@ makeUnsignedTx
125125
:: forall era
126126
. Era era
127127
-> TxBodyContent (LedgerEra era)
128-
-> Either String (UnsignedTx era)
128+
-> UnsignedTx era
129129
makeUnsignedTx DijkstraEra _ = error "makeUnsignedTx: Dijkstra era not supported yet"
130130
makeUnsignedTx era@ConwayEra bc = obtainCommonConstraints era $ do
131-
TxScriptWitnessRequirements languages scripts datums redeemers <-
132-
collectTxBodyScriptWitnessRequirements bc
131+
let TxScriptWitnessRequirements languages scripts datums redeemers = collectTxBodyScriptWitnessRequirements bc
133132

134133
-- cardano-api types
135134
let apiMintValue = txMintValue bc
@@ -187,7 +186,7 @@ makeUnsignedTx era@ConwayEra bc = obtainCommonConstraints era $ do
187186
& L.rdmrsTxWitsL .~ redeemers
188187

189188
let eraSpecificTxBody = eraSpecificLedgerTxBody era ledgerTxBody bc
190-
return . UnsignedTx $
189+
UnsignedTx $
191190
L.mkBasicTx eraSpecificTxBody
192191
& L.witsTxL .~ scriptWitnesses
193192
& L.auxDataTxL .~ L.maybeToStrictMaybe (toAuxiliaryData (txMetadata bc) (txAuxScripts bc))
@@ -665,9 +664,7 @@ collectTxBodyScriptWitnessRequirements
665664
:: forall era
666665
. IsEra era
667666
=> TxBodyContent (LedgerEra era)
668-
-> Either
669-
String
670-
(TxScriptWitnessRequirements (LedgerEra era))
667+
-> TxScriptWitnessRequirements (LedgerEra era)
671668
collectTxBodyScriptWitnessRequirements
672669
TxBodyContent
673670
{ txIns
@@ -705,17 +702,16 @@ collectTxBodyScriptWitnessRequirements
705702
obtainMonoidConstraint (useEra @era) getTxScriptWitnessesRequirements $
706703
extractWitnessableProposals txProposalProcedures
707704

708-
return $
709-
obtainMonoidConstraint (useEra @era) $
710-
mconcat
711-
[ supplementaldatums
712-
, txInWits
713-
, txWithdrawalWits
714-
, txCertWits
715-
, txMintWits
716-
, txVotingWits
717-
, txProposalWits
718-
]
705+
obtainMonoidConstraint (useEra @era) $
706+
mconcat
707+
[ supplementaldatums
708+
, txInWits
709+
, txWithdrawalWits
710+
, txCertWits
711+
, txMintWits
712+
, txVotingWits
713+
, txProposalWits
714+
]
719715

720716
obtainMonoidConstraint
721717
:: Era era

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ module Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements
1717
)
1818
where
1919

20-
import Cardano.Api.Era.Internal.Eon.AlonzoEraOnwards
21-
import Cardano.Api.Era.Internal.Eon.ShelleyBasedEra
20+
import Cardano.Api.Experimental.Era qualified as Exp
2221
import Cardano.Api.Experimental.Plutus.Internal.IndexedPlutusScriptWitness
2322
import Cardano.Api.Experimental.Tx.Internal.AnyWitness
2423
import Cardano.Api.Ledger qualified as L
@@ -92,14 +91,12 @@ getTxScriptWitnessesRequirements wits =
9291
mconcat $ map getTxScriptWitnessRequirements wits
9392

9493
obtainMonoidConstraint
95-
:: AlonzoEraOnwards era
96-
-> (Monoid (TxScriptWitnessRequirements (ShelleyLedgerEra era)) => a)
94+
:: Exp.Era era
95+
-> (Monoid (TxScriptWitnessRequirements (Exp.LedgerEra era)) => a)
9796
-> a
9897
obtainMonoidConstraint eon = case eon of
99-
AlonzoEraOnwardsAlonzo -> id
100-
AlonzoEraOnwardsBabbage -> id
101-
AlonzoEraOnwardsConway -> id
102-
AlonzoEraOnwardsDijkstra -> id
98+
Exp.ConwayEra -> id
99+
Exp.DijkstraEra -> id
103100

104101
extractExecutionUnits :: TxScriptWitnessRequirements era -> [ExecutionUnits]
105102
extractExecutionUnits (TxScriptWitnessRequirements _ _ _ redeemers) =

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,9 @@ import Cardano.Api.Experimental.Plutus.Internal.IndexedPlutusScriptWitness
254254
import Cardano.Api.Experimental.Plutus.Internal.Shim.LegacyScripts
255255
import Cardano.Api.Experimental.Tx.Internal.Certificate qualified as Exp
256256
import Cardano.Api.Experimental.Tx.Internal.Certificate.Compatible (getTxCertWitness)
257-
import Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements
257+
import Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements hiding
258+
( obtainMonoidConstraint
259+
)
258260
import Cardano.Api.Governance.Internal.Action.ProposalProcedure
259261
import Cardano.Api.Governance.Internal.Action.VotingProcedure
260262
import Cardano.Api.Key.Internal

cardano-api/test/cardano-api-test/Test/Cardano/Api/Experimental.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ prop_created_transaction_with_both_apis_are_the_same = H.propertyOnce $ do
103103
txBodyContent <- exampleTxBodyContentExperimental era
104104
signingKey <- exampleSigningKey
105105

106-
unsignedTx <- H.evalEither $ Exp.makeUnsignedTx era txBodyContent
107-
let witness = Exp.makeKeyWitness era unsignedTx (Api.WitnessPaymentKey signingKey)
106+
let unsignedTx = Exp.makeUnsignedTx era txBodyContent
107+
witness = Exp.makeKeyWitness era unsignedTx (Api.WitnessPaymentKey signingKey)
108108

109109
let bootstrapWitnesses = []
110110
keyWitnesses = [witness]

0 commit comments

Comments
 (0)