{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} {-# HLINT ignore "Use camelCase" #-} module Cardano.Ledger.CanonicalState.Namespace.GovProposals.V0.CDDL where import Cardano.Ledger.CanonicalState.Namespace.CDDL.Common import Cardano.Ledger.CanonicalState.Namespace.GovConstitution.V0.CDDL (constitution) import Cardano.Ledger.CanonicalState.Namespace.GovPParams.V0.CDDL import Codec.CBOR.Cuddle.Comments ((//-)) import Codec.CBOR.Cuddle.Huddle import Data.Function (($)) import Data.Word (Word64) import Text.Heredoc (str) import Prelude (Integer) record_entry :: Rule record_entry :: Rule record_entry = Comment -> Rule -> Rule forall a. HasComment a => Comment -> a -> a comment Comment [str| Size of the key | | ``` | meta: | endian: be | | seq: | - id: key | type: gov_proposals | | gov_proposals: | seq: | - id: tx_addr | doc: transaction | type: bytes | size: 28 | - id: tx_idx | doc: index inside transaction | type: u4 | - id: gov_action_idx | doc: governance action index | type: u2 | ``` | |] (Rule -> Rule) -> Rule -> Rule forall a b. (a -> b) -> a -> b $ Name "record_entry" Name -> ArrayChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= ArrayChoice -> ArrayChoice arr [Rule -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a Rule word64, Rule -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a Rule proposal] committee_cold_credential :: Rule committee_cold_credential :: Rule committee_cold_credential = Name "committee_cold_credential" Name -> Rule -> Rule forall a. IsType0 a => Name -> a -> Rule =:= Rule credential proposal :: Rule proposal :: Rule proposal = Name "proposal" Name -> MapChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= MapChoice -> MapChoice mp [ Key "drep_votes" Key -> MapChoice -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 0 Word64 -> MapEntry -> MapEntry forall a. CanQuantify a => Word64 -> a -> a <+ Rule -> Key forall r. IsType0 r => r -> Key asKey Rule credential Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule vote] , Key "proposed_in" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_no , Key "expires_after" Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_no , Key "committee_votes" Key -> MapChoice -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 0 Word64 -> MapEntry -> MapEntry forall a. CanQuantify a => Word64 -> a -> a <+ Rule -> Key forall r. IsType0 r => r -> Key asKey Rule committee_cold_credential Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule vote] , Key "stake_pool_votes" Key -> MapChoice -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 0 Word64 -> MapEntry -> MapEntry forall a. CanQuantify a => Word64 -> a -> a <+ Rule -> Key forall r. IsType0 r => r -> Key asKey Rule pool_keyhash Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule vote] , Key "proposal_procedure" Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value ByteString VBytes Value ByteString -> Rule -> Constrained forall b c. (IsCborable b, IsConstrainable c b) => c -> Rule -> Constrained `cbor` Rule proposal_procedure ] vote :: Rule vote :: Rule vote = Name "vote" Name -> Ranged -> Rule forall a. IsType0 a => Name -> a -> Rule =:= (Integer 0 :: Integer) Integer -> Integer -> Ranged forall a b. (IsRangeBound a, IsRangeBound b) => a -> b -> Ranged ... (Integer 2 :: Integer) proposal_procedure :: Rule proposal_procedure :: Rule proposal_procedure = Name "proposal_procedure" Name -> ArrayChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= ArrayChoice -> ArrayChoice arr [ Key "deposit" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin , Key "return_address" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule reward_account , Key "gov_action" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule gov_action , Key "anchor" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule anchor ] gov_action :: Rule gov_action :: Rule gov_action = Name "gov_action" Name -> Choice ArrayChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= ( ArrayChoice -> ArrayChoice arr [ Item ArrayChoice ArrayEntry 0 , Key "purpose" Key -> Choice Type2 -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> (Rule gov_action_id Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil) , Key "update" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule gov_params_update , Key "hash" Key -> Choice Type2 -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> (Rule script_hash Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil) ] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "Params update" ) ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / (ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 1, Choice Type2 -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a (Rule gov_action_id Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil), Rule -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a Rule protocol_version] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "Hard fork") Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ( ArrayChoice -> ArrayChoice arr [ Item ArrayChoice ArrayEntry 2 , Key "withdrawals" Key -> MapChoice -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 0 Word64 -> MapEntry -> MapEntry forall a. CanQuantify a => Word64 -> a -> a <+ Rule -> Key forall r. IsType0 r => r -> Key asKey Rule reward_account Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin] , Choice Type2 -> ArrayEntry forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a (Rule script_hash Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil) ] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "Treasury withdrawal" ) Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / (ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 3, Key "purpose" Key -> Choice Type2 -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> (Rule gov_action_id Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil)] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "No confidence") Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ( ArrayChoice -> ArrayChoice arr [ Item ArrayChoice ArrayEntry 4 , Key "purpose" Key -> Choice Type2 -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> (Rule gov_action_id Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil) , Key "removed" Key -> GRuleCall -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule -> GRuleCall forall t0. IsType0 t0 => t0 -> GRuleCall set (Rule credential) , Key "added" Key -> MapChoice -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 0 Word64 -> MapEntry -> MapEntry forall a. CanQuantify a => Word64 -> a -> a <+ Rule -> Key forall r. IsType0 r => r -> Key asKey Rule credential Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_no] , Key "threshold" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule unit_interval ] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "Committee membership update" ) Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ( ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 5, Key "purpose" Key -> Choice Type2 -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> (Rule gov_action_id Rule -> Value Void -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / Value Void VNil), Key "constitution" Key -> Rule -> ArrayEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule constitution] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "New constitution" ) Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / (ArrayChoice -> ArrayChoice arr [Item ArrayChoice ArrayEntry 6] ArrayChoice -> Comment -> ArrayChoice forall a. HasComment a => a -> Comment -> a //- Comment "Info action") gov_params_update :: Rule gov_params_update :: Rule gov_params_update = Comment -> Rule -> Rule forall a. HasComment a => Comment -> a -> a comment Comment [str| Governance protocol parameters |] (Rule -> Rule) -> Rule -> Rule forall a b. (a -> b) -> a -> b $ Name "gov_pparams_update" Name -> MapChoice -> Rule forall a. IsType0 a => Name -> a -> Rule =:= MapChoice -> MapChoice mp [ MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 0 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "min_fee_a: the linear factor for the minimum fee calculation" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 1 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "min_fee_b: the constant factor for the minimum fee calculation" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 2 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 4 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_block_size: maximal block body size in bytes" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 3 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 4 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_tx_size: maximal transaction size in bytes" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 4 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 2 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_block_header_size: maximal block header size in bytes" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 5 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "key_deposit: The amount of a key registration deposit" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 6 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "pool_deposit: The amount of a pool registration deposit" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 7 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "maximum_epoch: maximum epoch" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 8 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 2 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "n_opt: desired number of pools" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 9 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule nonnegative_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "a0: pool pledge influence factor" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 10 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule unit_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "rho: monetary expansion rate" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 11 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule unit_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "tau: treasury expansion" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 16 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "min_pool_cost: minimum pool cost" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 17 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "ada_per_utxo_byte: Cost in ada per 1 byte of UTxO storage instead of _coinsPerUTxOWord" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 18 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule cost_models) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "cost_models: Cost models for non-native script languages" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 19 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule ex_unit_prices) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "prices: Prices of execution units for non-native script languages" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 20 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule ex_units) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_tx_ex_units: Max total script execution resources units allowed per tx" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 21 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule ex_units) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_block_ex_units: Max total script execution resources units allowed per block" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 22 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 4 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_value_size: Max size of a Value in an output" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 23 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 2 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "collateral_percentage: The scaling percentage of the collateral relative to the fee" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 24 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 2 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "max_collateral_inputs: Maximum number of collateral inputs allowed in a transaction" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 25 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule pool_voting_thresholds) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "pool voting thresholds" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 26 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule drep_voting_thresholds) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "drep voting thresholds" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 27 Key -> Constrained -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Value Int VUInt Value Int -> Word64 -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 2 :: Word64)) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "min committee size" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 28 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "committee term limit" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 29 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "governance action validity period" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 30 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "governance action deposit" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 31 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule coin) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "drep deposit" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 32 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule epoch_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "drep inactivity period" , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 33 Key -> Rule -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> Rule nonnegative_interval) MapEntry -> Comment -> MapEntry forall a. HasComment a => a -> Comment -> a //- Comment "min_fee_ref_script_cost_per_byte: Reference scripts fee for the minimum fee calculation" ]