Skip to content

Commit fa48c82

Browse files
authored
Merge pull request #1199 from IntersectMBO/jordan/widen-ledger-era-family
Widen Exp.SignedTx to all Shelley-based eras
2 parents 7b2c2d5 + e7f39d9 commit fa48c82

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
project: cardano-api
2+
pr: 1199
3+
kind:
4+
- compatible
5+
description: |
6+
Widen `Cardano.Api.Experimental.SignedTx era` to all Shelley-based eras (Shelley through Dijkstra) by reparameterising it on `ShelleyLedgerEra era` instead of `LedgerEra era`. This allows deserialising `SignedTx` for any Shelley-based era via `SerialiseAsRawBytes` without widening the `LedgerEra` family or its Conway-onwards constraint surface.

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ makeKeyWitness era (UnsignedTx unsignedTx) wsk =
281281

282282
-- | A transaction that has been witnesssed
283283
data SignedTx era
284-
= L.EraTx (LedgerEra era) => SignedTx (Ledger.Tx Ledger.TopTx (LedgerEra era))
284+
= L.EraTx (ShelleyLedgerEra era) => SignedTx (Ledger.Tx Ledger.TopTx (ShelleyLedgerEra era))
285285

286286
deriving instance Eq (SignedTx era)
287287

@@ -294,16 +294,16 @@ instance HasTypeProxy era => HasTypeProxy (SignedTx era) where
294294

295295
instance
296296
( HasTypeProxy era
297-
, L.EraTx (LedgerEra era)
297+
, L.EraTx (ShelleyLedgerEra era)
298298
)
299299
=> SerialiseAsRawBytes (SignedTx era)
300300
where
301301
serialiseToRawBytes (SignedTx tx) =
302-
Ledger.serialize' (Ledger.eraProtVerHigh @(LedgerEra era)) tx
302+
Ledger.serialize' (Ledger.eraProtVerHigh @(ShelleyLedgerEra era)) tx
303303
deserialiseFromRawBytes _ =
304304
bimap wrapError SignedTx
305305
. Ledger.decodeFullAnnotator
306-
(Ledger.eraProtVerHigh @(LedgerEra era))
306+
(Ledger.eraProtVerHigh @(ShelleyLedgerEra era))
307307
"SignedTx"
308308
Ledger.decCBOR
309309
. fromStrict

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
@@ -149,7 +149,7 @@ prop_created_transaction_with_both_apis_are_the_same = H.propertyOnce $ do
149149
exampleTransactionExperimentalWay
150150
:: H.MonadTest m
151151
=> Exp.Era Exp.ConwayEra
152-
-> m (Ledger.Tx L.TopTx (Exp.LedgerEra Exp.ConwayEra))
152+
-> m (Ledger.Tx L.TopTx (Api.ShelleyLedgerEra Exp.ConwayEra))
153153
exampleTransactionExperimentalWay era = do
154154
txBodyContent <- exampleTxBodyContentExperimental era
155155
signingKey <- exampleSigningKey
@@ -160,7 +160,7 @@ prop_created_transaction_with_both_apis_are_the_same = H.propertyOnce $ do
160160
let bootstrapWitnesses = []
161161
keyWitnesses = [witness]
162162

163-
let Exp.SignedTx (signedTx :: Ledger.Tx L.TopTx (Exp.LedgerEra Exp.ConwayEra)) = Exp.signTx era bootstrapWitnesses keyWitnesses unsignedTx
163+
let Exp.SignedTx (signedTx :: Ledger.Tx L.TopTx (Api.ShelleyLedgerEra Exp.ConwayEra)) = Exp.signTx era bootstrapWitnesses keyWitnesses unsignedTx
164164
return signedTx
165165

166166
prop_balance_transaction_two_ways :: Property

0 commit comments

Comments
 (0)