{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.CanonicalState.Conway (
mkCanonicalConstitution,
CanonicalGovActionState (..),
toGovActionState,
fromGovActionState,
mkGovProposalIn,
fromGovProposalIn,
) where
import Cardano.Ledger.BaseTypes (EpochNo (..))
import Cardano.Ledger.Binary (decodeFull')
import Cardano.Ledger.CanonicalState.BasicTypes (
CanonicalCoin (..),
DecodeOnChain (..),
OnChain (..),
decodeNamespacedField,
decodeNamespacedTag,
fromCanonicalExUnits,
mkCanonicalExUnits,
mkOnChain,
)
import Cardano.Ledger.CanonicalState.Namespace
import Cardano.Ledger.CanonicalState.Namespace.GovCommittee.V0 ()
import Cardano.Ledger.CanonicalState.Namespace.GovConstitution.V0
import Cardano.Ledger.CanonicalState.Namespace.GovPParams.V0
import Cardano.Ledger.CanonicalState.Namespace.GovProposals.V0
import Cardano.Ledger.CanonicalState.Namespace.UTxO.V0
import Cardano.Ledger.Conway (ConwayEra)
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Conway.Governance
import Cardano.Ledger.Conway.PParams
import Cardano.Ledger.Credential (Credential (..))
import Cardano.SCLS.CBOR.Canonical (
assumeCanonicalDecoder,
assumeCanonicalEncoding,
)
import Cardano.SCLS.CBOR.Canonical.Decoder (
FromCanonicalCBOR (..),
decodeMapLenCanonicalOf,
)
import Cardano.SCLS.CBOR.Canonical.Encoder (ToCanonicalCBOR (..), encodeAsMap, mkEncodablePair)
import Cardano.SCLS.NamespaceCodec
import Cardano.SCLS.Versioned (Versioned (..))
import qualified Codec.CBOR.Decoding as D
import qualified Codec.CBOR.Encoding as E
import Data.Map (Map)
import Data.Text (Text)
import Data.Word (Word8)
import Lens.Micro
type instance NamespaceEra "blocks/v0" = ConwayEra
type instance NamespaceEra "gov/committee/v0" = ConwayEra
type instance NamespaceEra "gov/constitution/v0" = ConwayEra
type instance NamespaceEra "gov/pparams/v0" = ConwayEra
type instance NamespaceEra "gov/proposals/v0" = ConwayEra
type instance NamespaceEra "utxo/v0" = ConwayEra
instance KnownNamespace "utxo/v0" where
type NamespaceKey "utxo/v0" = UtxoIn
type NamespaceEntry "utxo/v0" = UtxoOut ConwayEra
mkCanonicalConstitution :: Constitution era -> CanonicalConstitution
mkCanonicalConstitution :: forall era. Constitution era -> CanonicalConstitution
mkCanonicalConstitution Constitution {StrictMaybe ScriptHash
Anchor
constitutionAnchor :: Anchor
constitutionGuardrailsScriptHash :: StrictMaybe ScriptHash
constitutionGuardrailsScriptHash :: forall era. Constitution era -> StrictMaybe ScriptHash
constitutionAnchor :: forall era. Constitution era -> Anchor
..} = CanonicalConstitution {StrictMaybe ScriptHash
Anchor
constitutionAnchor :: Anchor
constitutionGuardrailsScriptHash :: StrictMaybe ScriptHash
constitutionGuardrailsScriptHash :: StrictMaybe ScriptHash
constitutionAnchor :: Anchor
..}
instance ToCanonicalCBOR "gov/pparams/v0" (PParams ConwayEra) where
toCanonicalCBOR :: forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> PParams ConwayEra -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v PParams ConwayEra
pp =
[SomeEncodablePair "gov/pparams/v0"] -> CanonicalEncoding
forall (v :: Symbol) (t :: * -> *).
Traversable t =>
t (SomeEncodablePair v) -> CanonicalEncoding
encodeAsMap
[ proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
0 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era. EraPParams era => Lens' (PParams era) CoinPerByte
Lens' (PParams ConwayEra) CoinPerByte
ppTxFeePerByteL ((CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CoinPerByte -> CanonicalCoin)
-> SimpleGetter CoinPerByte CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to (CompactForm Coin -> CanonicalCoin
CanonicalCoin (CompactForm Coin -> CanonicalCoin)
-> (CoinPerByte -> CompactForm Coin)
-> CoinPerByte
-> CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CoinPerByte -> CompactForm Coin
unCoinPerByte))
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
1 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
EraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppTxFeeFixedCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> Word32 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
2 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word32 (PParams ConwayEra) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams ConwayEra) Word32
forall era. EraPParams era => Lens' (PParams era) Word32
Lens' (PParams ConwayEra) Word32
ppMaxBBSizeL)
, proxy "gov/pparams/v0"
-> Int -> Word32 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
3 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word32 (PParams ConwayEra) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams ConwayEra) Word32
forall era. EraPParams era => Lens' (PParams era) Word32
Lens' (PParams ConwayEra) Word32
ppMaxTxSizeL)
, proxy "gov/pparams/v0"
-> Int -> Word16 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
4 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word16 (PParams ConwayEra) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams ConwayEra) Word16
forall era. EraPParams era => Lens' (PParams era) Word16
Lens' (PParams ConwayEra) Word16
ppMaxBHSizeL)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
5 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
EraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppKeyDepositCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
6 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
EraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppPoolDepositCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> EpochInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
7 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting EpochInterval (PParams ConwayEra) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams ConwayEra) EpochInterval
forall era. EraPParams era => Lens' (PParams era) EpochInterval
Lens' (PParams ConwayEra) EpochInterval
ppEMaxL)
, proxy "gov/pparams/v0"
-> Int -> Word16 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
8 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word16 (PParams ConwayEra) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams ConwayEra) Word16
forall era. EraPParams era => Lens' (PParams era) Word16
Lens' (PParams ConwayEra) Word16
ppNOptL)
, proxy "gov/pparams/v0"
-> Int -> NonNegativeInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
9 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting
NonNegativeInterval (PParams ConwayEra) NonNegativeInterval
-> NonNegativeInterval
forall s a. s -> Getting a s a -> a
^. Getting NonNegativeInterval (PParams ConwayEra) NonNegativeInterval
forall era.
EraPParams era =>
Lens' (PParams era) NonNegativeInterval
Lens' (PParams ConwayEra) NonNegativeInterval
ppA0L)
, proxy "gov/pparams/v0"
-> Int -> UnitInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
10 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting UnitInterval (PParams ConwayEra) UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval (PParams ConwayEra) UnitInterval
forall era. EraPParams era => Lens' (PParams era) UnitInterval
Lens' (PParams ConwayEra) UnitInterval
ppRhoL)
, proxy "gov/pparams/v0"
-> Int -> UnitInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
11 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting UnitInterval (PParams ConwayEra) UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval (PParams ConwayEra) UnitInterval
forall era. EraPParams era => Lens' (PParams era) UnitInterval
Lens' (PParams ConwayEra) UnitInterval
ppTauL)
, proxy "gov/pparams/v0"
-> Int -> ProtVer -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
14 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting ProtVer (PParams ConwayEra) ProtVer -> ProtVer
forall s a. s -> Getting a s a -> a
^. Getting ProtVer (PParams ConwayEra) ProtVer
forall era. EraPParams era => Lens' (PParams era) ProtVer
Lens' (PParams ConwayEra) ProtVer
ppProtocolVersionL)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
16 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
EraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppMinPoolCostCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
17 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
BabbageEraPParams era =>
Lens' (PParams era) CoinPerByte
Lens' (PParams ConwayEra) CoinPerByte
ppCoinsPerUTxOByteL ((CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CoinPerByte -> Const CanonicalCoin CoinPerByte)
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CoinPerByte -> CanonicalCoin)
-> SimpleGetter CoinPerByte CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to (CompactForm Coin -> CanonicalCoin
CanonicalCoin (CompactForm Coin -> CanonicalCoin)
-> (CoinPerByte -> CompactForm Coin)
-> CoinPerByte
-> CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CoinPerByte -> CompactForm Coin
unCoinPerByte))
, proxy "gov/pparams/v0"
-> Int -> CostModels -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
18 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CostModels (PParams ConwayEra) CostModels -> CostModels
forall s a. s -> Getting a s a -> a
^. Getting CostModels (PParams ConwayEra) CostModels
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams ConwayEra) CostModels
ppCostModelsL)
, proxy "gov/pparams/v0"
-> Int -> CanonicalPrices -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
19 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalPrices (PParams ConwayEra) CanonicalPrices
-> CanonicalPrices
forall s a. s -> Getting a s a -> a
^. (Prices -> Const CanonicalPrices Prices)
-> PParams ConwayEra -> Const CanonicalPrices (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Prices
Lens' (PParams ConwayEra) Prices
ppPricesL ((Prices -> Const CanonicalPrices Prices)
-> PParams ConwayEra -> Const CanonicalPrices (PParams ConwayEra))
-> ((CanonicalPrices -> Const CanonicalPrices CanonicalPrices)
-> Prices -> Const CanonicalPrices Prices)
-> Getting CanonicalPrices (PParams ConwayEra) CanonicalPrices
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Prices -> CanonicalPrices) -> SimpleGetter Prices CanonicalPrices
forall s a. (s -> a) -> SimpleGetter s a
to Prices -> CanonicalPrices
mkCanonicalPrices)
, proxy "gov/pparams/v0"
-> Int -> CanonicalExUnits -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
20 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalExUnits (PParams ConwayEra) CanonicalExUnits
-> CanonicalExUnits
forall s a. s -> Getting a s a -> a
^. (ExUnits -> Const CanonicalExUnits ExUnits)
-> PParams ConwayEra -> Const CanonicalExUnits (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams ConwayEra) ExUnits
ppMaxTxExUnitsL ((ExUnits -> Const CanonicalExUnits ExUnits)
-> PParams ConwayEra -> Const CanonicalExUnits (PParams ConwayEra))
-> ((CanonicalExUnits -> Const CanonicalExUnits CanonicalExUnits)
-> ExUnits -> Const CanonicalExUnits ExUnits)
-> Getting CanonicalExUnits (PParams ConwayEra) CanonicalExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ExUnits -> CanonicalExUnits)
-> SimpleGetter ExUnits CanonicalExUnits
forall s a. (s -> a) -> SimpleGetter s a
to ExUnits -> CanonicalExUnits
mkCanonicalExUnits)
, proxy "gov/pparams/v0"
-> Int -> CanonicalExUnits -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
21 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalExUnits (PParams ConwayEra) CanonicalExUnits
-> CanonicalExUnits
forall s a. s -> Getting a s a -> a
^. (ExUnits -> Const CanonicalExUnits ExUnits)
-> PParams ConwayEra -> Const CanonicalExUnits (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams ConwayEra) ExUnits
ppMaxBlockExUnitsL ((ExUnits -> Const CanonicalExUnits ExUnits)
-> PParams ConwayEra -> Const CanonicalExUnits (PParams ConwayEra))
-> ((CanonicalExUnits -> Const CanonicalExUnits CanonicalExUnits)
-> ExUnits -> Const CanonicalExUnits ExUnits)
-> Getting CanonicalExUnits (PParams ConwayEra) CanonicalExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ExUnits -> CanonicalExUnits)
-> SimpleGetter ExUnits CanonicalExUnits
forall s a. (s -> a) -> SimpleGetter s a
to ExUnits -> CanonicalExUnits
mkCanonicalExUnits)
, proxy "gov/pparams/v0"
-> Int -> Word32 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
22 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word32 (PParams ConwayEra) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams ConwayEra) Word32
forall era. AlonzoEraPParams era => Lens' (PParams era) Word32
Lens' (PParams ConwayEra) Word32
ppMaxValSizeL)
, proxy "gov/pparams/v0"
-> Int -> Word16 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
23 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word16 (PParams ConwayEra) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams ConwayEra) Word16
forall era. AlonzoEraPParams era => Lens' (PParams era) Word16
Lens' (PParams ConwayEra) Word16
ppCollateralPercentageL)
, proxy "gov/pparams/v0"
-> Int -> Word16 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
24 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word16 (PParams ConwayEra) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams ConwayEra) Word16
forall era. AlonzoEraPParams era => Lens' (PParams era) Word16
Lens' (PParams ConwayEra) Word16
ppMaxCollateralInputsL)
, proxy "gov/pparams/v0"
-> Int
-> PoolVotingThresholds
-> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
25 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting
PoolVotingThresholds (PParams ConwayEra) PoolVotingThresholds
-> PoolVotingThresholds
forall s a. s -> Getting a s a -> a
^. Getting
PoolVotingThresholds (PParams ConwayEra) PoolVotingThresholds
forall era.
ConwayEraPParams era =>
Lens' (PParams era) PoolVotingThresholds
Lens' (PParams ConwayEra) PoolVotingThresholds
ppPoolVotingThresholdsL)
, proxy "gov/pparams/v0"
-> Int
-> DRepVotingThresholds
-> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
26 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting
DRepVotingThresholds (PParams ConwayEra) DRepVotingThresholds
-> DRepVotingThresholds
forall s a. s -> Getting a s a -> a
^. Getting
DRepVotingThresholds (PParams ConwayEra) DRepVotingThresholds
forall era.
ConwayEraPParams era =>
Lens' (PParams era) DRepVotingThresholds
Lens' (PParams ConwayEra) DRepVotingThresholds
ppDRepVotingThresholdsL)
, proxy "gov/pparams/v0"
-> Int -> Word16 -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
27 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting Word16 (PParams ConwayEra) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams ConwayEra) Word16
forall era. ConwayEraPParams era => Lens' (PParams era) Word16
Lens' (PParams ConwayEra) Word16
ppCommitteeMinSizeL)
, proxy "gov/pparams/v0"
-> Int -> EpochInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
28 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting EpochInterval (PParams ConwayEra) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams ConwayEra) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams ConwayEra) EpochInterval
ppCommitteeMaxTermLengthL)
, proxy "gov/pparams/v0"
-> Int -> EpochInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
29 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting EpochInterval (PParams ConwayEra) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams ConwayEra) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams ConwayEra) EpochInterval
ppGovActionLifetimeL)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
30 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppGovActionDepositCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> CanonicalCoin -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
31 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
-> CanonicalCoin
forall s a. s -> Getting a s a -> a
^. (CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) (CompactForm Coin)
Lens' (PParams ConwayEra) (CompactForm Coin)
ppDRepDepositCompactL ((CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> PParams ConwayEra -> Const CanonicalCoin (PParams ConwayEra))
-> ((CanonicalCoin -> Const CanonicalCoin CanonicalCoin)
-> CompactForm Coin -> Const CanonicalCoin (CompactForm Coin))
-> Getting CanonicalCoin (PParams ConwayEra) CanonicalCoin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CompactForm Coin -> CanonicalCoin)
-> SimpleGetter (CompactForm Coin) CanonicalCoin
forall s a. (s -> a) -> SimpleGetter s a
to CompactForm Coin -> CanonicalCoin
CanonicalCoin)
, proxy "gov/pparams/v0"
-> Int -> EpochInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
32 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting EpochInterval (PParams ConwayEra) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams ConwayEra) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams ConwayEra) EpochInterval
ppDRepActivityL)
, proxy "gov/pparams/v0"
-> Int -> NonNegativeInterval -> SomeEncodablePair "gov/pparams/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/pparams/v0"
v (Int
33 :: Int) (PParams ConwayEra
pp PParams ConwayEra
-> Getting
NonNegativeInterval (PParams ConwayEra) NonNegativeInterval
-> NonNegativeInterval
forall s a. s -> Getting a s a -> a
^. Getting NonNegativeInterval (PParams ConwayEra) NonNegativeInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) NonNegativeInterval
Lens' (PParams ConwayEra) NonNegativeInterval
ppMinFeeRefScriptCostPerByteL)
]
instance FromCanonicalCBOR "gov/pparams/v0" (PParams ConwayEra) where
fromCanonicalCBOR :: forall s.
CanonicalDecoder s (Versioned "gov/pparams/v0" (PParams ConwayEra))
fromCanonicalCBOR = do
Int -> CanonicalDecoder s ()
forall s. Int -> CanonicalDecoder s ()
decodeMapLenCanonicalOf Int
31
txFeePerByte <- forall (v :: Symbol) a s.
FromCanonicalCBOR v a =>
Word -> CanonicalDecoder s a
decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin Word
0
txFeeFixedCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 1
maxBBSize <- decodeNamespacedTag @"gov/pparams/v0" 2
maxTxSize <- decodeNamespacedTag @"gov/pparams/v0" 3
maxBHSize <- decodeNamespacedTag @"gov/pparams/v0" 4
keyDepositCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 5
poolDepositCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 6
eMax <- decodeNamespacedTag @"gov/pparams/v0" 7
nOpt <- decodeNamespacedTag @"gov/pparams/v0" 8
a0 <- decodeNamespacedTag @"gov/pparams/v0" 9
rho <- decodeNamespacedTag @"gov/pparams/v0" 10
tau <- decodeNamespacedTag @"gov/pparams/v0" 11
protVer <- decodeNamespacedTag @"gov/pparams/v0" 14
minPoolCostCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 16
coinsPerUTxOByte <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 17
costModels <- decodeNamespacedTag @"gov/pparams/v0" 18
prices <- decodeNamespacedTag @"gov/pparams/v0" 19
maxTxExUnits <- decodeNamespacedTag @"gov/pparams/v0" 20
maxBlockExUnits <- decodeNamespacedTag @"gov/pparams/v0" 21
maxValSize <- decodeNamespacedTag @"gov/pparams/v0" 22
collateralPercentage <- decodeNamespacedTag @"gov/pparams/v0" 23
maxCollateralInputs <- decodeNamespacedTag @"gov/pparams/v0" 24
poolVotingThresholds <- decodeNamespacedTag @"gov/pparams/v0" 25
dRepVotingThresholds <- decodeNamespacedTag @"gov/pparams/v0" 26
committeeMinSize <- decodeNamespacedTag @"gov/pparams/v0" 27
committeeMaxTermLength <- decodeNamespacedTag @"gov/pparams/v0" 28
govActionLifetime <- decodeNamespacedTag @"gov/pparams/v0" 29
govActionDepositCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 30
dRepDepositCompact <- decodeNamespacedTag @"gov/pparams/v0" @CanonicalCoin 31
dRepActivity <- decodeNamespacedTag @"gov/pparams/v0" 32
minFeeRefScriptCostPerByte <- decodeNamespacedTag @"gov/pparams/v0" 33
return $
Versioned $
emptyPParams @ConwayEra
& ppTxFeePerByteL .~ CoinPerByte (unCoin txFeePerByte)
& ppTxFeeFixedCompactL .~ unCoin txFeeFixedCompact
& ppMaxBBSizeL .~ maxBBSize
& ppMaxTxSizeL .~ maxTxSize
& ppMaxBHSizeL .~ maxBHSize
& ppKeyDepositCompactL .~ unCoin keyDepositCompact
& ppPoolDepositCompactL .~ unCoin poolDepositCompact
& ppEMaxL .~ eMax
& ppNOptL .~ nOpt
& ppA0L .~ a0
& ppRhoL .~ rho
& ppTauL .~ tau
& ppMinPoolCostCompactL .~ unCoin minPoolCostCompact
& ppCoinsPerUTxOByteL .~ CoinPerByte (unCoin coinsPerUTxOByte)
& ppCostModelsL .~ costModels
& ppPricesL .~ fromCanonicalPrices prices
& ppMaxTxExUnitsL .~ fromCanonicalExUnits maxTxExUnits
& ppMaxBlockExUnitsL .~ fromCanonicalExUnits maxBlockExUnits
& ppMaxValSizeL .~ maxValSize
& ppCollateralPercentageL .~ collateralPercentage
& ppMaxCollateralInputsL .~ maxCollateralInputs
& ppPoolVotingThresholdsL .~ poolVotingThresholds
& ppDRepVotingThresholdsL .~ dRepVotingThresholds
& ppCommitteeMinSizeL .~ committeeMinSize
& ppCommitteeMaxTermLengthL .~ committeeMaxTermLength
& ppGovActionLifetimeL .~ govActionLifetime
& ppGovActionDepositCompactL .~ unCoin govActionDepositCompact
& ppDRepDepositCompactL .~ unCoin dRepDepositCompact
& ppDRepActivityL .~ dRepActivity
& ppMinFeeRefScriptCostPerByteL .~ minFeeRefScriptCostPerByte
& ppProtocolVersionL .~ protVer
where
instance ToCanonicalCBOR "gov/pparams/v0" DRepVotingThresholds where
toCanonicalCBOR :: forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> DRepVotingThresholds -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v DRepVotingThresholds
dvt =
Encoding -> CanonicalEncoding
assumeCanonicalEncoding (Word -> Encoding
E.encodeListLen Word
10)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtMotionNoConfidenceL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNormalL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNoConfidenceL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtUpdateToConstitutionL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtHardForkInitiationL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtPPNetworkGroupL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtPPEconomicGroupL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtPPTechnicalGroupL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtPPGovGroupL)
CanonicalEncoding -> CanonicalEncoding -> CanonicalEncoding
forall a. Semigroup a => a -> a -> a
<> proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> UnitInterval -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v (DRepVotingThresholds
dvt DRepVotingThresholds
-> Getting UnitInterval DRepVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval DRepVotingThresholds UnitInterval
Lens' DRepVotingThresholds UnitInterval
dvtTreasuryWithdrawalL)
instance FromCanonicalCBOR "gov/pparams/v0" DRepVotingThresholds where
fromCanonicalCBOR :: forall s.
CanonicalDecoder
s (Versioned "gov/pparams/v0" DRepVotingThresholds)
fromCanonicalCBOR = do
Decoder s () -> CanonicalDecoder s ()
forall s a. Decoder s a -> CanonicalDecoder s a
assumeCanonicalDecoder (Decoder s () -> CanonicalDecoder s ())
-> Decoder s () -> CanonicalDecoder s ()
forall a b. (a -> b) -> a -> b
$ Int -> Decoder s ()
forall s. Int -> Decoder s ()
D.decodeListLenCanonicalOf Int
10
Versioned dvtMotionNoConfidence <- forall (v :: Symbol) a s.
FromCanonicalCBOR v a =>
CanonicalDecoder s (Versioned v a)
fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtCommitteeNormal <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtCommitteeNoConfidence <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtUpdateToConstitution <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtHardForkInitiation <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtPPNetworkGroup <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtPPEconomicGroup <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtPPTechnicalGroup <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtPPGovGroup <- fromCanonicalCBOR @"gov/pparams/v0"
Versioned dvtTreasuryWithdrawal <- fromCanonicalCBOR @"gov/pparams/v0"
return $ Versioned DRepVotingThresholds {..}
instance ToCanonicalCBOR "gov/pparams/v0" PoolVotingThresholds where
toCanonicalCBOR :: forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0" -> PoolVotingThresholds -> CanonicalEncoding
toCanonicalCBOR proxy "gov/pparams/v0"
v PoolVotingThresholds
pvt =
proxy "gov/pparams/v0"
-> (UnitInterval, UnitInterval, UnitInterval, UnitInterval,
UnitInterval)
-> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy "gov/pparams/v0"
-> (UnitInterval, UnitInterval, UnitInterval, UnitInterval,
UnitInterval)
-> CanonicalEncoding
toCanonicalCBOR
proxy "gov/pparams/v0"
v
( PoolVotingThresholds
pvt PoolVotingThresholds
-> Getting UnitInterval PoolVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval PoolVotingThresholds UnitInterval
Lens' PoolVotingThresholds UnitInterval
pvtMotionNoConfidenceL
, PoolVotingThresholds
pvt PoolVotingThresholds
-> Getting UnitInterval PoolVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval PoolVotingThresholds UnitInterval
Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNormalL
, PoolVotingThresholds
pvt PoolVotingThresholds
-> Getting UnitInterval PoolVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval PoolVotingThresholds UnitInterval
Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNoConfidenceL
, PoolVotingThresholds
pvt PoolVotingThresholds
-> Getting UnitInterval PoolVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval PoolVotingThresholds UnitInterval
Lens' PoolVotingThresholds UnitInterval
pvtHardForkInitiationL
, PoolVotingThresholds
pvt PoolVotingThresholds
-> Getting UnitInterval PoolVotingThresholds UnitInterval
-> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval PoolVotingThresholds UnitInterval
Lens' PoolVotingThresholds UnitInterval
pvtPPSecurityGroupL
)
instance FromCanonicalCBOR "gov/pparams/v0" PoolVotingThresholds where
fromCanonicalCBOR :: forall s.
CanonicalDecoder
s (Versioned "gov/pparams/v0" PoolVotingThresholds)
fromCanonicalCBOR = do
Versioned
( pvtMotionNoConfidence
, pvtCommitteeNormal
, pvtCommitteeNoConfidence
, pvtHardForkInitiation
, pvtPPSecurityGroup
) <-
forall (v :: Symbol) a s.
FromCanonicalCBOR v a =>
CanonicalDecoder s (Versioned v a)
fromCanonicalCBOR @"gov/pparams/v0"
return $ Versioned PoolVotingThresholds {..}
instance KnownNamespace "gov/proposals/v0" where
type NamespaceKey "gov/proposals/v0" = GovProposalIn
type NamespaceEntry "gov/proposals/v0" = GovProposalOut CanonicalGovActionState
fromGovActionState ::
GovActionState ConwayEra -> (GovProposalIn, GovProposalOut CanonicalGovActionState)
fromGovActionState :: GovActionState ConwayEra
-> (GovProposalIn, GovProposalOut CanonicalGovActionState)
fromGovActionState GovActionState {Map (KeyHash StakePool) Vote
Map (Credential DRepRole) Vote
Map (Credential HotCommitteeRole) Vote
ProposalProcedure ConwayEra
GovActionId
EpochNo
gasId :: GovActionId
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasProposalProcedure :: ProposalProcedure ConwayEra
gasProposedIn :: EpochNo
gasExpiresAfter :: EpochNo
gasExpiresAfter :: forall era. GovActionState era -> EpochNo
gasProposedIn :: forall era. GovActionState era -> EpochNo
gasProposalProcedure :: forall era. GovActionState era -> ProposalProcedure era
gasStakePoolVotes :: forall era. GovActionState era -> Map (KeyHash StakePool) Vote
gasDRepVotes :: forall era. GovActionState era -> Map (Credential DRepRole) Vote
gasCommitteeVotes :: forall era.
GovActionState era -> Map (Credential HotCommitteeRole) Vote
gasId :: forall era. GovActionState era -> GovActionId
..} =
( GovActionId -> GovProposalIn
mkGovProposalIn GovActionId
gasId
, CanonicalGovActionState -> GovProposalOut CanonicalGovActionState
forall v. v -> GovProposalOut v
GovProposalOut (CanonicalGovActionState -> GovProposalOut CanonicalGovActionState)
-> CanonicalGovActionState
-> GovProposalOut CanonicalGovActionState
forall a b. (a -> b) -> a -> b
$
CanonicalGovActionState
{ gasProposalProcedure :: OnChain (ProposalProcedure ConwayEra)
gasProposalProcedure = forall era a. (Era era, EncCBOR a) => a -> OnChain a
mkOnChain @ConwayEra ProposalProcedure ConwayEra
gasProposalProcedure
, Map (KeyHash StakePool) Vote
Map (Credential DRepRole) Vote
Map (Credential HotCommitteeRole) Vote
EpochNo
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasProposedIn :: EpochNo
gasExpiresAfter :: EpochNo
gasExpiresAfter :: EpochNo
gasProposedIn :: EpochNo
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
..
}
)
toGovActionState ::
(GovProposalIn, GovProposalOut CanonicalGovActionState) -> GovActionState ConwayEra
toGovActionState :: (GovProposalIn, GovProposalOut CanonicalGovActionState)
-> GovActionState ConwayEra
toGovActionState (GovProposalIn
govIn, GovProposalOut CanonicalGovActionState {Map (KeyHash StakePool) Vote
Map (Credential DRepRole) Vote
Map (Credential HotCommitteeRole) Vote
OnChain (ProposalProcedure ConwayEra)
EpochNo
gasProposalProcedure :: CanonicalGovActionState -> OnChain (ProposalProcedure ConwayEra)
gasExpiresAfter :: CanonicalGovActionState -> EpochNo
gasProposedIn :: CanonicalGovActionState -> EpochNo
gasStakePoolVotes :: CanonicalGovActionState -> Map (KeyHash StakePool) Vote
gasDRepVotes :: CanonicalGovActionState -> Map (Credential DRepRole) Vote
gasCommitteeVotes :: CanonicalGovActionState -> Map (Credential HotCommitteeRole) Vote
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasProposalProcedure :: OnChain (ProposalProcedure ConwayEra)
gasProposedIn :: EpochNo
gasExpiresAfter :: EpochNo
..}) =
GovActionState
{ gasProposalProcedure :: ProposalProcedure ConwayEra
gasProposalProcedure = OnChain (ProposalProcedure ConwayEra)
-> ProposalProcedure ConwayEra
forall a. OnChain a -> a
getValue OnChain (ProposalProcedure ConwayEra)
gasProposalProcedure
, gasId :: GovActionId
gasId = GovProposalIn -> GovActionId
fromGovProposalIn GovProposalIn
govIn
, Map (KeyHash StakePool) Vote
Map (Credential DRepRole) Vote
Map (Credential HotCommitteeRole) Vote
EpochNo
gasExpiresAfter :: EpochNo
gasProposedIn :: EpochNo
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasProposedIn :: EpochNo
gasExpiresAfter :: EpochNo
..
}
mkGovProposalIn :: GovActionId -> GovProposalIn
mkGovProposalIn :: GovActionId -> GovProposalIn
mkGovProposalIn GovActionId {gaidGovActionIx :: GovActionId -> GovActionIx
gaidGovActionIx = GovActionIx Word16
idx, TxId
gaidTxId :: TxId
gaidTxId :: GovActionId -> TxId
gaidTxId} =
CanonicalGovActionId -> GovProposalIn
GovProposalIn (CanonicalGovActionId -> GovProposalIn)
-> CanonicalGovActionId -> GovProposalIn
forall a b. (a -> b) -> a -> b
$
CanonicalGovActionId
{ gaidTxId :: TxId
gaidTxId = TxId
gaidTxId
, gaidGovActionIx :: CanonicalGovActionIx
gaidGovActionIx = Word16 -> CanonicalGovActionIx
CanonicalGovActionIx Word16
idx
}
fromGovProposalIn :: GovProposalIn -> GovActionId
fromGovProposalIn :: GovProposalIn -> GovActionId
fromGovProposalIn (GovProposalIn CanonicalGovActionId {gaidGovActionIx :: CanonicalGovActionId -> CanonicalGovActionIx
gaidGovActionIx = CanonicalGovActionIx Word16
aix, TxId
gaidTxId :: CanonicalGovActionId -> TxId
gaidTxId :: TxId
gaidTxId}) =
GovActionId
{ gaidTxId :: TxId
gaidTxId = TxId
gaidTxId
, gaidGovActionIx :: GovActionIx
gaidGovActionIx = Word16 -> GovActionIx
GovActionIx Word16
aix
}
data CanonicalGovActionState = CanonicalGovActionState
{ CanonicalGovActionState -> Map (Credential HotCommitteeRole) Vote
gasCommitteeVotes :: !(Map (Credential HotCommitteeRole) Vote)
, CanonicalGovActionState -> Map (Credential DRepRole) Vote
gasDRepVotes :: !(Map (Credential DRepRole) Vote)
, CanonicalGovActionState -> Map (KeyHash StakePool) Vote
gasStakePoolVotes :: !(Map (KeyHash StakePool) Vote)
, CanonicalGovActionState -> OnChain (ProposalProcedure ConwayEra)
gasProposalProcedure :: !(OnChain (ProposalProcedure ConwayEra))
, CanonicalGovActionState -> EpochNo
gasProposedIn :: !EpochNo
, CanonicalGovActionState -> EpochNo
gasExpiresAfter :: !EpochNo
}
deriving (CanonicalGovActionState -> CanonicalGovActionState -> Bool
(CanonicalGovActionState -> CanonicalGovActionState -> Bool)
-> (CanonicalGovActionState -> CanonicalGovActionState -> Bool)
-> Eq CanonicalGovActionState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CanonicalGovActionState -> CanonicalGovActionState -> Bool
== :: CanonicalGovActionState -> CanonicalGovActionState -> Bool
$c/= :: CanonicalGovActionState -> CanonicalGovActionState -> Bool
/= :: CanonicalGovActionState -> CanonicalGovActionState -> Bool
Eq, Int -> CanonicalGovActionState -> ShowS
[CanonicalGovActionState] -> ShowS
CanonicalGovActionState -> String
(Int -> CanonicalGovActionState -> ShowS)
-> (CanonicalGovActionState -> String)
-> ([CanonicalGovActionState] -> ShowS)
-> Show CanonicalGovActionState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CanonicalGovActionState -> ShowS
showsPrec :: Int -> CanonicalGovActionState -> ShowS
$cshow :: CanonicalGovActionState -> String
show :: CanonicalGovActionState -> String
$cshowList :: [CanonicalGovActionState] -> ShowS
showList :: [CanonicalGovActionState] -> ShowS
Show)
instance (Era era, EraPParams era) => DecodeOnChain "gov/proposals/v0" (ProposalProcedure era) where
decodeOnChain :: forall s. ByteString -> CanonicalDecoder s (ProposalProcedure era)
decodeOnChain = (DecoderError -> CanonicalDecoder s (ProposalProcedure era))
-> (ProposalProcedure era
-> CanonicalDecoder s (ProposalProcedure era))
-> Either DecoderError (ProposalProcedure era)
-> CanonicalDecoder s (ProposalProcedure era)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (String -> CanonicalDecoder s (ProposalProcedure era)
forall a. String -> CanonicalDecoder s a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> CanonicalDecoder s (ProposalProcedure era))
-> (DecoderError -> String)
-> DecoderError
-> CanonicalDecoder s (ProposalProcedure era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DecoderError -> String
forall a. Show a => a -> String
show) ProposalProcedure era -> CanonicalDecoder s (ProposalProcedure era)
forall a. a -> CanonicalDecoder s a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either DecoderError (ProposalProcedure era)
-> CanonicalDecoder s (ProposalProcedure era))
-> (ByteString -> Either DecoderError (ProposalProcedure era))
-> ByteString
-> CanonicalDecoder s (ProposalProcedure era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Version
-> ByteString -> Either DecoderError (ProposalProcedure era)
forall a.
DecCBOR a =>
Version -> ByteString -> Either DecoderError a
decodeFull' (forall era. Era era => Version
eraProtVerLow @era)
instance ToCanonicalCBOR "gov/proposals/v0" (CanonicalGovActionState) where
toCanonicalCBOR :: forall (proxy :: Symbol -> *).
proxy "gov/proposals/v0"
-> CanonicalGovActionState -> CanonicalEncoding
toCanonicalCBOR proxy "gov/proposals/v0"
v CanonicalGovActionState {Map (KeyHash StakePool) Vote
Map (Credential DRepRole) Vote
Map (Credential HotCommitteeRole) Vote
OnChain (ProposalProcedure ConwayEra)
EpochNo
gasProposalProcedure :: CanonicalGovActionState -> OnChain (ProposalProcedure ConwayEra)
gasExpiresAfter :: CanonicalGovActionState -> EpochNo
gasProposedIn :: CanonicalGovActionState -> EpochNo
gasStakePoolVotes :: CanonicalGovActionState -> Map (KeyHash StakePool) Vote
gasDRepVotes :: CanonicalGovActionState -> Map (Credential DRepRole) Vote
gasCommitteeVotes :: CanonicalGovActionState -> Map (Credential HotCommitteeRole) Vote
gasCommitteeVotes :: Map (Credential HotCommitteeRole) Vote
gasDRepVotes :: Map (Credential DRepRole) Vote
gasStakePoolVotes :: Map (KeyHash StakePool) Vote
gasProposalProcedure :: OnChain (ProposalProcedure ConwayEra)
gasProposedIn :: EpochNo
gasExpiresAfter :: EpochNo
..} =
[SomeEncodablePair "gov/proposals/v0"] -> CanonicalEncoding
forall (v :: Symbol) (t :: * -> *).
Traversable t =>
t (SomeEncodablePair v) -> CanonicalEncoding
encodeAsMap
[ proxy "gov/proposals/v0"
-> Text
-> Map (Credential DRepRole) Vote
-> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"drep_votes" :: Text) Map (Credential DRepRole) Vote
gasDRepVotes
, proxy "gov/proposals/v0"
-> Text -> EpochNo -> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"proposed_in" :: Text) EpochNo
gasProposedIn
, proxy "gov/proposals/v0"
-> Text -> EpochNo -> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"expires_after" :: Text) EpochNo
gasExpiresAfter
, proxy "gov/proposals/v0"
-> Text
-> Map (Credential HotCommitteeRole) Vote
-> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"committee_votes" :: Text) Map (Credential HotCommitteeRole) Vote
gasCommitteeVotes
, proxy "gov/proposals/v0"
-> Text
-> Map (KeyHash StakePool) Vote
-> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"stake_pool_votes" :: Text) Map (KeyHash StakePool) Vote
gasStakePoolVotes
, proxy "gov/proposals/v0"
-> Text
-> OnChain (ProposalProcedure ConwayEra)
-> SomeEncodablePair "gov/proposals/v0"
forall (v :: Symbol) k val (proxy :: Symbol -> *).
(ToCanonicalCBOR v k, ToCanonicalCBOR v val) =>
proxy v -> k -> val -> SomeEncodablePair v
mkEncodablePair proxy "gov/proposals/v0"
v (Text
"proposal_procedure" :: Text) OnChain (ProposalProcedure ConwayEra)
gasProposalProcedure
]
instance FromCanonicalCBOR "gov/proposals/v0" (CanonicalGovActionState) where
fromCanonicalCBOR :: forall s.
CanonicalDecoder
s (Versioned "gov/proposals/v0" CanonicalGovActionState)
fromCanonicalCBOR = do
Int -> CanonicalDecoder s ()
forall s. Int -> CanonicalDecoder s ()
decodeMapLenCanonicalOf Int
6
Versioned gasDRepVotes <- forall (v :: Symbol) s a.
FromCanonicalCBOR v a =>
Text -> CanonicalDecoder s (Versioned v a)
decodeNamespacedField @"gov/proposals/v0" Text
"drep_votes"
Versioned gasProposedIn <- decodeNamespacedField @"gov/proposals/v0" "proposed_in"
Versioned gasExpiresAfter <- decodeNamespacedField @"gov/proposals/v0" "expires_after"
Versioned gasCommitteeVotes <- decodeNamespacedField @"gov/proposals/v0" "committee_votes"
Versioned gasStakePoolVotes <- decodeNamespacedField @"gov/proposals/v0" "stake_pool_votes"
Versioned gasProposalProcedure <- decodeNamespacedField @"gov/proposals/v0" "proposal_procedure"
pure $ Versioned CanonicalGovActionState {..}
instance ToCanonicalCBOR v Vote where
toCanonicalCBOR :: forall (proxy :: Symbol -> *). proxy v -> Vote -> CanonicalEncoding
toCanonicalCBOR proxy v
v Vote
VoteNo = proxy v -> Word8 -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy v -> Word8 -> CanonicalEncoding
toCanonicalCBOR proxy v
v (Word8
0 :: Word8)
toCanonicalCBOR proxy v
v Vote
VoteYes = proxy v -> Word8 -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy v -> Word8 -> CanonicalEncoding
toCanonicalCBOR proxy v
v (Word8
1 :: Word8)
toCanonicalCBOR proxy v
v Vote
Abstain = proxy v -> Word8 -> CanonicalEncoding
forall (v :: Symbol) a (proxy :: Symbol -> *).
ToCanonicalCBOR v a =>
proxy v -> a -> CanonicalEncoding
forall (proxy :: Symbol -> *).
proxy v -> Word8 -> CanonicalEncoding
toCanonicalCBOR proxy v
v (Word8
2 :: Word8)
instance FromCanonicalCBOR v Vote where
fromCanonicalCBOR :: forall s. CanonicalDecoder s (Versioned v Vote)
fromCanonicalCBOR = do
Versioned (w :: Word8) <- CanonicalDecoder s (Versioned (ZonkAny 0) Word8)
forall s. CanonicalDecoder s (Versioned (ZonkAny 0) Word8)
forall (v :: Symbol) a s.
FromCanonicalCBOR v a =>
CanonicalDecoder s (Versioned v a)
fromCanonicalCBOR
case w of
Word8
0 -> Versioned v Vote -> CanonicalDecoder s (Versioned v Vote)
forall a. a -> CanonicalDecoder s a
forall (m :: * -> *) a. Monad m => a -> m a
return (Vote -> Versioned v Vote
forall (ns :: Symbol) a. a -> Versioned ns a
Versioned Vote
VoteNo)
Word8
1 -> Versioned v Vote -> CanonicalDecoder s (Versioned v Vote)
forall a. a -> CanonicalDecoder s a
forall (m :: * -> *) a. Monad m => a -> m a
return (Vote -> Versioned v Vote
forall (ns :: Symbol) a. a -> Versioned ns a
Versioned Vote
VoteYes)
Word8
2 -> Versioned v Vote -> CanonicalDecoder s (Versioned v Vote)
forall a. a -> CanonicalDecoder s a
forall (m :: * -> *) a. Monad m => a -> m a
return (Vote -> Versioned v Vote
forall (ns :: Symbol) a. a -> Versioned ns a
Versioned Vote
Abstain)
Word8
_ -> String -> CanonicalDecoder s (Versioned v Vote)
forall a. String -> CanonicalDecoder s a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Invalid CanonicalVote"