77{-# LANGUAGE GeneralizedNewtypeDeriving #-}
88{-# LANGUAGE LambdaCase #-}
99{-# LANGUAGE MultiParamTypeClasses #-}
10- {-# LANGUAGE NamedFieldPuns #-}
1110{-# LANGUAGE OverloadedStrings #-}
1211{-# LANGUAGE PatternSynonyms #-}
1312{-# LANGUAGE RankNTypes #-}
@@ -126,6 +125,7 @@ import qualified Data.MapExtras as Map (fromElems)
126125import Data.Maybe (mapMaybe )
127126import Data.Set (Set )
128127import qualified Data.Set as Set
128+ import Data.Typeable (Proxy (Proxy ))
129129import GHC.Generics (Generic )
130130import Lens.Micro
131131import NoThunks.Class (NoThunks )
@@ -152,8 +152,9 @@ instance AlonzoEraScript era => EncCBOR (RedeemersRaw era) where
152152 (encCBOR rs)
153153 (encodeFoldableEncoder keyValueEncoder $ Map. toAscList rs)
154154 where
155+ keyValueEncoder :: (PlutusPurpose AsIx era , (Data era , ExUnits )) -> Encoding
155156 keyValueEncoder (ptr, (dats, exs)) =
156- encodeListLen (listLen ptr + 2 )
157+ encodeListLen (listLen ( Proxy @ ( PlutusPurpose AsIx era )) + 2 )
157158 <> encCBORGroup ptr
158159 <> encCBOR dats
159160 <> encCBOR exs
@@ -556,11 +557,14 @@ instance AlonzoEraScript era => DecCBOR (Annotator (RedeemersRaw era)) where
556557 decodeElement ::
557558 forall s . Decoder s (PlutusPurpose AsIx era , Annotator (Data era ), ExUnits )
558559 decodeElement = do
559- decodeRecordNamed " Redeemer" (\ (rdmrPtr, _, _) -> fromIntegral (listLen rdmrPtr) + 2 ) $ do
560- ! redeemerPtr <- decCBORGroup
561- ! redeemerData <- decCBOR
562- ! redeemerExUnits <- decCBOR
563- pure (redeemerPtr, redeemerData, redeemerExUnits)
560+ decodeRecordNamed
561+ " Redeemer"
562+ (\ (_, _, _) -> fromIntegral (listLen (Proxy @ (PlutusPurpose AsIx era ))) + 2 )
563+ $ do
564+ ! redeemerPtr <- decCBORGroup
565+ ! redeemerData <- decCBOR
566+ ! redeemerExUnits <- decCBOR
567+ pure (redeemerPtr, redeemerData, redeemerExUnits)
564568 {-# INLINE decodeElement #-}
565569 {-# INLINE decCBOR #-}
566570
0 commit comments