{-# 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))