{-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# 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, Tx (..)) 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 Cardano.Ledger.MemoBytes (decodeMemoized) import qualified Data.Sequence.Strict as StrictSeq import Test.Cardano.Ledger.Allegra.Arbitrary () import Test.Cardano.Ledger.Shelley.Binary.Annotator deriving newtype instance DecCBOR (TxBody TopTx AllegraEra) instance ( Era era , AllegraEraScript era , DecCBOR (NativeScript era) ) => DecCBOR (AllegraTxAuxDataRaw era) where decCBOR :: forall s. Decoder s (AllegraTxAuxDataRaw era) decCBOR = Decoder s TokenType forall s. Decoder s TokenType peekTokenType Decoder s TokenType -> (TokenType -> Decoder s (AllegraTxAuxDataRaw era)) -> Decoder s (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 (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromMap TokenType TypeMapLen64 -> Decoder s (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromMap TokenType TypeMapLenIndef -> Decoder s (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromMap TokenType TypeListLen -> Decoder s (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromList TokenType TypeListLen64 -> Decoder s (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromList TokenType TypeListLenIndef -> Decoder s (AllegraTxAuxDataRaw era) forall s. Decoder s (AllegraTxAuxDataRaw era) decodeFromList TokenType _ -> String -> Decoder s (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 (AllegraTxAuxDataRaw era) decodeFromMap = Decode (ZonkAny 9) (AllegraTxAuxDataRaw era) -> Decoder s (AllegraTxAuxDataRaw era) forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t decode ( (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (ZonkAny 9) (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) forall t (w :: Wrapped). t -> Decode w t Emit Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era forall era. Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era AllegraTxAuxDataRaw Decode (ZonkAny 9) (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (Closed (ZonkAny 11)) (Map Word64 Metadatum) -> Decode (ZonkAny 9) (StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) forall a (w1 :: Wrapped) t (w :: Density). Typeable a => Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t <! Decode (Closed (ZonkAny 11)) (Map Word64 Metadatum) forall t (w :: Wrapped). DecCBOR t => Decode w t From Decode (ZonkAny 9) (StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (Closed (ZonkAny 10)) (StrictSeq (NativeScript era)) -> Decode (ZonkAny 9) (AllegraTxAuxDataRaw era) forall a (w1 :: Wrapped) t (w :: Density). Typeable a => Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t <! StrictSeq (NativeScript era) -> Decode (Closed (ZonkAny 10)) (StrictSeq (NativeScript era)) forall t (w :: Wrapped). t -> Decode w t Emit StrictSeq (NativeScript era) forall a. StrictSeq a StrictSeq.empty ) decodeFromList :: Decoder s (AllegraTxAuxDataRaw era) decodeFromList = Decode (Closed Dense) (AllegraTxAuxDataRaw era) -> Decoder s (AllegraTxAuxDataRaw era) forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t decode ( (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (Closed Dense) (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) forall t. t -> Decode (Closed Dense) t RecD Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era forall era. Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era AllegraTxAuxDataRaw Decode (Closed Dense) (Map Word64 Metadatum -> StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (Closed (ZonkAny 8)) (Map Word64 Metadatum) -> Decode (Closed Dense) (StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) forall a (w1 :: Wrapped) t (w :: Density). Typeable a => Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t <! Decode (Closed (ZonkAny 8)) (Map Word64 Metadatum) forall t (w :: Wrapped). DecCBOR t => Decode w t From Decode (Closed Dense) (StrictSeq (NativeScript era) -> AllegraTxAuxDataRaw era) -> Decode (Closed (ZonkAny 7)) (StrictSeq (NativeScript era)) -> Decode (Closed Dense) (AllegraTxAuxDataRaw era) forall a (w1 :: Wrapped) t (w :: Density). Typeable a => Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t <! Decode (Closed (ZonkAny 7)) (StrictSeq (NativeScript era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From ) deriving newtype instance (AllegraEraScript era, DecCBOR (NativeScript era)) => DecCBOR (AllegraTxAuxData era) instance Era era => DecCBOR (TimelockRaw era) where decCBOR :: forall s. Decoder s (TimelockRaw era) decCBOR = Decode (Closed Dense) (TimelockRaw era) -> Decoder s (TimelockRaw era) forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t decode (Decode (Closed Dense) (TimelockRaw era) -> Decoder s (TimelockRaw era)) -> Decode (Closed Dense) (TimelockRaw era) -> Decoder s (TimelockRaw era) forall a b. (a -> b) -> a -> b $ Text -> (Word -> Decode Open (TimelockRaw era)) -> Decode (Closed Dense) (TimelockRaw era) forall t. Text -> (Word -> Decode Open t) -> Decode (Closed Dense) t Summands Text "TimelockRaw" ((Word -> Decode Open (TimelockRaw era)) -> Decode (Closed Dense) (TimelockRaw era)) -> (Word -> Decode Open (TimelockRaw era)) -> Decode (Closed Dense) (TimelockRaw era) forall a b. (a -> b) -> a -> b $ \case Word 0 -> (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 (ZonkAny 0)) (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 (ZonkAny 0)) (KeyHash Witness) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 1 -> (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 (StrictSeq (Timelock era) -> TimelockRaw era) -> Decode (Closed (ZonkAny 1)) (StrictSeq (Timelock era)) -> 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 (ZonkAny 1)) (StrictSeq (Timelock era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 2 -> (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 (StrictSeq (Timelock era) -> TimelockRaw era) -> Decode (Closed (ZonkAny 2)) (StrictSeq (Timelock era)) -> 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 (ZonkAny 2)) (StrictSeq (Timelock era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 3 -> (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 (Int -> StrictSeq (Timelock era) -> TimelockRaw era) -> Decode (Closed (ZonkAny 4)) Int -> Decode Open (StrictSeq (Timelock era) -> TimelockRaw era) forall a (w1 :: Wrapped) t (w :: Density). Typeable a => Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t <! Decode (Closed (ZonkAny 4)) Int forall t (w :: Wrapped). DecCBOR t => Decode w t From Decode Open (StrictSeq (Timelock era) -> TimelockRaw era) -> Decode (Closed (ZonkAny 3)) (StrictSeq (Timelock era)) -> 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 (ZonkAny 3)) (StrictSeq (Timelock era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 4 -> (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 (ZonkAny 5)) 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 (ZonkAny 5)) SlotNo forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 5 -> (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 (ZonkAny 6)) 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 (ZonkAny 6)) SlotNo forall t (w :: Wrapped). DecCBOR t => Decode w t From Word n -> Word -> Decode Open (TimelockRaw era) forall (w :: Wrapped) t. Word -> Decode w t Invalid Word n instance Era era => DecCBOR (Timelock era) where decCBOR :: forall s. Decoder s (Timelock era) decCBOR = MemoBytes (TimelockRaw era) -> Timelock era forall {k} (era :: k). MemoBytes (TimelockRaw era) -> Timelock era MkTimelock (MemoBytes (TimelockRaw era) -> Timelock era) -> Decoder s (MemoBytes (TimelockRaw era)) -> Decoder s (Timelock era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Decoder s (TimelockRaw era) -> Decoder s (MemoBytes (TimelockRaw era)) forall s t. Decoder s t -> Decoder s (MemoBytes t) decodeMemoized Decoder s (TimelockRaw era) forall s. Decoder s (TimelockRaw era) forall a s. DecCBOR a => Decoder s a decCBOR deriving newtype instance DecCBOR (Tx TopTx AllegraEra)