{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Test.Cardano.Ledger.Allegra.Binary.Annotator (
  module Test.Cardano.Ledger.Shelley.Binary.Annotator,
) where

import Cardano.Ledger.Allegra (AllegraEra)
import Cardano.Ledger.Allegra.Scripts
import Cardano.Ledger.Allegra.TxAuxData
import Cardano.Ledger.Allegra.TxBody
import Cardano.Ledger.Binary
import Cardano.Ledger.Binary.Coders
import Cardano.Ledger.Core
import qualified Data.Sequence.Strict as StrictSeq
import Test.Cardano.Ledger.Allegra.Arbitrary ()
import Test.Cardano.Ledger.Core.Binary.Annotator
import Test.Cardano.Ledger.Shelley.Binary.Annotator

instance Era era => DecCBOR (Annotator (AllegraTxAuxDataRaw era)) where
  decCBOR :: forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decCBOR =
    Decoder s TokenType
forall s. Decoder s TokenType
peekTokenType Decoder s TokenType
-> (TokenType -> Decoder s (Annotator (AllegraTxAuxDataRaw era)))
-> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall a b. Decoder s a -> (a -> Decoder s b) -> Decoder s b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \case
      TokenType
TypeMapLen -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromMap
      TokenType
TypeMapLen64 -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromMap
      TokenType
TypeMapLenIndef -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromMap
      TokenType
TypeListLen -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromList
      TokenType
TypeListLen64 -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromList
      TokenType
TypeListLenIndef -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall s. Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromList
      TokenType
_ -> String -> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall a. String -> Decoder s a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Failed to decode AuxiliaryDataRaw"
    where
      decodeFromMap :: Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromMap =
        Decode Any (Annotator (AllegraTxAuxDataRaw era))
-> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode
          ( Decode
  Any
  (Map Word64 Metadatum
   -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
-> Decode
     Any
     (Annotator
        (Map Word64 Metadatum
         -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((Map Word64 Metadatum
 -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
-> Decode
     Any
     (Map Word64 Metadatum
      -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
forall t (w :: Wrapped). t -> Decode w t
Emit Map Word64 Metadatum
-> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era
forall era.
Map Word64 Metadatum
-> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era
AllegraTxAuxDataRaw)
              Decode
  Any
  (Annotator
     (Map Word64 Metadatum
      -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
-> Decode ('Closed Any) (Annotator (Map Word64 Metadatum))
-> Decode
     Any
     (Annotator (StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! Decode ('Closed Any) (Map Word64 Metadatum)
-> Decode ('Closed Any) (Annotator (Map Word64 Metadatum))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann Decode ('Closed Any) (Map Word64 Metadatum)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
              Decode
  Any
  (Annotator (StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
-> Decode ('Closed Any) (Annotator (StrictSeq (Timelock era)))
-> Decode Any (Annotator (AllegraTxAuxDataRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! Decode ('Closed Any) (StrictSeq (Timelock era))
-> Decode ('Closed Any) (Annotator (StrictSeq (Timelock era)))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann (StrictSeq (Timelock era)
-> Decode ('Closed Any) (StrictSeq (Timelock era))
forall t (w :: Wrapped). t -> Decode w t
Emit StrictSeq (Timelock era)
forall a. StrictSeq a
StrictSeq.empty)
          )
      decodeFromList :: Decoder s (Annotator (AllegraTxAuxDataRaw era))
decodeFromList =
        Decode ('Closed 'Dense) (Annotator (AllegraTxAuxDataRaw era))
-> Decoder s (Annotator (AllegraTxAuxDataRaw era))
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode
          ( Decode
  ('Closed 'Dense)
  (Map Word64 Metadatum
   -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
-> Decode
     ('Closed 'Dense)
     (Annotator
        (Map Word64 Metadatum
         -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((Map Word64 Metadatum
 -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
-> Decode
     ('Closed 'Dense)
     (Map Word64 Metadatum
      -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era)
forall t. t -> Decode ('Closed 'Dense) t
RecD Map Word64 Metadatum
-> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era
forall era.
Map Word64 Metadatum
-> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era
AllegraTxAuxDataRaw)
              Decode
  ('Closed 'Dense)
  (Annotator
     (Map Word64 Metadatum
      -> StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
-> Decode ('Closed Any) (Annotator (Map Word64 Metadatum))
-> Decode
     ('Closed 'Dense)
     (Annotator (StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! Decode ('Closed Any) (Map Word64 Metadatum)
-> Decode ('Closed Any) (Annotator (Map Word64 Metadatum))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann Decode ('Closed Any) (Map Word64 Metadatum)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
              Decode
  ('Closed 'Dense)
  (Annotator (StrictSeq (Timelock era) -> AllegraTxAuxDataRaw era))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
-> Decode ('Closed 'Dense) (Annotator (AllegraTxAuxDataRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! (forall s. Decoder s (Annotator (StrictSeq (Timelock era))))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (StrictSeq (Annotator (Timelock era))
-> Annotator (StrictSeq (Timelock era))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a.
Monad m =>
StrictSeq (m a) -> m (StrictSeq a)
sequence (StrictSeq (Annotator (Timelock era))
 -> Annotator (StrictSeq (Timelock era)))
-> Decoder s (StrictSeq (Annotator (Timelock era)))
-> Decoder s (Annotator (StrictSeq (Timelock era)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (StrictSeq (Annotator (Timelock era)))
forall s. Decoder s (StrictSeq (Annotator (Timelock era)))
forall a s. DecCBOR a => Decoder s a
decCBOR)
          )

deriving via
  (Mem (AllegraTxAuxDataRaw era))
  instance
    Era era => DecCBOR (Annotator (AllegraTxAuxData era))

instance Era era => DecCBOR (Annotator (TimelockRaw era)) where
  decCBOR :: forall s. Decoder s (Annotator (TimelockRaw era))
decCBOR = Decode ('Closed 'Dense) (Annotator (TimelockRaw era))
-> Decoder s (Annotator (TimelockRaw era))
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Text
-> (Word -> Decode 'Open (Annotator (TimelockRaw era)))
-> Decode ('Closed 'Dense) (Annotator (TimelockRaw era))
forall t.
Text -> (Word -> Decode 'Open t) -> Decode ('Closed 'Dense) t
Summands Text
"TimelockRaw" Word -> Decode 'Open (Annotator (TimelockRaw era))
decRaw)
    where
      decRaw :: Word -> Decode 'Open (Annotator (TimelockRaw era))
      decRaw :: Word -> Decode 'Open (Annotator (TimelockRaw era))
decRaw Word
0 = Decode 'Open (TimelockRaw era)
-> Decode 'Open (Annotator (TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((KeyHash 'Witness -> TimelockRaw era)
-> Decode 'Open (KeyHash 'Witness -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD KeyHash 'Witness -> TimelockRaw era
forall {k} (era :: k). KeyHash 'Witness -> TimelockRaw era
TimelockSignature Decode 'Open (KeyHash 'Witness -> TimelockRaw era)
-> Decode ('Closed Any) (KeyHash 'Witness)
-> Decode 'Open (TimelockRaw era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) (KeyHash 'Witness)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From)
      decRaw Word
1 = Decode 'Open (StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode
     'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode 'Open (StrictSeq (Timelock era) -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD StrictSeq (Timelock era) -> TimelockRaw era
forall {k} (era :: k). StrictSeq (Timelock era) -> TimelockRaw era
TimelockAllOf) Decode
  'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
-> Decode 'Open (Annotator (TimelockRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! (forall s. Decoder s (Annotator (StrictSeq (Timelock era))))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (StrictSeq (Annotator (Timelock era))
-> Annotator (StrictSeq (Timelock era))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a.
Monad m =>
StrictSeq (m a) -> m (StrictSeq a)
sequence (StrictSeq (Annotator (Timelock era))
 -> Annotator (StrictSeq (Timelock era)))
-> Decoder s (StrictSeq (Annotator (Timelock era)))
-> Decoder s (Annotator (StrictSeq (Timelock era)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (StrictSeq (Annotator (Timelock era)))
forall s. Decoder s (StrictSeq (Annotator (Timelock era)))
forall a s. DecCBOR a => Decoder s a
decCBOR)
      decRaw Word
2 = Decode 'Open (StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode
     'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode 'Open (StrictSeq (Timelock era) -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD StrictSeq (Timelock era) -> TimelockRaw era
forall {k} (era :: k). StrictSeq (Timelock era) -> TimelockRaw era
TimelockAnyOf) Decode
  'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
-> Decode 'Open (Annotator (TimelockRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! (forall s. Decoder s (Annotator (StrictSeq (Timelock era))))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (StrictSeq (Annotator (Timelock era))
-> Annotator (StrictSeq (Timelock era))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a.
Monad m =>
StrictSeq (m a) -> m (StrictSeq a)
sequence (StrictSeq (Annotator (Timelock era))
 -> Annotator (StrictSeq (Timelock era)))
-> Decoder s (StrictSeq (Annotator (Timelock era)))
-> Decoder s (Annotator (StrictSeq (Timelock era)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (StrictSeq (Annotator (Timelock era)))
forall s. Decoder s (StrictSeq (Annotator (Timelock era)))
forall a s. DecCBOR a => Decoder s a
decCBOR)
      decRaw Word
3 = Decode 'Open (Int -> StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode
     'Open
     (Annotator (Int -> StrictSeq (Timelock era) -> TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((Int -> StrictSeq (Timelock era) -> TimelockRaw era)
-> Decode
     'Open (Int -> StrictSeq (Timelock era) -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD Int -> StrictSeq (Timelock era) -> TimelockRaw era
forall {k} (era :: k).
Int -> StrictSeq (Timelock era) -> TimelockRaw era
TimelockMOf) Decode
  'Open
  (Annotator (Int -> StrictSeq (Timelock era) -> TimelockRaw era))
-> Decode ('Closed Any) (Annotator Int)
-> Decode
     'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! Decode ('Closed Any) Int -> Decode ('Closed Any) (Annotator Int)
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann Decode ('Closed Any) Int
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode
  'Open (Annotator (StrictSeq (Timelock era) -> TimelockRaw era))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
-> Decode 'Open (Annotator (TimelockRaw era))
forall a t (w1 :: Wrapped) (d :: Density).
(Typeable a, Typeable t) =>
Decode w1 (Annotator (a -> t))
-> Decode ('Closed d) (Annotator a) -> Decode w1 (Annotator t)
<*! (forall s. Decoder s (Annotator (StrictSeq (Timelock era))))
-> Decode ('Closed 'Dense) (Annotator (StrictSeq (Timelock era)))
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (StrictSeq (Annotator (Timelock era))
-> Annotator (StrictSeq (Timelock era))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a.
Monad m =>
StrictSeq (m a) -> m (StrictSeq a)
sequence (StrictSeq (Annotator (Timelock era))
 -> Annotator (StrictSeq (Timelock era)))
-> Decoder s (StrictSeq (Annotator (Timelock era)))
-> Decoder s (Annotator (StrictSeq (Timelock era)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (StrictSeq (Annotator (Timelock era)))
forall s. Decoder s (StrictSeq (Annotator (Timelock era)))
forall a s. DecCBOR a => Decoder s a
decCBOR)
      decRaw Word
4 = Decode 'Open (TimelockRaw era)
-> Decode 'Open (Annotator (TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((SlotNo -> TimelockRaw era)
-> Decode 'Open (SlotNo -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD SlotNo -> TimelockRaw era
forall {k} (era :: k). SlotNo -> TimelockRaw era
TimelockTimeStart Decode 'Open (SlotNo -> TimelockRaw era)
-> Decode ('Closed Any) SlotNo -> Decode 'Open (TimelockRaw era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From)
      decRaw Word
5 = Decode 'Open (TimelockRaw era)
-> Decode 'Open (Annotator (TimelockRaw era))
forall t1 (w :: Wrapped).
Typeable t1 =>
Decode w t1 -> Decode w (Annotator t1)
Ann ((SlotNo -> TimelockRaw era)
-> Decode 'Open (SlotNo -> TimelockRaw era)
forall t. t -> Decode 'Open t
SumD SlotNo -> TimelockRaw era
forall {k} (era :: k). SlotNo -> TimelockRaw era
TimelockTimeExpire Decode 'Open (SlotNo -> TimelockRaw era)
-> Decode ('Closed Any) SlotNo -> Decode 'Open (TimelockRaw era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From)
      decRaw Word
n = Word -> Decode 'Open (Annotator (TimelockRaw era))
forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
n

instance Era era => DecCBOR (Annotator (Timelock era)) where
  decCBOR :: forall s. Decoder s (Annotator (Timelock era))
decCBOR = (MemoBytes (TimelockRaw era) -> Timelock era)
-> Annotator (MemoBytes (TimelockRaw era))
-> Annotator (Timelock era)
forall a b. (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MemoBytes (TimelockRaw era) -> Timelock era
forall {k} (era :: k). MemoBytes (TimelockRaw era) -> Timelock era
MkTimelock (Annotator (MemoBytes (TimelockRaw era))
 -> Annotator (Timelock era))
-> Decoder s (Annotator (MemoBytes (TimelockRaw era)))
-> Decoder s (Annotator (Timelock era))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (Annotator (MemoBytes (TimelockRaw era)))
forall s. Decoder s (Annotator (MemoBytes (TimelockRaw era)))
forall a s. DecCBOR a => Decoder s a
decCBOR

instance
  (DecCBOR m, Monoid m, AllegraEraTxBody era) =>
  DecCBOR (Annotator (AllegraTxBodyRaw m era))
  where
  decCBOR :: forall s. Decoder s (Annotator (AllegraTxBodyRaw m era))
decCBOR = AllegraTxBodyRaw m era -> Annotator (AllegraTxBodyRaw m era)
forall a. a -> Annotator a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (AllegraTxBodyRaw m era -> Annotator (AllegraTxBodyRaw m era))
-> Decoder s (AllegraTxBodyRaw m era)
-> Decoder s (Annotator (AllegraTxBodyRaw m era))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (AllegraTxBodyRaw m era)
forall s. Decoder s (AllegraTxBodyRaw m era)
forall a s. DecCBOR a => Decoder s a
decCBOR

deriving via
  Mem (AllegraTxBodyRaw () AllegraEra)
  instance
    DecCBOR (Annotator (TxBody AllegraEra))