@@ -21,7 +21,6 @@ module Cardano.Ledger.Dijkstra.TxCert (
2121import Cardano.Ledger.BaseTypes (kindObject )
2222import Cardano.Ledger.Binary (
2323 DecCBOR (.. ),
24- Decoder ,
2524 EncCBOR (.. ),
2625 FromCBOR (.. ),
2726 ToCBOR (.. ),
@@ -34,7 +33,6 @@ import Cardano.Ledger.Binary (
3433import Cardano.Ledger.Coin (Coin )
3534import Cardano.Ledger.Conway.Core (
3635 ConwayEraTxCert ,
37- ShelleyEraTxCert (.. ),
3836 poolCertKeyHashWitness ,
3937 pattern AuthCommitteeHotKeyTxCert ,
4038 pattern DelegTxCert ,
@@ -78,7 +76,6 @@ import Cardano.Ledger.Shelley.TxCert (
7876 encodePoolCert ,
7977 encodeShelleyDelegCert ,
8078 poolTxCertDecoder ,
81- shelleyTxCertDelegDecoder ,
8279 )
8380import Cardano.Ledger.Val (Val )
8481import Control.DeepSeq (NFData )
@@ -109,29 +106,29 @@ instance EncCBOR DijkstraDelegCert where
109106 <> encCBOR dRep
110107 DijkstraRegCert cred deposit ->
111108 encodeListLen 3
112- <> encodeWord8 19
109+ <> encodeWord8 7
113110 <> encCBOR cred
114111 <> encCBOR deposit
115112 DijkstraUnRegCert cred deposit ->
116113 encodeListLen 3
117- <> encodeWord8 20
114+ <> encodeWord8 8
118115 <> encCBOR cred
119116 <> encCBOR deposit
120117 DijkstraRegDelegCert cred (DelegStake poolId) deposit ->
121118 encodeListLen 4
122- <> encodeWord8 21
119+ <> encodeWord8 11
123120 <> encCBOR cred
124121 <> encCBOR poolId
125122 <> encCBOR deposit
126123 DijkstraRegDelegCert cred (DelegVote drep) deposit ->
127124 encodeListLen 4
128- <> encodeWord8 22
125+ <> encodeWord8 12
129126 <> encCBOR cred
130127 <> encCBOR drep
131128 <> encCBOR deposit
132129 DijkstraRegDelegCert cred (DelegStakeVote poolId dRep) deposit ->
133130 encodeListLen 5
134- <> encodeWord8 23
131+ <> encodeWord8 13
135132 <> encCBOR cred
136133 <> encCBOR poolId
137134 <> encCBOR dRep
@@ -200,45 +197,23 @@ instance
200197
201198instance
202199 ( ConwayEraTxCert era
203- , ShelleyEraTxCert era
204200 , TxCert era ~ DijkstraTxCert era
205201 ) =>
206202 DecCBOR (DijkstraTxCert era )
207203 where
208204 decCBOR = decodeRecordSum " DijkstraTxCert" $ \ case
209205 t
210206 | 0 <= t && t < 2 -> fail " Certificates without deposits are no longer supported"
211- | t == 2 -> shelleyTxCertDelegDecoder t
207+ | t == 2 -> do
208+ cred <- decCBOR
209+ stakePool <- decCBOR
210+ pure (3 , DelegTxCert cred (DelegStake stakePool))
212211 | 3 <= t && t < 5 -> poolTxCertDecoder t
213212 | t == 5 -> fail " Genesis delegation certificates are no longer supported"
214213 | t == 6 -> fail " MIR certificates are no longer supported"
215- | 7 <= t && t < 19 -> conwayTxCertDelegDecoder t
216- | 19 <= t -> dijkstraTxCertDelegDecoder t
214+ | 7 <= t -> conwayTxCertDelegDecoder t
217215 t -> invalidKey t
218216
219- dijkstraTxCertDelegDecoder :: ConwayEraTxCert era => Word -> Decoder s (Int , TxCert era )
220- dijkstraTxCertDelegDecoder = \ case
221- 19 -> do
222- cred <- decCBOR
223- deposit <- decCBOR
224- pure (3 , RegDepositTxCert cred deposit)
225- 20 -> do
226- cred <- decCBOR
227- deposit <- decCBOR
228- pure (3 , UnRegDepositTxCert cred deposit)
229- 21 -> regDelegCertDecoder 4 (DelegStake <$> decCBOR)
230- 22 -> regDelegCertDecoder 4 (DelegVote <$> decCBOR)
231- 23 -> regDelegCertDecoder 5 (DelegStakeVote <$> decCBOR <*> decCBOR)
232- k -> invalidKey k
233- where
234- regDelegCertDecoder n decodeDelegatee = do
235- cred <- decCBOR
236- delegatee <- decodeDelegatee
237- deposit <- decCBOR
238- pure (n, RegDepositDelegTxCert cred delegatee deposit)
239- {-# INLINE regDelegCertDecoder #-}
240- {-# INLINE dijkstraTxCertDelegDecoder #-}
241-
242217instance (Era era , Val (Value era )) => ToCBOR (DijkstraTxCert era ) where
243218 toCBOR = toPlainEncoding (eraProtVerLow @ era ) . encCBOR
244219
0 commit comments