{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Shelley.HuddleSpec (
module Cardano.Ledger.Huddle,
module Cardano.Ledger.Core.HuddleSpec,
ShelleyEra,
shelleyCDDL,
shelleyProtocolVersionGroup,
headerRule,
proposedProtocolParameterUpdatesRule,
updateRule,
protocolParamUpdateRule,
headerBodyRule,
transactionWitnessSetRule,
vkeywitnessRule,
bootstrapWitnessRule,
shelleyOperationalCertGroup,
genesisHashRule,
scriptPubkeyGroup,
scriptAllGroup,
scriptAnyGroup,
transactionIdRule,
transactionInputRule,
transactionOutputRule,
shelleyWithdrawalsRule,
dnsNameRule,
urlRule,
poolMetadataRule,
singleHostAddrGroup,
singleHostNameGroup,
multiHostNameGroup,
relayRule,
poolParamsGroup,
poolRegistrationCertGroup,
poolRetirementCertGroup,
genesisDelegateHashRule,
genesisDelegationCertGroup,
deltaCoinRule,
moveInstantaneousRewardRule,
moveInstantaneousRewardsCertGroup,
accountRegistrationCertGroup,
accountUnregistrationCertGroup,
delegationToStakePoolCertGroup,
certificateRule,
untaggedSet,
) where
import Cardano.Ledger.Core.HuddleSpec (majorProtocolVersionRule)
import Cardano.Ledger.Huddle
import Cardano.Ledger.Shelley (ShelleyEra)
import Data.Proxy (Proxy (..))
import Data.Word (Word64)
import Text.Heredoc
import Prelude hiding ((/))
shelleyCDDL :: Huddle
shelleyCDDL :: Huddle
shelleyCDDL =
[HuddleItem] -> Huddle
collectFrom
[ Rule -> HuddleItem
HIRule (Rule -> HuddleItem) -> Rule -> HuddleItem
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"block" (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @ShelleyEra)
, Rule -> HuddleItem
HIRule (Rule -> HuddleItem) -> Rule -> HuddleItem
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction" (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @ShelleyEra)
, Rule -> HuddleItem
HIRule (Rule -> HuddleItem) -> Rule -> HuddleItem
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"signkey_kes" (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @ShelleyEra)
]
shelleyProtocolVersionGroup ::
forall era.
HuddleRule "major_protocol_version" era => Proxy "protocol_version" -> Proxy era -> GroupDef
shelleyProtocolVersionGroup :: forall era.
HuddleRule "major_protocol_version" era =>
Proxy "protocol_version" -> Proxy era -> GroupDef
shelleyProtocolVersionGroup Proxy "protocol_version"
pname Proxy era
p = Proxy "protocol_version"
pname Proxy "protocol_version" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"major_protocol_version" Proxy era
p, Value Int -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a Value Int
VUInt]
headerRule ::
forall era. HuddleRule "header_body" era => Proxy "header" -> Proxy era -> Rule
Proxy "header"
pname Proxy era
p =
Proxy "header"
pname
Proxy "header" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"header_body" Proxy era
p, Key
"body_signature" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"kes_signature" Proxy era
p]
proposedProtocolParameterUpdatesRule ::
forall era.
(HuddleRule "genesis_hash" era, HuddleRule "protocol_param_update" era) =>
Proxy "proposed_protocol_parameter_updates" -> Proxy era -> Rule
proposedProtocolParameterUpdatesRule :: forall era.
(HuddleRule "genesis_hash" era,
HuddleRule "protocol_param_update" era) =>
Proxy "proposed_protocol_parameter_updates" -> Proxy era -> Rule
proposedProtocolParameterUpdatesRule Proxy "proposed_protocol_parameter_updates"
pname Proxy era
p =
Proxy "proposed_protocol_parameter_updates"
pname
Proxy "proposed_protocol_parameter_updates" -> MapChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= MapChoice -> MapChoice
mp [Word64
0 Word64 -> MapEntry -> MapEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> Key
forall r. IsType0 r => r -> Key
asKey (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"genesis_hash" Proxy era
p) Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"protocol_param_update" Proxy era
p]
updateRule ::
forall era.
HuddleRule "proposed_protocol_parameter_updates" era =>
Proxy "update" -> Proxy era -> Rule
updateRule :: forall era.
HuddleRule "proposed_protocol_parameter_updates" era =>
Proxy "update" -> Proxy era -> Rule
updateRule Proxy "update"
pname Proxy era
p =
Proxy "update"
pname
Proxy "update" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"proposed_protocol_parameter_updates" Proxy era
p, Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"epoch" Proxy era
p]
protocolParamUpdateRule ::
forall era.
HuddleGroup "protocol_version" era => Proxy "protocol_param_update" -> Proxy era -> Rule
protocolParamUpdateRule :: forall era.
HuddleGroup "protocol_version" era =>
Proxy "protocol_param_update" -> Proxy era -> Rule
protocolParamUpdateRule Proxy "protocol_param_update"
pname Proxy era
p =
Proxy "protocol_param_update"
pname
Proxy "protocol_param_update" -> MapChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= MapChoice -> MapChoice
mp
[ MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
0 Key -> Value Int -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value Int
VUInt) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"minfee A"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
1 Key -> Value Int -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value Int
VUInt) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"minfee B"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
2 Key -> Value Int -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value Int
VUInt) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"max block body size"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
3 Key -> Value Int -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value Int
VUInt) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"max transaction size"
, 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"
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"key 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"pool 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"epoch_interval" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"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 stake 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"nonnegative_interval" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"pool pledge influence"
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"unit_interval" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"unit_interval" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"treasury growth rate"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
12 Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"unit_interval" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"decentralization constant"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
13 Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"nonce" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"extra entropy"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
14 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"protocol_version" Proxy era
p]) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"protocol version"
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
15 Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"min utxo value"
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p) MapEntry -> Comment -> MapEntry
forall a. HasComment a => a -> Comment -> a
//- Comment
"min pool cost"
]
headerBodyRule ::
forall era.
( HuddleGroup "operational_cert" era
, HuddleGroup "protocol_version" era
) =>
Proxy "header_body" ->
Proxy era ->
Rule
headerBodyRule :: forall era.
(HuddleGroup "operational_cert" era,
HuddleGroup "protocol_version" era) =>
Proxy "header_body" -> Proxy era -> Rule
headerBodyRule Proxy "header_body"
pname Proxy era
p =
Proxy "header_body"
pname
Proxy "header_body" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Key
"block_number" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"block_number" Proxy era
p
, Key
"slot" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"slot" Proxy era
p
, Key
"prev_hash" Key -> Choice Type2 -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"hash32" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
, Key
"issuer_vkey" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vkey" Proxy era
p
, Key
"vrf_vkey" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vrf_vkey" Proxy era
p
, Key
"nonce_vrf" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vrf_cert" Proxy era
p
, Key
"leader_vrf" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vrf_cert" Proxy era
p
, Key
"block_body_size" Key -> Constrained -> ArrayEntry
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)
, Key
"block_body_hash" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"hash32" Proxy era
p
, GroupDef -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"operational_cert" Proxy era
p)
, GroupDef -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"protocol_version" Proxy era
p)
]
transactionWitnessSetRule ::
forall era.
( HuddleRule "vkeywitness" era
, HuddleRule "native_script" era
, HuddleRule "bootstrap_witness" era
) =>
Proxy "transaction_witness_set" ->
Proxy era ->
Rule
transactionWitnessSetRule :: forall era.
(HuddleRule "vkeywitness" era, HuddleRule "native_script" era,
HuddleRule "bootstrap_witness" era) =>
Proxy "transaction_witness_set" -> Proxy era -> Rule
transactionWitnessSetRule Proxy "transaction_witness_set"
pname Proxy era
p =
Proxy "transaction_witness_set"
pname
Proxy "transaction_witness_set" -> MapChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= MapChoice -> MapChoice
mp
[ Item MapChoice -> Item MapChoice
forall a. CanQuantify a => a -> a
opt (Item MapChoice -> Item MapChoice)
-> Item MapChoice -> Item MapChoice
forall a b. (a -> b) -> a -> b
$ Word64 -> Key
idx Word64
0 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vkeywitness" Proxy era
p)]
, Item MapChoice -> Item MapChoice
forall a. CanQuantify a => a -> a
opt (Item MapChoice -> Item MapChoice)
-> Item MapChoice -> Item MapChoice
forall a b. (a -> b) -> a -> b
$ Word64 -> Key
idx Word64
1 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"native_script" Proxy era
p)]
, Item MapChoice -> Item MapChoice
forall a. CanQuantify a => a -> a
opt (Item MapChoice -> Item MapChoice)
-> Item MapChoice -> Item MapChoice
forall a b. (a -> b) -> a -> b
$ Word64 -> Key
idx Word64
2 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"bootstrap_witness" Proxy era
p)]
]
vkeywitnessRule :: forall era. Era era => Proxy "vkeywitness" -> Proxy era -> Rule
vkeywitnessRule :: forall era. Era era => Proxy "vkeywitness" -> Proxy era -> Rule
vkeywitnessRule Proxy "vkeywitness"
pname Proxy era
p =
Proxy "vkeywitness"
pname
Proxy "vkeywitness" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vkey" Proxy era
p, Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"signature" Proxy era
p]
bootstrapWitnessRule ::
forall era. Era era => Proxy "bootstrap_witness" -> Proxy era -> Rule
bootstrapWitnessRule :: forall era.
Era era =>
Proxy "bootstrap_witness" -> Proxy era -> Rule
bootstrapWitnessRule Proxy "bootstrap_witness"
pname Proxy era
p =
Proxy "bootstrap_witness"
pname
Proxy "bootstrap_witness" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Key
"public_key" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vkey" Proxy era
p
, Key
"signature" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"signature" Proxy era
p
, Key
"chain_code" Key -> Constrained -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value ByteString
VBytes Value ByteString -> Word64 -> Constrained
forall c a s.
(IsSizeable a, IsSize s, IsConstrainable c a) =>
c -> s -> Constrained
`sized` (Word64
32 :: Word64)
, Key
"attributes" Key -> Value ByteString -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value ByteString
VBytes
]
shelleyOperationalCertGroup ::
forall era. Era era => Proxy "operational_cert" -> Proxy era -> GroupDef
shelleyOperationalCertGroup :: forall era.
Era era =>
Proxy "operational_cert" -> Proxy era -> GroupDef
shelleyOperationalCertGroup Proxy "operational_cert"
pname Proxy era
p =
Proxy "operational_cert"
pname
Proxy "operational_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp
[ Key
"hot_vkey" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"kes_vkey" Proxy era
p
, Key
"sequence_number" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"sequence_number" Proxy era
p
, Key
"kes_period" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"kes_period" Proxy era
p
, Key
"sigma" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"signature" Proxy era
p
]
genesisHashRule :: forall era. Era era => Proxy "genesis_hash" -> Proxy era -> Rule
genesisHashRule :: forall era. Era era => Proxy "genesis_hash" -> Proxy era -> Rule
genesisHashRule Proxy "genesis_hash"
pname Proxy era
p = Proxy "genesis_hash"
pname Proxy "genesis_hash" -> Rule -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"hash28" Proxy era
p
scriptPubkeyGroup ::
forall era. Era era => Proxy "script_pubkey" -> Proxy era -> GroupDef
scriptPubkeyGroup :: forall era.
Era era =>
Proxy "script_pubkey" -> Proxy era -> GroupDef
scriptPubkeyGroup Proxy "script_pubkey"
pname Proxy era
p = Proxy "script_pubkey"
pname Proxy "script_pubkey" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
0, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"addr_keyhash" Proxy era
p]
scriptAllGroup ::
forall era.
HuddleRule "native_script" era => Proxy "script_all" -> Proxy era -> GroupDef
scriptAllGroup :: forall era.
HuddleRule "native_script" era =>
Proxy "script_all" -> Proxy era -> GroupDef
scriptAllGroup Proxy "script_all"
pname Proxy era
p = Proxy "script_all"
pname Proxy "script_all" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
1, ArrayChoice -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (ArrayChoice -> Item Group) -> ArrayChoice -> Item Group
forall a b. (a -> b) -> a -> b
$ ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"native_script" Proxy era
p)]]
scriptAnyGroup ::
forall era.
HuddleRule "native_script" era => Proxy "script_any" -> Proxy era -> GroupDef
scriptAnyGroup :: forall era.
HuddleRule "native_script" era =>
Proxy "script_any" -> Proxy era -> GroupDef
scriptAnyGroup Proxy "script_any"
pname Proxy era
p = Proxy "script_any"
pname Proxy "script_any" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
2, ArrayChoice -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (ArrayChoice -> Item Group) -> ArrayChoice -> Item Group
forall a b. (a -> b) -> a -> b
$ ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"native_script" Proxy era
p)]]
transactionIdRule :: forall era. Era era => Proxy "transaction_id" -> Proxy era -> Rule
transactionIdRule :: forall era. Era era => Proxy "transaction_id" -> Proxy era -> Rule
transactionIdRule Proxy "transaction_id"
pname Proxy era
p = Proxy "transaction_id"
pname Proxy "transaction_id" -> Rule -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"hash32" Proxy era
p
transactionInputRule ::
forall era.
HuddleRule "transaction_id" era => Proxy "transaction_input" -> Proxy era -> Rule
transactionInputRule :: forall era.
HuddleRule "transaction_id" era =>
Proxy "transaction_input" -> Proxy era -> Rule
transactionInputRule Proxy "transaction_input"
pname Proxy era
p =
Proxy "transaction_input"
pname
Proxy "transaction_input" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Key
"id" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_id" Proxy era
p
, Key
"index" Key -> Constrained -> ArrayEntry
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)
]
transactionOutputRule ::
forall era. Era era => Proxy "transaction_output" -> Proxy era -> Rule
transactionOutputRule :: forall era.
Era era =>
Proxy "transaction_output" -> Proxy era -> Rule
transactionOutputRule Proxy "transaction_output"
pname Proxy era
p =
Proxy "transaction_output"
pname
Proxy "transaction_output" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"address" Proxy era
p, Key
"amount" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p]
shelleyWithdrawalsRule ::
forall era. Era era => Proxy "withdrawals" -> Proxy era -> Rule
shelleyWithdrawalsRule :: forall era. Era era => Proxy "withdrawals" -> Proxy era -> Rule
shelleyWithdrawalsRule Proxy "withdrawals"
pname Proxy era
p =
Proxy "withdrawals"
pname
Proxy "withdrawals" -> MapChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= MapChoice -> MapChoice
mp [Word64
0 Word64 -> MapEntry -> MapEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> Key
forall r. IsType0 r => r -> Key
asKey (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"reward_account" Proxy era
p) Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p]
dnsNameRule :: Proxy "dns_name" -> Rule
dnsNameRule :: Proxy "dns_name" -> Rule
dnsNameRule Proxy "dns_name"
pname = Proxy "dns_name"
pname Proxy "dns_name" -> Constrained -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= Value Text
VText Value Text -> (Word64, Word64) -> Constrained
forall c a s.
(IsSizeable a, IsSize s, IsConstrainable c a) =>
c -> s -> Constrained
`sized` (Word64
0 :: Word64, Word64
64 :: Word64)
urlRule :: Proxy "url" -> Rule
urlRule :: Proxy "url" -> Rule
urlRule Proxy "url"
pname = Proxy "url"
pname Proxy "url" -> Constrained -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= Value Text
VText Value Text -> (Word64, Word64) -> Constrained
forall c a s.
(IsSizeable a, IsSize s, IsConstrainable c a) =>
c -> s -> Constrained
`sized` (Word64
0 :: Word64, Word64
64 :: Word64)
poolMetadataRule ::
forall era. HuddleRule "url" era => Proxy "pool_metadata" -> Proxy era -> Rule
poolMetadataRule :: forall era.
HuddleRule "url" era =>
Proxy "pool_metadata" -> Proxy era -> Rule
poolMetadataRule Proxy "pool_metadata"
pname Proxy era
p =
Proxy "pool_metadata"
pname
Proxy "pool_metadata" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"url" Proxy era
p, Value ByteString -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a Value ByteString
VBytes]
singleHostAddrGroup ::
forall era. Era era => Proxy "single_host_addr" -> Proxy era -> GroupDef
singleHostAddrGroup :: forall era.
Era era =>
Proxy "single_host_addr" -> Proxy era -> GroupDef
singleHostAddrGroup Proxy "single_host_addr"
pname Proxy era
p =
Proxy "single_host_addr"
pname
Proxy "single_host_addr" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp
[ Item Group
ArrayEntry
0
, Choice Type2 -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Choice Type2 -> Item Group) -> Choice Type2 -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"port" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
, Choice Type2 -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Choice Type2 -> Item Group) -> Choice Type2 -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"ipv4" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
, Choice Type2 -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Choice Type2 -> Item Group) -> Choice Type2 -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"ipv6" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
]
singleHostNameGroup ::
forall era.
HuddleRule "dns_name" era => Proxy "single_host_name" -> Proxy era -> GroupDef
singleHostNameGroup :: forall era.
HuddleRule "dns_name" era =>
Proxy "single_host_name" -> Proxy era -> GroupDef
singleHostNameGroup Proxy "single_host_name"
pname Proxy era
p =
Comment -> GroupDef -> GroupDef
forall a. HasComment a => Comment -> a -> a
comment
Comment
"dns_name: An A or AAAA DNS record"
(GroupDef -> GroupDef) -> GroupDef -> GroupDef
forall a b. (a -> b) -> a -> b
$ Proxy "single_host_name"
pname
Proxy "single_host_name" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp
[ Item Group
ArrayEntry
1
, Choice Type2 -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Choice Type2 -> Item Group) -> Choice Type2 -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"port" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"dns_name" Proxy era
p
]
multiHostNameGroup ::
forall era.
HuddleRule "dns_name" era => Proxy "multi_host_name" -> Proxy era -> GroupDef
multiHostNameGroup :: forall era.
HuddleRule "dns_name" era =>
Proxy "multi_host_name" -> Proxy era -> GroupDef
multiHostNameGroup Proxy "multi_host_name"
pname Proxy era
p =
Comment -> GroupDef -> GroupDef
forall a. HasComment a => Comment -> a -> a
comment
Comment
"dns_name: An SRV DNS record"
(GroupDef -> GroupDef) -> GroupDef -> GroupDef
forall a b. (a -> b) -> a -> b
$ Proxy "multi_host_name"
pname
Proxy "multi_host_name" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
2, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"dns_name" Proxy era
p]
relayRule ::
forall era.
( HuddleGroup "single_host_addr" era
, HuddleGroup "single_host_name" era
, HuddleGroup "multi_host_name" era
) =>
Proxy "relay" ->
Proxy era ->
Rule
relayRule :: forall era.
(HuddleGroup "single_host_addr" era,
HuddleGroup "single_host_name" era,
HuddleGroup "multi_host_name" era) =>
Proxy "relay" -> Proxy era -> Rule
relayRule Proxy "relay"
pname Proxy era
p =
Proxy "relay"
pname
Proxy "relay" -> Choice ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"single_host_addr" Proxy era
p]
ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"single_host_name" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"multi_host_name" Proxy era
p]
poolParamsGroup ::
forall era.
( HuddleRule "relay" era
, HuddleRule "pool_metadata" era
, HuddleRule1 "set" era
) =>
Proxy "pool_params" ->
Proxy era ->
GroupDef
poolParamsGroup :: forall era.
(HuddleRule "relay" era, HuddleRule "pool_metadata" era,
HuddleRule1 "set" era) =>
Proxy "pool_params" -> Proxy era -> GroupDef
poolParamsGroup Proxy "pool_params"
pname Proxy era
p =
Comment -> GroupDef -> GroupDef
forall a. HasComment a => Comment -> a -> a
comment
Comment
"Pool parameters for stake pool registration"
(GroupDef -> GroupDef) -> GroupDef -> GroupDef
forall a b. (a -> b) -> a -> b
$ Proxy "pool_params"
pname
Proxy "pool_params" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp
[ Key
"operator" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"pool_keyhash" Proxy era
p
, Key
"vrf_keyhash" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vrf_keyhash" Proxy era
p
, Key
"pledge" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p
, Key
"cost" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p
, Key
"margin" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"unit_interval" Proxy era
p
, Key
"reward_account" Key -> Rule -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"reward_account" Proxy era
p
, Key
"pool_owners" Key -> GRuleCall -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era a.
(HuddleRule1 name era, IsType0 a) =>
Proxy era -> a -> GRuleCall
huddleRule1 @"set" Proxy era
p (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"addr_keyhash" Proxy era
p)
, Key
"relays" Key -> ArrayChoice -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"relay" Proxy era
p)]
, Key
"pool_metadata" Key -> Choice Type2 -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"pool_metadata" Proxy era
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
]
poolRegistrationCertGroup ::
forall era.
HuddleGroup "pool_params" era => Proxy "pool_registration_cert" -> Proxy era -> GroupDef
poolRegistrationCertGroup :: forall era.
HuddleGroup "pool_params" era =>
Proxy "pool_registration_cert" -> Proxy era -> GroupDef
poolRegistrationCertGroup Proxy "pool_registration_cert"
pname Proxy era
p = Proxy "pool_registration_cert"
pname Proxy "pool_registration_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
3, GroupDef -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item Group) -> GroupDef -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"pool_params" Proxy era
p]
poolRetirementCertGroup ::
forall era. Era era => Proxy "pool_retirement_cert" -> Proxy era -> GroupDef
poolRetirementCertGroup :: forall era.
Era era =>
Proxy "pool_retirement_cert" -> Proxy era -> GroupDef
poolRetirementCertGroup Proxy "pool_retirement_cert"
pname Proxy era
p =
Proxy "pool_retirement_cert"
pname
Proxy "pool_retirement_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
4, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"pool_keyhash" Proxy era
p, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"epoch" Proxy era
p]
genesisDelegateHashRule ::
forall era. Era era => Proxy "genesis_delegate_hash" -> Proxy era -> Rule
genesisDelegateHashRule :: forall era.
Era era =>
Proxy "genesis_delegate_hash" -> Proxy era -> Rule
genesisDelegateHashRule Proxy "genesis_delegate_hash"
pname Proxy era
p = Proxy "genesis_delegate_hash"
pname Proxy "genesis_delegate_hash" -> Rule -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"hash28" Proxy era
p
genesisDelegationCertGroup ::
forall era.
( HuddleRule "genesis_hash" era
, HuddleRule "genesis_delegate_hash" era
) =>
Proxy "genesis_delegation_cert" ->
Proxy era ->
GroupDef
genesisDelegationCertGroup :: forall era.
(HuddleRule "genesis_hash" era,
HuddleRule "genesis_delegate_hash" era) =>
Proxy "genesis_delegation_cert" -> Proxy era -> GroupDef
genesisDelegationCertGroup Proxy "genesis_delegation_cert"
pname Proxy era
p =
Proxy "genesis_delegation_cert"
pname
Proxy "genesis_delegation_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp
[ Item Group
ArrayEntry
5
, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"genesis_hash" Proxy era
p
, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"genesis_delegate_hash" Proxy era
p
, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"vrf_keyhash" Proxy era
p
]
deltaCoinRule :: Proxy "delta_coin" -> Rule
deltaCoinRule :: Proxy "delta_coin" -> Rule
deltaCoinRule Proxy "delta_coin"
pname =
Comment -> Rule -> Rule
forall a. HasComment a => Comment -> a -> a
comment
Comment
"This too has been introduced in Shelley as a backport from Alonzo."
(Rule -> Rule) -> Rule -> Rule
forall a b. (a -> b) -> a -> b
$ Proxy "delta_coin"
pname Proxy "delta_coin" -> Value Int -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= Value Int
VInt
moveInstantaneousRewardRule ::
forall era. HuddleRule "delta_coin" era => Proxy "move_instantaneous_reward" -> Proxy era -> Rule
moveInstantaneousRewardRule :: forall era.
HuddleRule "delta_coin" era =>
Proxy "move_instantaneous_reward" -> Proxy era -> Rule
moveInstantaneousRewardRule Proxy "move_instantaneous_reward"
pname Proxy era
p =
Comment -> Rule -> Rule
forall a. HasComment a => Comment -> a -> a
comment
Comment
[str|The first field determines where the funds are drawn from.
| 0 denotes the reserves,
| 1 denotes the treasury.
|If the second field is a map, funds are moved to stake credentials.
|Otherwise, the funds are given to the other accounting pot.
|NOTE:
| This has been safely backported to Shelley from Alonzo.
|]
(Rule -> Rule) -> Rule -> Rule
forall a b. (a -> b) -> a -> b
$ Proxy "move_instantaneous_reward"
pname
Proxy "move_instantaneous_reward" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Choice Type2 -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Integer -> Literal
int Integer
0 Literal -> Literal -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Integer -> Literal
int Integer
1)
, Choice Type2 -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a
( MapChoice -> Seal Map
smp
[Word64
0 Word64 -> MapEntry -> MapEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> Key
forall r. IsType0 r => r -> Key
asKey (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"stake_credential" Proxy era
p) Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"delta_coin" Proxy era
p]
Seal Map -> Rule -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy era
p
)
]
moveInstantaneousRewardsCertGroup ::
forall era.
HuddleRule "move_instantaneous_reward" era =>
Proxy "move_instantaneous_rewards_cert" ->
Proxy era ->
GroupDef
moveInstantaneousRewardsCertGroup :: forall era.
HuddleRule "move_instantaneous_reward" era =>
Proxy "move_instantaneous_rewards_cert" -> Proxy era -> GroupDef
moveInstantaneousRewardsCertGroup Proxy "move_instantaneous_rewards_cert"
pname Proxy era
p =
Proxy "move_instantaneous_rewards_cert"
pname
Proxy "move_instantaneous_rewards_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
6, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"move_instantaneous_reward" Proxy era
p]
accountRegistrationCertGroup ::
forall era. Era era => Proxy "account_registration_cert" -> Proxy era -> GroupDef
accountRegistrationCertGroup :: forall era.
Era era =>
Proxy "account_registration_cert" -> Proxy era -> GroupDef
accountRegistrationCertGroup Proxy "account_registration_cert"
pname Proxy era
p =
Comment -> GroupDef -> GroupDef
forall a. HasComment a => Comment -> a -> a
comment
Comment
"This certificate will be deprecated in a future era"
(GroupDef -> GroupDef) -> GroupDef -> GroupDef
forall a b. (a -> b) -> a -> b
$ Proxy "account_registration_cert"
pname
Proxy "account_registration_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
0, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"stake_credential" Proxy era
p]
accountUnregistrationCertGroup ::
forall era. Era era => Proxy "account_unregistration_cert" -> Proxy era -> GroupDef
accountUnregistrationCertGroup :: forall era.
Era era =>
Proxy "account_unregistration_cert" -> Proxy era -> GroupDef
accountUnregistrationCertGroup Proxy "account_unregistration_cert"
pname Proxy era
p =
Comment -> GroupDef -> GroupDef
forall a. HasComment a => Comment -> a -> a
comment
Comment
"This certificate will be deprecated in a future era"
(GroupDef -> GroupDef) -> GroupDef -> GroupDef
forall a b. (a -> b) -> a -> b
$ Proxy "account_unregistration_cert"
pname
Proxy "account_unregistration_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
1, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"stake_credential" Proxy era
p]
delegationToStakePoolCertGroup ::
forall era. Era era => Proxy "delegation_to_stake_pool_cert" -> Proxy era -> GroupDef
delegationToStakePoolCertGroup :: forall era.
Era era =>
Proxy "delegation_to_stake_pool_cert" -> Proxy era -> GroupDef
delegationToStakePoolCertGroup Proxy "delegation_to_stake_pool_cert"
pname Proxy era
p =
Proxy "delegation_to_stake_pool_cert"
pname
Proxy "delegation_to_stake_pool_cert" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
2, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"stake_credential" Proxy era
p, Rule -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item Group) -> Rule -> Item Group
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"pool_keyhash" Proxy era
p]
certificateRule ::
forall era.
( HuddleGroup "account_registration_cert" era
, HuddleGroup "account_unregistration_cert" era
, HuddleGroup "delegation_to_stake_pool_cert" era
, HuddleGroup "pool_registration_cert" era
, HuddleGroup "pool_retirement_cert" era
, HuddleGroup "genesis_delegation_cert" era
, HuddleGroup "move_instantaneous_rewards_cert" era
) =>
Proxy "certificate" ->
Proxy era ->
Rule
certificateRule :: forall era.
(HuddleGroup "account_registration_cert" era,
HuddleGroup "account_unregistration_cert" era,
HuddleGroup "delegation_to_stake_pool_cert" era,
HuddleGroup "pool_registration_cert" era,
HuddleGroup "pool_retirement_cert" era,
HuddleGroup "genesis_delegation_cert" era,
HuddleGroup "move_instantaneous_rewards_cert" era) =>
Proxy "certificate" -> Proxy era -> Rule
certificateRule Proxy "certificate"
pname Proxy era
p =
Proxy "certificate"
pname
Proxy "certificate" -> Choice ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"account_registration_cert" Proxy era
p]
ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"account_unregistration_cert" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"delegation_to_stake_pool_cert" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"pool_registration_cert" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"pool_retirement_cert" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"genesis_delegation_cert" Proxy era
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"move_instantaneous_rewards_cert" Proxy era
p]
untaggedSet :: IsType0 a => Proxy "set" -> a -> GRuleCall
untaggedSet :: forall a. IsType0 a => Proxy "set" -> a -> GRuleCall
untaggedSet Proxy "set"
pname = (GRef -> Rule) -> a -> GRuleCall
forall t0. IsType0 t0 => (GRef -> Rule) -> t0 -> GRuleCall
binding ((GRef -> Rule) -> a -> GRuleCall)
-> (GRef -> Rule) -> a -> GRuleCall
forall a b. (a -> b) -> a -> b
$ \GRef
x -> Proxy "set"
pname Proxy "set" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ GRef -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a GRef
x]
instance HuddleRule "dns_name" ShelleyEra where
huddleRuleNamed :: Proxy "dns_name" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "dns_name"
pname Proxy ShelleyEra
_ = Proxy "dns_name" -> Rule
dnsNameRule Proxy "dns_name"
pname
instance HuddleRule "url" ShelleyEra where
huddleRuleNamed :: Proxy "url" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "url"
pname Proxy ShelleyEra
_ = Proxy "url" -> Rule
urlRule Proxy "url"
pname
instance HuddleRule "pool_metadata" ShelleyEra where
huddleRuleNamed :: Proxy "pool_metadata" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "pool_metadata" -> Proxy ShelleyEra -> Rule
forall era.
HuddleRule "url" era =>
Proxy "pool_metadata" -> Proxy era -> Rule
poolMetadataRule
instance HuddleGroup "single_host_addr" ShelleyEra where
huddleGroupNamed :: Proxy "single_host_addr" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "single_host_addr" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "single_host_addr" -> Proxy era -> GroupDef
singleHostAddrGroup
instance HuddleGroup "single_host_name" ShelleyEra where
huddleGroupNamed :: Proxy "single_host_name" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "single_host_name" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "dns_name" era =>
Proxy "single_host_name" -> Proxy era -> GroupDef
singleHostNameGroup
instance HuddleGroup "multi_host_name" ShelleyEra where
huddleGroupNamed :: Proxy "multi_host_name" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "multi_host_name" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "dns_name" era =>
Proxy "multi_host_name" -> Proxy era -> GroupDef
multiHostNameGroup
instance HuddleRule "relay" ShelleyEra where
huddleRuleNamed :: Proxy "relay" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "relay" -> Proxy ShelleyEra -> Rule
forall era.
(HuddleGroup "single_host_addr" era,
HuddleGroup "single_host_name" era,
HuddleGroup "multi_host_name" era) =>
Proxy "relay" -> Proxy era -> Rule
relayRule
instance HuddleGroup "pool_params" ShelleyEra where
huddleGroupNamed :: Proxy "pool_params" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "pool_params" -> Proxy ShelleyEra -> GroupDef
forall era.
(HuddleRule "relay" era, HuddleRule "pool_metadata" era,
HuddleRule1 "set" era) =>
Proxy "pool_params" -> Proxy era -> GroupDef
poolParamsGroup
instance HuddleGroup "pool_registration_cert" ShelleyEra where
huddleGroupNamed :: Proxy "pool_registration_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "pool_registration_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleGroup "pool_params" era =>
Proxy "pool_registration_cert" -> Proxy era -> GroupDef
poolRegistrationCertGroup
instance HuddleGroup "pool_retirement_cert" ShelleyEra where
huddleGroupNamed :: Proxy "pool_retirement_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "pool_retirement_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "pool_retirement_cert" -> Proxy era -> GroupDef
poolRetirementCertGroup
instance HuddleRule "genesis_hash" ShelleyEra where
huddleRuleNamed :: Proxy "genesis_hash" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "genesis_hash" -> Proxy ShelleyEra -> Rule
forall era. Era era => Proxy "genesis_hash" -> Proxy era -> Rule
genesisHashRule
instance HuddleRule "genesis_delegate_hash" ShelleyEra where
huddleRuleNamed :: Proxy "genesis_delegate_hash" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "genesis_delegate_hash" -> Proxy ShelleyEra -> Rule
forall era.
Era era =>
Proxy "genesis_delegate_hash" -> Proxy era -> Rule
genesisDelegateHashRule
instance HuddleGroup "genesis_delegation_cert" ShelleyEra where
huddleGroupNamed :: Proxy "genesis_delegation_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "genesis_delegation_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
(HuddleRule "genesis_hash" era,
HuddleRule "genesis_delegate_hash" era) =>
Proxy "genesis_delegation_cert" -> Proxy era -> GroupDef
genesisDelegationCertGroup
instance HuddleRule "delta_coin" ShelleyEra where
huddleRuleNamed :: Proxy "delta_coin" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "delta_coin"
pname Proxy ShelleyEra
_ = Proxy "delta_coin" -> Rule
deltaCoinRule Proxy "delta_coin"
pname
instance HuddleRule "move_instantaneous_reward" ShelleyEra where
huddleRuleNamed :: Proxy "move_instantaneous_reward" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "move_instantaneous_reward" -> Proxy ShelleyEra -> Rule
forall era.
HuddleRule "delta_coin" era =>
Proxy "move_instantaneous_reward" -> Proxy era -> Rule
moveInstantaneousRewardRule
instance HuddleGroup "move_instantaneous_rewards_cert" ShelleyEra where
huddleGroupNamed :: Proxy "move_instantaneous_rewards_cert"
-> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "move_instantaneous_rewards_cert"
-> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "move_instantaneous_reward" era =>
Proxy "move_instantaneous_rewards_cert" -> Proxy era -> GroupDef
moveInstantaneousRewardsCertGroup
instance HuddleGroup "account_registration_cert" ShelleyEra where
huddleGroupNamed :: Proxy "account_registration_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "account_registration_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "account_registration_cert" -> Proxy era -> GroupDef
accountRegistrationCertGroup
instance HuddleGroup "account_unregistration_cert" ShelleyEra where
huddleGroupNamed :: Proxy "account_unregistration_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "account_unregistration_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "account_unregistration_cert" -> Proxy era -> GroupDef
accountUnregistrationCertGroup
instance HuddleGroup "delegation_to_stake_pool_cert" ShelleyEra where
huddleGroupNamed :: Proxy "delegation_to_stake_pool_cert"
-> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "delegation_to_stake_pool_cert"
-> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "delegation_to_stake_pool_cert" -> Proxy era -> GroupDef
delegationToStakePoolCertGroup
instance HuddleRule "certificate" ShelleyEra where
huddleRuleNamed :: Proxy "certificate" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "certificate" -> Proxy ShelleyEra -> Rule
forall era.
(HuddleGroup "account_registration_cert" era,
HuddleGroup "account_unregistration_cert" era,
HuddleGroup "delegation_to_stake_pool_cert" era,
HuddleGroup "pool_registration_cert" era,
HuddleGroup "pool_retirement_cert" era,
HuddleGroup "genesis_delegation_cert" era,
HuddleGroup "move_instantaneous_rewards_cert" era) =>
Proxy "certificate" -> Proxy era -> Rule
certificateRule
instance HuddleRule "withdrawals" ShelleyEra where
huddleRuleNamed :: Proxy "withdrawals" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "withdrawals" -> Proxy ShelleyEra -> Rule
forall era. Era era => Proxy "withdrawals" -> Proxy era -> Rule
shelleyWithdrawalsRule
instance HuddleRule "major_protocol_version" ShelleyEra where
huddleRuleNamed :: Proxy "major_protocol_version" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "major_protocol_version" -> Proxy ShelleyEra -> Rule
forall era.
Era era =>
Proxy "major_protocol_version" -> Proxy era -> Rule
majorProtocolVersionRule
instance HuddleGroup "protocol_version" ShelleyEra where
huddleGroupNamed :: Proxy "protocol_version" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "protocol_version" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "major_protocol_version" era =>
Proxy "protocol_version" -> Proxy era -> GroupDef
shelleyProtocolVersionGroup
instance HuddleRule "protocol_param_update" ShelleyEra where
huddleRuleNamed :: Proxy "protocol_param_update" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "protocol_param_update" -> Proxy ShelleyEra -> Rule
forall era.
HuddleGroup "protocol_version" era =>
Proxy "protocol_param_update" -> Proxy era -> Rule
protocolParamUpdateRule
instance HuddleRule "proposed_protocol_parameter_updates" ShelleyEra where
huddleRuleNamed :: Proxy "proposed_protocol_parameter_updates"
-> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "proposed_protocol_parameter_updates"
-> Proxy ShelleyEra -> Rule
forall era.
(HuddleRule "genesis_hash" era,
HuddleRule "protocol_param_update" era) =>
Proxy "proposed_protocol_parameter_updates" -> Proxy era -> Rule
proposedProtocolParameterUpdatesRule
instance HuddleRule "update" ShelleyEra where
huddleRuleNamed :: Proxy "update" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "update" -> Proxy ShelleyEra -> Rule
forall era.
HuddleRule "proposed_protocol_parameter_updates" era =>
Proxy "update" -> Proxy era -> Rule
updateRule
instance HuddleGroup "operational_cert" ShelleyEra where
huddleGroupNamed :: Proxy "operational_cert" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "operational_cert" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "operational_cert" -> Proxy era -> GroupDef
shelleyOperationalCertGroup
instance HuddleRule "header_body" ShelleyEra where
huddleRuleNamed :: Proxy "header_body" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "header_body" -> Proxy ShelleyEra -> Rule
forall era.
(HuddleGroup "operational_cert" era,
HuddleGroup "protocol_version" era) =>
Proxy "header_body" -> Proxy era -> Rule
headerBodyRule
instance HuddleRule "header" ShelleyEra where
huddleRuleNamed :: Proxy "header" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "header" -> Proxy ShelleyEra -> Rule
forall era.
HuddleRule "header_body" era =>
Proxy "header" -> Proxy era -> Rule
headerRule
instance HuddleRule "transaction_id" ShelleyEra where
huddleRuleNamed :: Proxy "transaction_id" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "transaction_id" -> Proxy ShelleyEra -> Rule
forall era. Era era => Proxy "transaction_id" -> Proxy era -> Rule
transactionIdRule
instance HuddleRule "transaction_input" ShelleyEra where
huddleRuleNamed :: Proxy "transaction_input" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "transaction_input" -> Proxy ShelleyEra -> Rule
forall era.
HuddleRule "transaction_id" era =>
Proxy "transaction_input" -> Proxy era -> Rule
transactionInputRule
instance HuddleRule "transaction_output" ShelleyEra where
huddleRuleNamed :: Proxy "transaction_output" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "transaction_output" -> Proxy ShelleyEra -> Rule
forall era.
Era era =>
Proxy "transaction_output" -> Proxy era -> Rule
transactionOutputRule
instance HuddleGroup "script_pubkey" ShelleyEra where
huddleGroupNamed :: Proxy "script_pubkey" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "script_pubkey" -> Proxy ShelleyEra -> GroupDef
forall era.
Era era =>
Proxy "script_pubkey" -> Proxy era -> GroupDef
scriptPubkeyGroup
instance HuddleGroup "script_all" ShelleyEra where
huddleGroupNamed :: Proxy "script_all" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "script_all" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "native_script" era =>
Proxy "script_all" -> Proxy era -> GroupDef
scriptAllGroup
instance HuddleGroup "script_any" ShelleyEra where
huddleGroupNamed :: Proxy "script_any" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed = Proxy "script_any" -> Proxy ShelleyEra -> GroupDef
forall era.
HuddleRule "native_script" era =>
Proxy "script_any" -> Proxy era -> GroupDef
scriptAnyGroup
instance HuddleGroup "script_n_of_k" ShelleyEra where
huddleGroupNamed :: Proxy "script_n_of_k" -> Proxy ShelleyEra -> GroupDef
huddleGroupNamed Proxy "script_n_of_k"
pname Proxy ShelleyEra
p =
Proxy "script_n_of_k"
pname
Proxy "script_n_of_k" -> Group -> GroupDef
forall (name :: Symbol).
KnownSymbol name =>
Proxy name -> Group -> GroupDef
=.~ Group -> Group
grp [Item Group
ArrayEntry
3, Key
"n" Key -> Value Int -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> Value Int
VUInt, ArrayChoice -> Item Group
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (ArrayChoice -> Item Group) -> ArrayChoice -> Item Group
forall a b. (a -> b) -> a -> b
$ ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"native_script" Proxy ShelleyEra
p)]]
instance HuddleRule "native_script" ShelleyEra where
huddleRuleNamed :: Proxy "native_script" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "native_script"
pname Proxy ShelleyEra
p =
Comment -> Rule -> Rule
forall a. HasComment a => Comment -> a -> a
comment
Comment
[str|Native scripts support 4 operations:
| - Signature verification (script_pubkey)
| - Conjunctions (script_all)
| - Disjunctions (script_any)
| - M-of-N thresholds (script_n_of_k)
|
|Note: Shelley uses VUInt for the threshold in script_n_of_k.
|]
(Rule -> Rule) -> Rule -> Rule
forall a b. (a -> b) -> a -> b
$ Proxy "native_script"
pname
Proxy "native_script" -> Choice ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"script_pubkey" Proxy ShelleyEra
p]
ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"script_all" Proxy ShelleyEra
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"script_any" Proxy ShelleyEra
p]
Choice ArrayChoice -> ArrayChoice -> Choice ArrayChoice
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ ArrayChoice -> ArrayChoice
arr [GroupDef -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (GroupDef -> Item ArrayChoice) -> GroupDef -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleGroup name era =>
Proxy era -> GroupDef
huddleGroup @"script_n_of_k" Proxy ShelleyEra
p]
instance HuddleRule "vkeywitness" ShelleyEra where
huddleRuleNamed :: Proxy "vkeywitness" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "vkeywitness" -> Proxy ShelleyEra -> Rule
forall era. Era era => Proxy "vkeywitness" -> Proxy era -> Rule
vkeywitnessRule
instance HuddleRule "bootstrap_witness" ShelleyEra where
huddleRuleNamed :: Proxy "bootstrap_witness" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "bootstrap_witness" -> Proxy ShelleyEra -> Rule
forall era.
Era era =>
Proxy "bootstrap_witness" -> Proxy era -> Rule
bootstrapWitnessRule
instance HuddleRule "transaction_witness_set" ShelleyEra where
huddleRuleNamed :: Proxy "transaction_witness_set" -> Proxy ShelleyEra -> Rule
huddleRuleNamed = Proxy "transaction_witness_set" -> Proxy ShelleyEra -> Rule
forall era.
(HuddleRule "vkeywitness" era, HuddleRule "native_script" era,
HuddleRule "bootstrap_witness" era) =>
Proxy "transaction_witness_set" -> Proxy era -> Rule
transactionWitnessSetRule
instance HuddleRule "transaction_body" ShelleyEra where
huddleRuleNamed :: Proxy "transaction_body" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "transaction_body"
pname Proxy ShelleyEra
p =
Proxy "transaction_body"
pname
Proxy "transaction_body" -> MapChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= MapChoice -> MapChoice
mp
[ Word64 -> Key
idx Word64
0 Key -> GRuleCall -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era a.
(HuddleRule1 name era, IsType0 a) =>
Proxy era -> a -> GRuleCall
huddleRule1 @"set" Proxy ShelleyEra
p (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_input" Proxy ShelleyEra
p)
, Word64 -> Key
idx Word64
1 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_output" Proxy ShelleyEra
p)]
, Word64 -> Key
idx Word64
2 Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"coin" Proxy ShelleyEra
p
, Word64 -> Key
idx Word64
3 Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"slot" Proxy ShelleyEra
p
, MapEntry -> MapEntry
forall a. CanQuantify a => a -> a
opt (Word64 -> Key
idx Word64
4 Key -> ArrayChoice -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"certificate" Proxy ShelleyEra
p)])
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"withdrawals" Proxy ShelleyEra
p)
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"update" Proxy ShelleyEra
p)
, 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
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"auxiliary_data_hash" Proxy ShelleyEra
p)
]
instance HuddleRule "transaction" ShelleyEra where
huddleRuleNamed :: Proxy "transaction" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "transaction"
pname Proxy ShelleyEra
p =
Proxy "transaction"
pname
Proxy "transaction" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_body" Proxy ShelleyEra
p
, Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_witness_set" Proxy ShelleyEra
p
, Choice Type2 -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Choice Type2 -> Item ArrayChoice)
-> Choice Type2 -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"metadata" Proxy ShelleyEra
p Rule -> Value Void -> Choice Type2
forall a c b.
(IsChoosable a c, IsChoosable b c) =>
a -> b -> Choice c
/ Value Void
VNil
]
instance HuddleRule "block" ShelleyEra where
huddleRuleNamed :: Proxy "block" -> Proxy ShelleyEra -> Rule
huddleRuleNamed Proxy "block"
pname Proxy ShelleyEra
p =
Proxy "block"
pname
Proxy "block" -> ArrayChoice -> Rule
forall (name :: Symbol) t.
(KnownSymbol name, IsType0 t) =>
Proxy name -> t -> Rule
=.= ArrayChoice -> ArrayChoice
arr
[ Rule -> Item ArrayChoice
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (Rule -> Item ArrayChoice) -> Rule -> Item ArrayChoice
forall a b. (a -> b) -> a -> b
$ forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"header" Proxy ShelleyEra
p
, Key
"transaction_bodies" Key -> ArrayChoice -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_body" Proxy ShelleyEra
p)]
, Key
"transaction_witness_sets" Key -> ArrayChoice -> ArrayEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> ArrayChoice -> ArrayChoice
arr [Word64
0 Word64 -> ArrayEntry -> ArrayEntry
forall a. CanQuantify a => Word64 -> a -> a
<+ Rule -> ArrayEntry
forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e
a (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_witness_set" Proxy ShelleyEra
p)]
, Key
"transaction_metadata_set"
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 (forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"transaction_index" Proxy ShelleyEra
p) Key -> Rule -> MapEntry
forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me
==> forall (name :: Symbol) era.
HuddleRule name era =>
Proxy era -> Rule
huddleRule @"metadata" Proxy ShelleyEra
p
]
]
instance HuddleRule1 "set" ShelleyEra where
huddleRule1Named :: forall a.
IsType0 a =>
Proxy "set" -> Proxy ShelleyEra -> a -> GRuleCall
huddleRule1Named Proxy "set"
pname Proxy ShelleyEra
_ = Proxy "set" -> a -> GRuleCall
forall a. IsType0 a => Proxy "set" -> a -> GRuleCall
untaggedSet Proxy "set"
pname