{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.CanonicalState.Namespace.GovProposals.Roots.V0 ( GovProposalsRootsIn (..), GovProposalsRootsOut (..), ) where import Cardano.Ledger.CanonicalState.LedgerCBOR import Cardano.Ledger.CanonicalState.Namespace (NamespaceEra) import Cardano.Ledger.CanonicalState.Namespace.GovProposals.V0 (CanonicalGovActionId (..)) import Cardano.Ledger.Core (Era) import Cardano.Ledger.TxIn import Cardano.SCLS.CBOR.Canonical.Decoder as D import Cardano.SCLS.CBOR.Canonical.Encoder import Cardano.SCLS.CDDL () import Cardano.SCLS.Entry.IsKey import Cardano.SCLS.NamespaceCodec ( CanonicalCBOREntryDecoder (..), CanonicalCBOREntryEncoder (..), KnownNamespace (NamespaceEntry, NamespaceKey), NamespaceKeySize, namespaceKeySize, ) import Cardano.SCLS.Versioned (Versioned (..)) import Data.Map (Map) import Data.MapExtras (boundedEnumMap, lookupMapFail) import Data.MemPack import Data.Proxy (Proxy (..)) import Data.Word (Word8) import GHC.Generics (Generic) instance (Era era, NamespaceEra "gov/proposals/roots/v0" ~ era) => KnownNamespace "gov/proposals/roots/v0" where type NamespaceKey "gov/proposals/roots/v0" = GovProposalsRootsIn type NamespaceEntry "gov/proposals/roots/v0" = GovProposalsRootsOut data GovProposalsRootsIn = GovProposalsRootsInPParamUpdate | GovProposalsRootsInHardFork | GovProposalsRootsInCommittee | GovProposalsRootsInConstitution deriving (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> Eq GovProposalsRootsIn forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool == :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool $c/= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool /= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool Eq, Eq GovProposalsRootsIn Eq GovProposalsRootsIn => (GovProposalsRootsIn -> GovProposalsRootsIn -> Ordering) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> Bool) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn) -> Ord GovProposalsRootsIn GovProposalsRootsIn -> GovProposalsRootsIn -> Bool GovProposalsRootsIn -> GovProposalsRootsIn -> Ordering GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: GovProposalsRootsIn -> GovProposalsRootsIn -> Ordering compare :: GovProposalsRootsIn -> GovProposalsRootsIn -> Ordering $c< :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool < :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool $c<= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool <= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool $c> :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool > :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool $c>= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool >= :: GovProposalsRootsIn -> GovProposalsRootsIn -> Bool $cmax :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn max :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn $cmin :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn min :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn Ord, Int -> GovProposalsRootsIn -> ShowS [GovProposalsRootsIn] -> ShowS GovProposalsRootsIn -> String (Int -> GovProposalsRootsIn -> ShowS) -> (GovProposalsRootsIn -> String) -> ([GovProposalsRootsIn] -> ShowS) -> Show GovProposalsRootsIn forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> GovProposalsRootsIn -> ShowS showsPrec :: Int -> GovProposalsRootsIn -> ShowS $cshow :: GovProposalsRootsIn -> String show :: GovProposalsRootsIn -> String $cshowList :: [GovProposalsRootsIn] -> ShowS showList :: [GovProposalsRootsIn] -> ShowS Show, Int -> GovProposalsRootsIn GovProposalsRootsIn -> Int GovProposalsRootsIn -> [GovProposalsRootsIn] GovProposalsRootsIn -> GovProposalsRootsIn GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] (GovProposalsRootsIn -> GovProposalsRootsIn) -> (GovProposalsRootsIn -> GovProposalsRootsIn) -> (Int -> GovProposalsRootsIn) -> (GovProposalsRootsIn -> Int) -> (GovProposalsRootsIn -> [GovProposalsRootsIn]) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn]) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn]) -> (GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn]) -> Enum GovProposalsRootsIn forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a $csucc :: GovProposalsRootsIn -> GovProposalsRootsIn succ :: GovProposalsRootsIn -> GovProposalsRootsIn $cpred :: GovProposalsRootsIn -> GovProposalsRootsIn pred :: GovProposalsRootsIn -> GovProposalsRootsIn $ctoEnum :: Int -> GovProposalsRootsIn toEnum :: Int -> GovProposalsRootsIn $cfromEnum :: GovProposalsRootsIn -> Int fromEnum :: GovProposalsRootsIn -> Int $cenumFrom :: GovProposalsRootsIn -> [GovProposalsRootsIn] enumFrom :: GovProposalsRootsIn -> [GovProposalsRootsIn] $cenumFromThen :: GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] enumFromThen :: GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] $cenumFromTo :: GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] enumFromTo :: GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] $cenumFromThenTo :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] enumFromThenTo :: GovProposalsRootsIn -> GovProposalsRootsIn -> GovProposalsRootsIn -> [GovProposalsRootsIn] Enum, GovProposalsRootsIn GovProposalsRootsIn -> GovProposalsRootsIn -> Bounded GovProposalsRootsIn forall a. a -> a -> Bounded a $cminBound :: GovProposalsRootsIn minBound :: GovProposalsRootsIn $cmaxBound :: GovProposalsRootsIn maxBound :: GovProposalsRootsIn Bounded, (forall x. GovProposalsRootsIn -> Rep GovProposalsRootsIn x) -> (forall x. Rep GovProposalsRootsIn x -> GovProposalsRootsIn) -> Generic GovProposalsRootsIn forall x. Rep GovProposalsRootsIn x -> GovProposalsRootsIn forall x. GovProposalsRootsIn -> Rep GovProposalsRootsIn x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. GovProposalsRootsIn -> Rep GovProposalsRootsIn x from :: forall x. GovProposalsRootsIn -> Rep GovProposalsRootsIn x $cto :: forall x. Rep GovProposalsRootsIn x -> GovProposalsRootsIn to :: forall x. Rep GovProposalsRootsIn x -> GovProposalsRootsIn Generic) keyGovProposalsRootsIn :: GovProposalsRootsIn -> Word8 keyGovProposalsRootsIn :: GovProposalsRootsIn -> Word8 keyGovProposalsRootsIn = Int -> Word8 forall a b. (Integral a, Num b) => a -> b fromIntegral (Int -> Word8) -> (GovProposalsRootsIn -> Int) -> GovProposalsRootsIn -> Word8 forall b c a. (b -> c) -> (a -> b) -> a -> c . GovProposalsRootsIn -> Int forall a. Enum a => a -> Int fromEnum mapGovProposalsRootsIn :: Map Word8 GovProposalsRootsIn mapGovProposalsRootsIn :: Map Word8 GovProposalsRootsIn mapGovProposalsRootsIn = (GovProposalsRootsIn -> Word8) -> Map Word8 GovProposalsRootsIn forall k a. (Ord k, Bounded a, Enum a) => (a -> k) -> Map k a boundedEnumMap GovProposalsRootsIn -> Word8 keyGovProposalsRootsIn instance IsKey GovProposalsRootsIn where keySize :: Int keySize = forall (ns :: Symbol). KnownNat (NamespaceKeySize ns) => Int namespaceKeySize @"gov/proposals/roots/v0" packKeyM :: forall b. GovProposalsRootsIn -> Pack b () packKeyM = Word8 -> Pack b () forall s. Word8 -> Pack s () forall a s. MemPack a => a -> Pack s () packM (Word8 -> Pack b ()) -> (GovProposalsRootsIn -> Word8) -> GovProposalsRootsIn -> Pack b () forall b c a. (b -> c) -> (a -> b) -> a -> c . GovProposalsRootsIn -> Word8 keyGovProposalsRootsIn unpackKeyM :: forall b s. Buffer b => Unpack' s b GovProposalsRootsIn unpackKeyM = do tag :: Word8 <- Unpack s b Word8 forall a b s. (MemPack a, Buffer b) => Unpack s b a forall b s. Buffer b => Unpack s b Word8 unpackM lookupMapFail "GovProposalsRootsIn tag" mapGovProposalsRootsIn tag newtype GovProposalsRootsOut = GovProposalsRootsOut CanonicalGovActionId deriving (GovProposalsRootsOut -> GovProposalsRootsOut -> Bool (GovProposalsRootsOut -> GovProposalsRootsOut -> Bool) -> (GovProposalsRootsOut -> GovProposalsRootsOut -> Bool) -> Eq GovProposalsRootsOut forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: GovProposalsRootsOut -> GovProposalsRootsOut -> Bool == :: GovProposalsRootsOut -> GovProposalsRootsOut -> Bool $c/= :: GovProposalsRootsOut -> GovProposalsRootsOut -> Bool /= :: GovProposalsRootsOut -> GovProposalsRootsOut -> Bool Eq, Int -> GovProposalsRootsOut -> ShowS [GovProposalsRootsOut] -> ShowS GovProposalsRootsOut -> String (Int -> GovProposalsRootsOut -> ShowS) -> (GovProposalsRootsOut -> String) -> ([GovProposalsRootsOut] -> ShowS) -> Show GovProposalsRootsOut forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> GovProposalsRootsOut -> ShowS showsPrec :: Int -> GovProposalsRootsOut -> ShowS $cshow :: GovProposalsRootsOut -> String show :: GovProposalsRootsOut -> String $cshowList :: [GovProposalsRootsOut] -> ShowS showList :: [GovProposalsRootsOut] -> ShowS Show, (forall x. GovProposalsRootsOut -> Rep GovProposalsRootsOut x) -> (forall x. Rep GovProposalsRootsOut x -> GovProposalsRootsOut) -> Generic GovProposalsRootsOut forall x. Rep GovProposalsRootsOut x -> GovProposalsRootsOut forall x. GovProposalsRootsOut -> Rep GovProposalsRootsOut x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. GovProposalsRootsOut -> Rep GovProposalsRootsOut x from :: forall x. GovProposalsRootsOut -> Rep GovProposalsRootsOut x $cto :: forall x. Rep GovProposalsRootsOut x -> GovProposalsRootsOut to :: forall x. Rep GovProposalsRootsOut x -> GovProposalsRootsOut Generic) deriving newtype instance ToCanonicalCBOR "gov/proposals/roots/v0" CanonicalGovActionId => ToCanonicalCBOR "gov/proposals/roots/v0" GovProposalsRootsOut deriving newtype instance FromCanonicalCBOR "gov/proposals/roots/v0" CanonicalGovActionId => FromCanonicalCBOR "gov/proposals/roots/v0" GovProposalsRootsOut instance (Era era, NamespaceEra "gov/proposals/roots/v0" ~ era) => ToCanonicalCBOR "gov/proposals/roots/v0" CanonicalGovActionId where toCanonicalCBOR :: forall (proxy :: Symbol -> *). proxy "gov/proposals/roots/v0" -> CanonicalGovActionId -> CanonicalEncoding toCanonicalCBOR proxy "gov/proposals/roots/v0" v (CanonicalGovActionId {TxId CanonicalGovActionIx gaidTxId :: TxId gaidGovActionIx :: CanonicalGovActionIx gaidGovActionIx :: CanonicalGovActionId -> CanonicalGovActionIx gaidTxId :: CanonicalGovActionId -> TxId ..}) = proxy "gov/proposals/roots/v0" -> (TxId, CanonicalGovActionIx) -> CanonicalEncoding forall (v :: Symbol) a (proxy :: Symbol -> *). ToCanonicalCBOR v a => proxy v -> a -> CanonicalEncoding forall (proxy :: Symbol -> *). proxy "gov/proposals/roots/v0" -> (TxId, CanonicalGovActionIx) -> CanonicalEncoding toCanonicalCBOR proxy "gov/proposals/roots/v0" v (TxId gaidTxId, CanonicalGovActionIx gaidGovActionIx) instance (Era era, NamespaceEra "gov/proposals/roots/v0" ~ era) => FromCanonicalCBOR "gov/proposals/roots/v0" CanonicalGovActionId where fromCanonicalCBOR :: forall s. CanonicalDecoder s (Versioned "gov/proposals/roots/v0" CanonicalGovActionId) fromCanonicalCBOR = do Versioned (gaidTxId, gaidGovActionIx) <- forall (v :: Symbol) a s. FromCanonicalCBOR v a => CanonicalDecoder s (Versioned v a) fromCanonicalCBOR @"gov/proposals/roots/v0" return $ Versioned CanonicalGovActionId {..} deriving via LedgerCBOR v TxId instance (Era era, NamespaceEra v ~ era) => ToCanonicalCBOR v TxId deriving via LedgerCBOR v TxId instance (Era era, NamespaceEra v ~ era) => FromCanonicalCBOR v TxId type instance NamespaceKeySize "gov/proposals/roots/v0" = 1 instance (Era era, NamespaceEra "gov/proposals/roots/v0" ~ era) => CanonicalCBOREntryEncoder "gov/proposals/roots/v0" GovProposalsRootsOut where encodeEntry :: GovProposalsRootsOut -> CanonicalEncoding encodeEntry = Proxy "gov/proposals/roots/v0" -> GovProposalsRootsOut -> CanonicalEncoding forall (v :: Symbol) a (proxy :: Symbol -> *). ToCanonicalCBOR v a => proxy v -> a -> CanonicalEncoding forall (proxy :: Symbol -> *). proxy "gov/proposals/roots/v0" -> GovProposalsRootsOut -> CanonicalEncoding toCanonicalCBOR (forall {k} (t :: k). Proxy t forall (t :: Symbol). Proxy t Proxy @"gov/proposals/roots/v0") instance (Era era, NamespaceEra "gov/proposals/roots/v0" ~ era) => CanonicalCBOREntryDecoder "gov/proposals/roots/v0" GovProposalsRootsOut where decodeEntry :: forall s. CanonicalDecoder s (Versioned "gov/proposals/roots/v0" GovProposalsRootsOut) decodeEntry = CanonicalDecoder s (Versioned "gov/proposals/roots/v0" GovProposalsRootsOut) forall s. CanonicalDecoder s (Versioned "gov/proposals/roots/v0" GovProposalsRootsOut) forall (v :: Symbol) a s. FromCanonicalCBOR v a => CanonicalDecoder s (Versioned v a) fromCanonicalCBOR