@@ -575,7 +575,7 @@ data TxCertificates build era where
575575 TxCertificates
576576 :: ShelleyBasedEra era
577577 -> OMap
578- (Exp. Certificate era )
578+ (Exp. Certificate ( ShelleyLedgerEra era ) )
579579 ( BuildTxWith
580580 build
581581 (Maybe (StakeCredential , Witness WitCtxStake era ))
@@ -594,29 +594,40 @@ deriving instance Show (TxCertificates build era)
594594-- credential registration certificates without a deposit. Future eras will require a witness for
595595-- registration certificates, because the one without a deposit will be removed.
596596mkTxCertificates
597- :: Applicative (BuildTxWith build )
597+ :: forall era build
598+ . Applicative (BuildTxWith build )
598599 => ShelleyBasedEra era
599- -> [(Certificate era , Maybe (ScriptWitness WitCtxStake era ))]
600+ -> [(Exp. Certificate ( ShelleyLedgerEra era ) , Maybe (ScriptWitness WitCtxStake era ))]
600601 -> TxCertificates build era
601602mkTxCertificates _ [] = TxCertificatesNone
602603mkTxCertificates sbe certs = TxCertificates sbe . fromList $ map getStakeCred certs
603604 where
604- getStakeCred (cert, mWit) = do
605+ getStakeCred
606+ :: (Exp. Certificate (ShelleyLedgerEra era ), Maybe (ScriptWitness WitCtxStake era ))
607+ -> ( Exp. Certificate (ShelleyLedgerEra era )
608+ , BuildTxWith build (Maybe (StakeCredential , Witness WitCtxStake era ))
609+ )
610+ getStakeCred (c@ (Exp. Certificate cert), mWit) = do
605611 let wit =
606612 maybe
607613 (KeyWitness KeyWitnessForStakeAddr )
608614 (ScriptWitness ScriptWitnessForStakeAddr )
609615 mWit
610- ( cert
616+ ( c
611617 , pure $
612- (,wit) <$> selectStakeCredentialWitness cert
618+ (,wit) <$> getTxCertWitness sbe cert
613619 )
614620
615621-- | Index certificates with witnesses by the order they appear in the list (in the transaction).
616622-- See section 4.1 of https://github.com/intersectmbo/cardano-ledger/releases/latest/download/alonzo-ledger.pdf
617623indexTxCertificates
618624 :: TxCertificates BuildTx era
619- -> [(ScriptWitnessIndex , Certificate era , StakeCredential , Witness WitCtxStake era )]
625+ -> [ ( ScriptWitnessIndex
626+ , Exp. Certificate (ShelleyLedgerEra era )
627+ , StakeCredential
628+ , Witness WitCtxStake era
629+ )
630+ ]
620631indexTxCertificates TxCertificatesNone = []
621632indexTxCertificates (TxCertificates _ certsWits) =
622633 [ (ScriptWitnessIndexCertificate ix, cert, stakeCred, witness)
@@ -1760,7 +1771,7 @@ fromLedgerTxCertificates sbe body =
17601771 in if null certificates
17611772 then TxCertificatesNone
17621773 else
1763- TxCertificates sbe . fromList $ map ((,ViewTx ) . fromShelleyCertificate sbe ) $ toList certificates
1774+ TxCertificates sbe . fromList $ map ((,ViewTx ) . Exp. Certificate ) $ toList certificates
17641775
17651776maybeFromLedgerTxUpdateProposal
17661777 :: ()
@@ -1844,7 +1855,7 @@ convCertificates
18441855 -> Seq. StrictSeq (Shelley. TxCert (ShelleyLedgerEra era ))
18451856convCertificates _ = \ case
18461857 TxCertificatesNone -> Seq. empty
1847- TxCertificates _ cs -> fromList . map (toShelleyCertificate . fst ) $ toList cs
1858+ TxCertificates _ cs -> fromList . map (\ ( Exp. Certificate c, _) -> c ) $ toList cs
18481859
18491860convWithdrawals :: TxWithdrawals build era -> L. Withdrawals
18501861convWithdrawals txWithdrawals =
@@ -2981,10 +2992,10 @@ extractWitnessableCertificates
29812992extractWitnessableCertificates aeon txCertificates =
29822993 alonzoEraOnwardsConstraints aeon $
29832994 List. nub
2984- [ ( WitTxCert (certificateToTxCert cert) stakeCred
2995+ [ ( WitTxCert cert stakeCred
29852996 , BuildTxWith wit
29862997 )
2987- | (cert, BuildTxWith (Just (stakeCred, wit))) <- getCertificates txCertificates
2998+ | (Exp. Certificate cert, BuildTxWith (Just (stakeCred, wit))) <- getCertificates txCertificates
29882999 ]
29893000 where
29903001 getCertificates TxCertificatesNone = []
0 commit comments