|
1 | 1 | {-# LANGUAGE BangPatterns #-} |
| 2 | +{-# LANGUAGE BlockArguments #-} |
2 | 3 | {-# LANGUAGE DataKinds #-} |
3 | 4 | {-# LANGUAGE DeriveGeneric #-} |
4 | 5 | {-# LANGUAGE DerivingVia #-} |
|
7 | 8 | {-# LANGUAGE GeneralizedNewtypeDeriving #-} |
8 | 9 | {-# LANGUAGE LambdaCase #-} |
9 | 10 | {-# LANGUAGE MultiParamTypeClasses #-} |
10 | | -{-# LANGUAGE NamedFieldPuns #-} |
11 | 11 | {-# LANGUAGE OverloadedStrings #-} |
12 | 12 | {-# LANGUAGE PatternSynonyms #-} |
13 | 13 | {-# LANGUAGE RankNTypes #-} |
@@ -85,6 +85,7 @@ import Cardano.Ledger.Binary ( |
85 | 85 | encodeTag, |
86 | 86 | ifDecoderVersionAtLeast, |
87 | 87 | ifEncodingVersionAtLeast, |
| 88 | + listLenInt, |
88 | 89 | natVersion, |
89 | 90 | peekTokenType, |
90 | 91 | setTag, |
@@ -152,8 +153,9 @@ instance AlonzoEraScript era => EncCBOR (RedeemersRaw era) where |
152 | 153 | (encCBOR rs) |
153 | 154 | (encodeFoldableEncoder keyValueEncoder $ Map.toAscList rs) |
154 | 155 | where |
| 156 | + keyValueEncoder :: (PlutusPurpose AsIx era, (Data era, ExUnits)) -> Encoding |
155 | 157 | keyValueEncoder (ptr, (dats, exs)) = |
156 | | - encodeListLen (listLen ptr + 2) |
| 158 | + encodeListLen (listLen (toProxy ptr) + 2) |
157 | 159 | <> encCBORGroup ptr |
158 | 160 | <> encCBOR dats |
159 | 161 | <> encCBOR exs |
@@ -556,7 +558,8 @@ instance AlonzoEraScript era => DecCBOR (Annotator (RedeemersRaw era)) where |
556 | 558 | decodeElement :: |
557 | 559 | forall s. Decoder s (PlutusPurpose AsIx era, Annotator (Data era), ExUnits) |
558 | 560 | decodeElement = do |
559 | | - decodeRecordNamed "Redeemer" (\(rdmrPtr, _, _) -> fromIntegral (listLen rdmrPtr) + 2) $ do |
| 561 | + let redeemerLen (redeemerPtr, _, _) = listLenInt redeemerPtr + 2 |
| 562 | + decodeRecordNamed "Redeemer" redeemerLen do |
560 | 563 | !redeemerPtr <- decCBORGroup |
561 | 564 | !redeemerData <- decCBOR |
562 | 565 | !redeemerExUnits <- decCBOR |
|
0 commit comments