Skip to content

Commit

Permalink
3074 Fix withdrawal in transaction build. Replace pattern match in li…
Browse files Browse the repository at this point in the history
…st comprehension with function to ensure exhaustive pattern match.
  • Loading branch information
newhoggy committed Oct 26, 2021
1 parent 7bcafb1 commit 081386f
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions cardano-api/src/Cardano/Api/TxBody.hs
Expand Up @@ -2744,12 +2744,17 @@ mapTxScriptWitnesses f txbodycontent@TxBodyContent {
mapScriptWitnessesWithdrawals TxWithdrawalsNone = TxWithdrawalsNone
mapScriptWitnessesWithdrawals (TxWithdrawals supported withdrawals) =
TxWithdrawals supported
[ (addr, withdrawal, BuildTxWith (ScriptWitness ctx witness'))
[ (addr, withdrawal, BuildTxWith (adjustWitness (f (ScriptWitnessIndexWithdrawal ix)) wit))
-- The withdrawals are indexed in the map order by stake credential
| (ix, (addr, withdrawal, BuildTxWith (ScriptWitness ctx witness)))
<- zip [0..] (orderStakeAddrs withdrawals)
, let witness' = f (ScriptWitnessIndexWithdrawal ix) witness
| (ix, (addr, withdrawal, BuildTxWith wit)) <- zip [0..] (orderStakeAddrs withdrawals)
]
where
adjustWitness
:: (ScriptWitness witctx era -> ScriptWitness witctx era)
-> Witness witctx era
-> Witness witctx era
adjustWitness _ (KeyWitness ctx) = KeyWitness ctx
adjustWitness g (ScriptWitness ctx witness') = ScriptWitness ctx (g witness')

mapScriptWitnessesCertificates
:: TxCertificates BuildTx era
Expand Down

0 comments on commit 081386f

Please sign in to comment.