{-# 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.Mary.HuddleSpec ( module Cardano.Ledger.Allegra.HuddleSpec, MaryEra, maryCDDL, maryMultiasset, maryValueRule, maryMintRule, assetNameRule, ) where import Cardano.Ledger.Allegra.HuddleSpec import Cardano.Ledger.Mary (MaryEra) import Data.Proxy (Proxy (..)) import Data.Word (Word64) import Prelude hiding ((/)) maryCDDL :: Huddle maryCDDL :: Huddle maryCDDL = [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 @MaryEra) , 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 @MaryEra) , 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 @"policy_id" (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @MaryEra) , 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 @"asset_name" (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @MaryEra) ] maryMultiasset :: forall era a. (HuddleRule "policy_id" era, HuddleRule "asset_name" era, IsType0 a) => Proxy "multiasset" -> Proxy era -> a -> GRuleCall maryMultiasset :: forall era a. (HuddleRule "policy_id" era, HuddleRule "asset_name" era, IsType0 a) => Proxy "multiasset" -> Proxy era -> a -> GRuleCall maryMultiasset Proxy "multiasset" pname Proxy era p = (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 "multiasset" pname Proxy "multiasset" -> 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 @"policy_id" Proxy era p) Key -> MapChoice -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> MapChoice -> MapChoice mp [Word64 1 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 @"asset_name" Proxy era p) Key -> GRef -> MapEntry forall a me. (IsType0 a, IsEntryLike me) => Key -> a -> me ==> GRef x] ] maryValueRule :: forall era. HuddleRule1 "multiasset" era => Proxy "value" -> Proxy era -> Rule maryValueRule :: forall era. HuddleRule1 "multiasset" era => Proxy "value" -> Proxy era -> Rule maryValueRule Proxy "value" pname Proxy era p = Proxy "value" pname Proxy "value" -> Choice Type2 -> Rule forall (name :: Symbol) t. (KnownSymbol name, IsType0 t) => Proxy name -> t -> Rule =.= forall (name :: Symbol) era. HuddleRule name era => Proxy era -> Rule huddleRule @"coin" Proxy era p Rule -> Seal Array -> Choice Type2 forall a c b. (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c / ArrayChoice -> Seal Array sarr [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 @"coin" Proxy era p, GRuleCall -> Item ArrayChoice forall a e. (IsType0 a, IsGroupOrArrayEntry e) => a -> e a (GRuleCall -> Item ArrayChoice) -> GRuleCall -> Item ArrayChoice forall a b. (a -> b) -> a -> b $ forall (name :: Symbol) era a. (HuddleRule1 name era, IsType0 a) => Proxy era -> a -> GRuleCall huddleRule1 @"multiasset" Proxy era p Value Int VUInt] maryMintRule :: forall era. HuddleRule1 "multiasset" era => Proxy "mint" -> Proxy era -> Rule maryMintRule :: forall era. HuddleRule1 "multiasset" era => Proxy "mint" -> Proxy era -> Rule maryMintRule Proxy "mint" pname Proxy era p = Proxy "mint" pname Proxy "mint" -> GRuleCall -> Rule forall (name :: Symbol) t. (KnownSymbol name, IsType0 t) => Proxy name -> t -> Rule =.= forall (name :: Symbol) era a. (HuddleRule1 name era, IsType0 a) => Proxy era -> a -> GRuleCall huddleRule1 @"multiasset" Proxy era p (forall (name :: Symbol) era. HuddleRule name era => Proxy era -> Rule huddleRule @"int64" Proxy era p) assetNameRule :: Proxy "asset_name" -> Rule assetNameRule :: Proxy "asset_name" -> Rule assetNameRule Proxy "asset_name" pname = Proxy "asset_name" pname Proxy "asset_name" -> Constrained -> Rule forall (name :: Symbol) t. (KnownSymbol name, IsType0 t) => Proxy name -> t -> Rule =.= Value ByteString VBytes Value ByteString -> (Word64, Word64) -> Constrained forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained `sized` (Word64 0 :: Word64, Word64 32 :: Word64) instance HuddleRule "block" MaryEra where huddleRuleNamed :: Proxy "block" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "block" -> Proxy MaryEra -> Rule forall era. (HuddleRule "header" era, HuddleRule "transaction_body" era, HuddleRule "transaction_witness_set" era, HuddleRule "auxiliary_data" era) => Proxy "block" -> Proxy era -> Rule blockRule instance HuddleRule "transaction" MaryEra where huddleRuleNamed :: Proxy "transaction" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "transaction" -> Proxy MaryEra -> Rule forall era. (HuddleRule "transaction_body" era, HuddleRule "transaction_witness_set" era, HuddleRule "auxiliary_data" era) => Proxy "transaction" -> Proxy era -> Rule transactionRule instance HuddleRule "header" MaryEra where huddleRuleNamed :: Proxy "header" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "header" -> Proxy MaryEra -> Rule forall era. HuddleRule "header_body" era => Proxy "header" -> Proxy era -> Rule headerRule instance HuddleRule "header_body" MaryEra where huddleRuleNamed :: Proxy "header_body" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "header_body" -> Proxy MaryEra -> Rule forall era. (HuddleGroup "operational_cert" era, HuddleGroup "protocol_version" era) => Proxy "header_body" -> Proxy era -> Rule headerBodyRule instance HuddleGroup "protocol_version" MaryEra where huddleGroupNamed :: Proxy "protocol_version" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "protocol_version" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "major_protocol_version" era => Proxy "protocol_version" -> Proxy era -> GroupDef shelleyProtocolVersionGroup instance HuddleRule "major_protocol_version" MaryEra where huddleRuleNamed :: Proxy "major_protocol_version" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "major_protocol_version" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "major_protocol_version" -> Proxy era -> Rule majorProtocolVersionRule instance HuddleRule "transaction_id" MaryEra where huddleRuleNamed :: Proxy "transaction_id" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "transaction_id" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "transaction_id" -> Proxy era -> Rule transactionIdRule instance HuddleRule "transaction_input" MaryEra where huddleRuleNamed :: Proxy "transaction_input" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "transaction_input" -> Proxy MaryEra -> Rule forall era. HuddleRule "transaction_id" era => Proxy "transaction_input" -> Proxy era -> Rule transactionInputRule instance HuddleGroup "operational_cert" MaryEra where huddleGroupNamed :: Proxy "operational_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "operational_cert" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "operational_cert" -> Proxy era -> GroupDef shelleyOperationalCertGroup instance HuddleRule "vkeywitness" MaryEra where huddleRuleNamed :: Proxy "vkeywitness" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "vkeywitness" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "vkeywitness" -> Proxy era -> Rule vkeywitnessRule instance HuddleRule "bootstrap_witness" MaryEra where huddleRuleNamed :: Proxy "bootstrap_witness" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "bootstrap_witness" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "bootstrap_witness" -> Proxy era -> Rule bootstrapWitnessRule instance HuddleRule "transaction_witness_set" MaryEra where huddleRuleNamed :: Proxy "transaction_witness_set" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "transaction_witness_set" -> Proxy MaryEra -> Rule forall era. (HuddleRule "vkeywitness" era, HuddleRule "native_script" era, HuddleRule "bootstrap_witness" era) => Proxy "transaction_witness_set" -> Proxy era -> Rule transactionWitnessSetRule instance HuddleRule "withdrawals" MaryEra where huddleRuleNamed :: Proxy "withdrawals" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "withdrawals" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "withdrawals" -> Proxy era -> Rule shelleyWithdrawalsRule instance HuddleRule "certificate" MaryEra where huddleRuleNamed :: Proxy "certificate" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "certificate" -> Proxy MaryEra -> 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 HuddleGroup "account_registration_cert" MaryEra where huddleGroupNamed :: Proxy "account_registration_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "account_registration_cert" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "account_registration_cert" -> Proxy era -> GroupDef accountRegistrationCertGroup instance HuddleGroup "account_unregistration_cert" MaryEra where huddleGroupNamed :: Proxy "account_unregistration_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "account_unregistration_cert" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "account_unregistration_cert" -> Proxy era -> GroupDef accountUnregistrationCertGroup instance HuddleGroup "delegation_to_stake_pool_cert" MaryEra where huddleGroupNamed :: Proxy "delegation_to_stake_pool_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "delegation_to_stake_pool_cert" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "delegation_to_stake_pool_cert" -> Proxy era -> GroupDef delegationToStakePoolCertGroup instance HuddleGroup "pool_registration_cert" MaryEra where huddleGroupNamed :: Proxy "pool_registration_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "pool_registration_cert" -> Proxy MaryEra -> GroupDef forall era. HuddleGroup "pool_params" era => Proxy "pool_registration_cert" -> Proxy era -> GroupDef poolRegistrationCertGroup instance HuddleGroup "pool_retirement_cert" MaryEra where huddleGroupNamed :: Proxy "pool_retirement_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "pool_retirement_cert" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "pool_retirement_cert" -> Proxy era -> GroupDef poolRetirementCertGroup instance HuddleGroup "genesis_delegation_cert" MaryEra where huddleGroupNamed :: Proxy "genesis_delegation_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "genesis_delegation_cert" -> Proxy MaryEra -> GroupDef forall era. (HuddleRule "genesis_hash" era, HuddleRule "genesis_delegate_hash" era) => Proxy "genesis_delegation_cert" -> Proxy era -> GroupDef genesisDelegationCertGroup instance HuddleGroup "move_instantaneous_rewards_cert" MaryEra where huddleGroupNamed :: Proxy "move_instantaneous_rewards_cert" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "move_instantaneous_rewards_cert" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "move_instantaneous_reward" era => Proxy "move_instantaneous_rewards_cert" -> Proxy era -> GroupDef moveInstantaneousRewardsCertGroup instance HuddleRule "genesis_hash" MaryEra where huddleRuleNamed :: Proxy "genesis_hash" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "genesis_hash" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "genesis_hash" -> Proxy era -> Rule genesisHashRule instance HuddleRule "genesis_delegate_hash" MaryEra where huddleRuleNamed :: Proxy "genesis_delegate_hash" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "genesis_delegate_hash" -> Proxy MaryEra -> Rule forall era. Era era => Proxy "genesis_delegate_hash" -> Proxy era -> Rule genesisDelegateHashRule instance HuddleRule "delta_coin" MaryEra where huddleRuleNamed :: Proxy "delta_coin" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "delta_coin" pname Proxy MaryEra _ = Proxy "delta_coin" -> Rule deltaCoinRule Proxy "delta_coin" pname instance HuddleRule "move_instantaneous_reward" MaryEra where huddleRuleNamed :: Proxy "move_instantaneous_reward" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "move_instantaneous_reward" -> Proxy MaryEra -> Rule forall era. HuddleRule "delta_coin" era => Proxy "move_instantaneous_reward" -> Proxy era -> Rule moveInstantaneousRewardRule instance HuddleGroup "pool_params" MaryEra where huddleGroupNamed :: Proxy "pool_params" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "pool_params" -> Proxy MaryEra -> GroupDef forall era. (HuddleRule "relay" era, HuddleRule "pool_metadata" era, HuddleRule1 "set" era) => Proxy "pool_params" -> Proxy era -> GroupDef poolParamsGroup instance HuddleRule "pool_metadata" MaryEra where huddleRuleNamed :: Proxy "pool_metadata" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "pool_metadata" -> Proxy MaryEra -> Rule forall era. HuddleRule "url" era => Proxy "pool_metadata" -> Proxy era -> Rule poolMetadataRule instance HuddleRule "dns_name" MaryEra where huddleRuleNamed :: Proxy "dns_name" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "dns_name" pname Proxy MaryEra _ = Proxy "dns_name" -> Rule dnsNameRule Proxy "dns_name" pname instance HuddleRule "url" MaryEra where huddleRuleNamed :: Proxy "url" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "url" pname Proxy MaryEra _ = Proxy "url" -> Rule urlRule Proxy "url" pname instance HuddleGroup "single_host_addr" MaryEra where huddleGroupNamed :: Proxy "single_host_addr" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "single_host_addr" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "single_host_addr" -> Proxy era -> GroupDef singleHostAddrGroup instance HuddleGroup "single_host_name" MaryEra where huddleGroupNamed :: Proxy "single_host_name" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "single_host_name" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "dns_name" era => Proxy "single_host_name" -> Proxy era -> GroupDef singleHostNameGroup instance HuddleGroup "multi_host_name" MaryEra where huddleGroupNamed :: Proxy "multi_host_name" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "multi_host_name" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "dns_name" era => Proxy "multi_host_name" -> Proxy era -> GroupDef multiHostNameGroup instance HuddleRule "relay" MaryEra where huddleRuleNamed :: Proxy "relay" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "relay" -> Proxy MaryEra -> 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 HuddleRule "protocol_param_update" MaryEra where huddleRuleNamed :: Proxy "protocol_param_update" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "protocol_param_update" -> Proxy MaryEra -> Rule forall era. HuddleGroup "protocol_version" era => Proxy "protocol_param_update" -> Proxy era -> Rule protocolParamUpdateRule instance HuddleRule "proposed_protocol_parameter_updates" MaryEra where huddleRuleNamed :: Proxy "proposed_protocol_parameter_updates" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "proposed_protocol_parameter_updates" -> Proxy MaryEra -> Rule forall era. (HuddleRule "genesis_hash" era, HuddleRule "protocol_param_update" era) => Proxy "proposed_protocol_parameter_updates" -> Proxy era -> Rule proposedProtocolParameterUpdatesRule instance HuddleRule "update" MaryEra where huddleRuleNamed :: Proxy "update" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "update" -> Proxy MaryEra -> Rule forall era. HuddleRule "proposed_protocol_parameter_updates" era => Proxy "update" -> Proxy era -> Rule updateRule instance HuddleGroup "script_pubkey" MaryEra where huddleGroupNamed :: Proxy "script_pubkey" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_pubkey" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "script_pubkey" -> Proxy era -> GroupDef scriptPubkeyGroup instance HuddleGroup "script_all" MaryEra where huddleGroupNamed :: Proxy "script_all" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_all" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "native_script" era => Proxy "script_all" -> Proxy era -> GroupDef scriptAllGroup instance HuddleGroup "script_any" MaryEra where huddleGroupNamed :: Proxy "script_any" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_any" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "native_script" era => Proxy "script_any" -> Proxy era -> GroupDef scriptAnyGroup instance HuddleGroup "script_n_of_k" MaryEra where huddleGroupNamed :: Proxy "script_n_of_k" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_n_of_k" -> Proxy MaryEra -> GroupDef forall era. HuddleRule "native_script" era => Proxy "script_n_of_k" -> Proxy era -> GroupDef scriptNOfKGroup instance HuddleGroup "script_invalid_before" MaryEra where huddleGroupNamed :: Proxy "script_invalid_before" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_invalid_before" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "script_invalid_before" -> Proxy era -> GroupDef scriptInvalidBeforeGroup instance HuddleGroup "script_invalid_hereafter" MaryEra where huddleGroupNamed :: Proxy "script_invalid_hereafter" -> Proxy MaryEra -> GroupDef huddleGroupNamed = Proxy "script_invalid_hereafter" -> Proxy MaryEra -> GroupDef forall era. Era era => Proxy "script_invalid_hereafter" -> Proxy era -> GroupDef scriptInvalidHereafterGroup instance HuddleRule "native_script" MaryEra where huddleRuleNamed :: Proxy "native_script" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "native_script" -> Proxy MaryEra -> Rule forall era. (HuddleGroup "script_pubkey" era, HuddleGroup "script_all" era, HuddleGroup "script_any" era, HuddleGroup "script_n_of_k" era, HuddleGroup "script_invalid_before" era, HuddleGroup "script_invalid_hereafter" era) => Proxy "native_script" -> Proxy era -> Rule nativeScriptRule instance HuddleRule "transaction_body" MaryEra where huddleRuleNamed :: Proxy "transaction_body" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "transaction_body" pname Proxy MaryEra 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 MaryEra p (forall (name :: Symbol) era. HuddleRule name era => Proxy era -> Rule huddleRule @"transaction_input" Proxy MaryEra 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 MaryEra 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 MaryEra p , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (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 MaryEra 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 MaryEra 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 MaryEra 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 MaryEra 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 MaryEra p) , MapEntry -> MapEntry forall a. CanQuantify a => a -> a opt (Word64 -> Key idx Word64 8 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 MaryEra p) , 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 @"mint" Proxy MaryEra p) ] instance HuddleRule "transaction_output" MaryEra where huddleRuleNamed :: Proxy "transaction_output" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "transaction_output" pname Proxy MaryEra 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 MaryEra 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 @"value" Proxy MaryEra p ] instance HuddleRule "value" MaryEra where huddleRuleNamed :: Proxy "value" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "value" -> Proxy MaryEra -> Rule forall era. HuddleRule1 "multiasset" era => Proxy "value" -> Proxy era -> Rule maryValueRule instance HuddleRule "policy_id" MaryEra where huddleRuleNamed :: Proxy "policy_id" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "policy_id" pname Proxy MaryEra p = Proxy "policy_id" pname Proxy "policy_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 @"script_hash" Proxy MaryEra p instance HuddleRule "asset_name" MaryEra where huddleRuleNamed :: Proxy "asset_name" -> Proxy MaryEra -> Rule huddleRuleNamed Proxy "asset_name" pname Proxy MaryEra _ = Proxy "asset_name" -> Rule assetNameRule Proxy "asset_name" pname instance HuddleRule "mint" MaryEra where huddleRuleNamed :: Proxy "mint" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "mint" -> Proxy MaryEra -> Rule forall era. HuddleRule1 "multiasset" era => Proxy "mint" -> Proxy era -> Rule maryMintRule instance HuddleRule "auxiliary_data" MaryEra where huddleRuleNamed :: Proxy "auxiliary_data" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "auxiliary_data" -> Proxy MaryEra -> Rule forall era. HuddleRule "auxiliary_data_array" era => Proxy "auxiliary_data" -> Proxy era -> Rule auxiliaryDataRule instance HuddleRule "auxiliary_data_array" MaryEra where huddleRuleNamed :: Proxy "auxiliary_data_array" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "auxiliary_data_array" -> Proxy MaryEra -> Rule forall era. HuddleRule "auxiliary_scripts" era => Proxy "auxiliary_data_array" -> Proxy era -> Rule auxiliaryDataArrayRule instance HuddleRule "auxiliary_scripts" MaryEra where huddleRuleNamed :: Proxy "auxiliary_scripts" -> Proxy MaryEra -> Rule huddleRuleNamed = Proxy "auxiliary_scripts" -> Proxy MaryEra -> Rule forall era. HuddleRule "native_script" era => Proxy "auxiliary_scripts" -> Proxy era -> Rule auxiliaryScriptsRule instance HuddleRule1 "set" MaryEra where huddleRule1Named :: forall a. IsType0 a => Proxy "set" -> Proxy MaryEra -> a -> GRuleCall huddleRule1Named Proxy "set" pname Proxy MaryEra _ = Proxy "set" -> a -> GRuleCall forall a. IsType0 a => Proxy "set" -> a -> GRuleCall untaggedSet Proxy "set" pname instance HuddleRule1 "multiasset" MaryEra where huddleRule1Named :: forall a. IsType0 a => Proxy "multiasset" -> Proxy MaryEra -> a -> GRuleCall huddleRule1Named = Proxy "multiasset" -> Proxy MaryEra -> a -> GRuleCall forall era a. (HuddleRule "policy_id" era, HuddleRule "asset_name" era, IsType0 a) => Proxy "multiasset" -> Proxy era -> a -> GRuleCall maryMultiasset