#[allow(dead_code, unused_imports, non_camel_case_types, unreachable_patterns)]
#[allow(clippy::all)]
#[allow(rustdoc::broken_intra_doc_links)]
pub mod api {
    #[allow(unused_imports)]
    mod root_mod {
        pub use super::*;
    }
    pub static PALLETS: [&str; 68usize] = [
        "System",
        "Babe",
        "Timestamp",
        "Indices",
        "Balances",
        "Parameters",
        "TransactionPayment",
        "Authorship",
        "Offences",
        "Historical",
        "Session",
        "Grandpa",
        "AuthorityDiscovery",
        "Treasury",
        "ConvictionVoting",
        "Referenda",
        "FellowshipCollective",
        "FellowshipReferenda",
        "Origins",
        "Whitelist",
        "Claims",
        "Utility",
        "Identity",
        "Society",
        "Recovery",
        "Vesting",
        "Scheduler",
        "Proxy",
        "Multisig",
        "Preimage",
        "AssetRate",
        "Bounties",
        "ChildBounties",
        "Nis",
        "NisCounterpartBalances",
        "ParachainsOrigin",
        "Configuration",
        "ParasShared",
        "ParaInclusion",
        "ParaInherent",
        "ParaScheduler",
        "Paras",
        "Initializer",
        "Dmp",
        "Hrmp",
        "ParaSessionInfo",
        "ParasDisputes",
        "ParasSlashing",
        "MessageQueue",
        "OnDemandAssignmentProvider",
        "CoretimeAssignmentProvider",
        "Registrar",
        "Slots",
        "Auctions",
        "Crowdloan",
        "Coretime",
        "MultiBlockMigrations",
        "XcmPallet",
        "Beefy",
        "Mmr",
        "MmrLeaf",
        "IdentityMigrator",
        "ParasSudoWrapper",
        "AssignedSlots",
        "ValidatorManager",
        "StateTrieMigration",
        "RootTesting",
        "Sudo",
    ];
    pub static RUNTIME_APIS: [&str; 20usize] = [
        "Core",
        "XcmPaymentApi",
        "DryRunApi",
        "LocationToAccountApi",
        "Metadata",
        "BlockBuilder",
        "TaggedTransactionQueue",
        "OffchainWorkerApi",
        "ParachainHost",
        "BeefyApi",
        "MmrApi",
        "GrandpaApi",
        "BabeApi",
        "AuthorityDiscoveryApi",
        "SessionKeys",
        "AccountNonceApi",
        "TransactionPaymentApi",
        "BeefyMmrApi",
        "GenesisBuilder",
        "TrustedQueryApi",
    ];
    #[doc = r" The error type that is returned when there is a runtime issue."]
    pub type DispatchError = runtime_types::sp_runtime::DispatchError;
    #[doc = r" The outer event enum."]
    pub type Event = runtime_types::rococo_runtime::RuntimeEvent;
    #[doc = r" The outer extrinsic enum."]
    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
    #[doc = r" The outer error enum represents the DispatchError's Module variant."]
    pub type Error = runtime_types::rococo_runtime::RuntimeError;
    pub fn constants() -> ConstantsApi {
        ConstantsApi
    }
    pub fn storage() -> StorageApi {
        StorageApi
    }
    pub fn tx() -> TransactionApi {
        TransactionApi
    }
    pub fn apis() -> runtime_apis::RuntimeApi {
        runtime_apis::RuntimeApi
    }
    pub mod runtime_apis {
        use super::root_mod;
        use super::runtime_types;
        use subxt::ext::subxt_core::ext::codec::Encode;
        pub struct RuntimeApi;
        impl RuntimeApi {
            pub fn core(&self) -> core::Core {
                core::Core
            }
            pub fn xcm_payment_api(&self) -> xcm_payment_api::XcmPaymentApi {
                xcm_payment_api::XcmPaymentApi
            }
            pub fn dry_run_api(&self) -> dry_run_api::DryRunApi {
                dry_run_api::DryRunApi
            }
            pub fn location_to_account_api(&self) -> location_to_account_api::LocationToAccountApi {
                location_to_account_api::LocationToAccountApi
            }
            pub fn metadata(&self) -> metadata::Metadata {
                metadata::Metadata
            }
            pub fn block_builder(&self) -> block_builder::BlockBuilder {
                block_builder::BlockBuilder
            }
            pub fn tagged_transaction_queue(
                &self,
            ) -> tagged_transaction_queue::TaggedTransactionQueue {
                tagged_transaction_queue::TaggedTransactionQueue
            }
            pub fn offchain_worker_api(&self) -> offchain_worker_api::OffchainWorkerApi {
                offchain_worker_api::OffchainWorkerApi
            }
            pub fn parachain_host(&self) -> parachain_host::ParachainHost {
                parachain_host::ParachainHost
            }
            pub fn beefy_api(&self) -> beefy_api::BeefyApi {
                beefy_api::BeefyApi
            }
            pub fn mmr_api(&self) -> mmr_api::MmrApi {
                mmr_api::MmrApi
            }
            pub fn grandpa_api(&self) -> grandpa_api::GrandpaApi {
                grandpa_api::GrandpaApi
            }
            pub fn babe_api(&self) -> babe_api::BabeApi {
                babe_api::BabeApi
            }
            pub fn authority_discovery_api(
                &self,
            ) -> authority_discovery_api::AuthorityDiscoveryApi {
                authority_discovery_api::AuthorityDiscoveryApi
            }
            pub fn session_keys(&self) -> session_keys::SessionKeys {
                session_keys::SessionKeys
            }
            pub fn account_nonce_api(&self) -> account_nonce_api::AccountNonceApi {
                account_nonce_api::AccountNonceApi
            }
            pub fn transaction_payment_api(
                &self,
            ) -> transaction_payment_api::TransactionPaymentApi {
                transaction_payment_api::TransactionPaymentApi
            }
            pub fn beefy_mmr_api(&self) -> beefy_mmr_api::BeefyMmrApi {
                beefy_mmr_api::BeefyMmrApi
            }
            pub fn genesis_builder(&self) -> genesis_builder::GenesisBuilder {
                genesis_builder::GenesisBuilder
            }
            pub fn trusted_query_api(&self) -> trusted_query_api::TrustedQueryApi {
                trusted_query_api::TrustedQueryApi
            }
        }
        pub mod core {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The `Core` runtime api that every Substrate runtime needs to implement."]
            pub struct Core;
            impl Core {
                #[doc = " Returns the version of the runtime."]
                pub fn version(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Version,
                    types::version::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Core",
                        "version",
                        types::Version {},
                        [
                            79u8, 22u8, 137u8, 4u8, 40u8, 64u8, 30u8, 180u8, 49u8, 222u8, 114u8,
                            125u8, 44u8, 25u8, 33u8, 152u8, 98u8, 42u8, 72u8, 178u8, 240u8, 103u8,
                            34u8, 187u8, 81u8, 161u8, 183u8, 6u8, 120u8, 2u8, 146u8, 0u8,
                        ],
                    )
                }
                #[doc = " Execute the given block."]
                pub fn execute_block(
                    &self,
                    block: types::execute_block::Block,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ExecuteBlock,
                    types::execute_block::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Core",
                        "execute_block",
                        types::ExecuteBlock { block },
                        [
                            133u8, 135u8, 228u8, 65u8, 106u8, 27u8, 85u8, 158u8, 112u8, 254u8,
                            93u8, 26u8, 102u8, 201u8, 118u8, 216u8, 249u8, 247u8, 91u8, 74u8, 56u8,
                            208u8, 231u8, 115u8, 131u8, 29u8, 209u8, 6u8, 65u8, 57u8, 214u8, 125u8,
                        ],
                    )
                }
                #[doc = " Initialize a block with the given header and return the runtime executive mode."]
                pub fn initialize_block(
                    &self,
                    header: types::initialize_block::Header,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::InitializeBlock,
                    types::initialize_block::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Core",
                        "initialize_block",
                        types::InitializeBlock { header },
                        [
                            132u8, 169u8, 113u8, 112u8, 80u8, 139u8, 113u8, 35u8, 41u8, 81u8, 36u8,
                            35u8, 37u8, 202u8, 29u8, 207u8, 205u8, 229u8, 145u8, 7u8, 133u8, 94u8,
                            25u8, 108u8, 233u8, 86u8, 234u8, 29u8, 236u8, 57u8, 56u8, 186u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod version {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_version::RuntimeVersion;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Version {}
                pub mod execute_block {
                    use super::runtime_types;
                    pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > > ;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ();
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ExecuteBlock {
                    pub block: execute_block::Block,
                }
                pub mod initialize_block {
                    use super::runtime_types;
                    pub type Header =
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_runtime::ExtrinsicInclusionMode;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InitializeBlock {
                    pub header: initialize_block::Header,
                }
            }
        }
        pub mod xcm_payment_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " A trait of XCM payment API."]
            #[doc = ""]
            #[doc = " API provides functionality for obtaining:"]
            #[doc = ""]
            #[doc = " * the weight required to execute an XCM message,"]
            #[doc = " * a list of acceptable `AssetId`s for message execution payment,"]
            #[doc = " * the cost of the weight in the specified acceptable `AssetId`."]
            #[doc = " * the fees for an XCM message delivery."]
            #[doc = ""]
            #[doc = " To determine the execution weight of the calls required for"]
            #[doc = " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used."]
            pub struct XcmPaymentApi;
            impl XcmPaymentApi {
                #[doc = " Returns a list of acceptable payment assets."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = ""]
                #[doc = " * `xcm_version`: Version."]
                pub fn query_acceptable_payment_assets(
                    &self,
                    xcm_version: types::query_acceptable_payment_assets::XcmVersion,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryAcceptablePaymentAssets,
                    types::query_acceptable_payment_assets::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "XcmPaymentApi",
                        "query_acceptable_payment_assets",
                        types::QueryAcceptablePaymentAssets { xcm_version },
                        [
                            29u8, 81u8, 159u8, 80u8, 29u8, 95u8, 91u8, 180u8, 135u8, 23u8, 106u8,
                            224u8, 21u8, 102u8, 89u8, 89u8, 23u8, 72u8, 125u8, 136u8, 144u8, 136u8,
                            96u8, 224u8, 207u8, 197u8, 111u8, 238u8, 3u8, 46u8, 162u8, 78u8,
                        ],
                    )
                }
                #[doc = " Returns a weight needed to execute a XCM."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = ""]
                #[doc = " * `message`: `VersionedXcm`."]
                pub fn query_xcm_weight(
                    &self,
                    message: types::query_xcm_weight::Message,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryXcmWeight,
                    types::query_xcm_weight::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "XcmPaymentApi",
                        "query_xcm_weight",
                        types::QueryXcmWeight { message },
                        [
                            210u8, 246u8, 6u8, 74u8, 134u8, 215u8, 196u8, 176u8, 38u8, 218u8,
                            239u8, 142u8, 11u8, 235u8, 204u8, 218u8, 123u8, 66u8, 106u8, 60u8,
                            110u8, 100u8, 28u8, 124u8, 48u8, 26u8, 115u8, 68u8, 86u8, 117u8, 10u8,
                            73u8,
                        ],
                    )
                }
                #[doc = " Converts a weight into a fee for the specified `AssetId`."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = ""]
                #[doc = " * `weight`: convertible `Weight`."]
                #[doc = " * `asset`: `VersionedAssetId`."]
                pub fn query_weight_to_asset_fee(
                    &self,
                    weight: types::query_weight_to_asset_fee::Weight,
                    asset: types::query_weight_to_asset_fee::Asset,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryWeightToAssetFee,
                    types::query_weight_to_asset_fee::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "XcmPaymentApi",
                        "query_weight_to_asset_fee",
                        types::QueryWeightToAssetFee { weight, asset },
                        [
                            170u8, 180u8, 252u8, 70u8, 130u8, 183u8, 254u8, 104u8, 112u8, 235u8,
                            227u8, 117u8, 29u8, 40u8, 30u8, 158u8, 149u8, 222u8, 126u8, 30u8, 2u8,
                            107u8, 177u8, 35u8, 13u8, 203u8, 148u8, 83u8, 83u8, 74u8, 242u8, 210u8,
                        ],
                    )
                }
                #[doc = " Get delivery fees for sending a specific `message` to a `destination`."]
                #[doc = " These always come in a specific asset, defined by the chain."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = " * `message`: The message that'll be sent, necessary because most delivery fees are based on the"]
                #[doc = "   size of the message."]
                #[doc = " * `destination`: The destination to send the message to. Different destinations may use"]
                #[doc = "   different senders that charge different fees."]
                pub fn query_delivery_fees(
                    &self,
                    destination: types::query_delivery_fees::Destination,
                    message: types::query_delivery_fees::Message,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryDeliveryFees,
                    types::query_delivery_fees::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "XcmPaymentApi",
                        "query_delivery_fees",
                        types::QueryDeliveryFees {
                            destination,
                            message,
                        },
                        [
                            102u8, 222u8, 158u8, 11u8, 13u8, 250u8, 188u8, 33u8, 75u8, 84u8, 128u8,
                            20u8, 186u8, 211u8, 253u8, 108u8, 133u8, 71u8, 236u8, 158u8, 147u8,
                            77u8, 227u8, 213u8, 167u8, 23u8, 152u8, 144u8, 48u8, 17u8, 105u8,
                            183u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod query_acceptable_payment_assets {
                    use super::runtime_types;
                    pub type XcmVersion = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                runtime_types::xcm::VersionedAssetId,
                            >,
                            runtime_types::xcm_runtime_apis::fees::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryAcceptablePaymentAssets {
                    pub xcm_version: query_acceptable_payment_assets::XcmVersion,
                }
                pub mod query_xcm_weight {
                    use super::runtime_types;
                    pub type Message = runtime_types::xcm::VersionedXcm;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            runtime_types::sp_weights::weight_v2::Weight,
                            runtime_types::xcm_runtime_apis::fees::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryXcmWeight {
                    pub message: query_xcm_weight::Message,
                }
                pub mod query_weight_to_asset_fee {
                    use super::runtime_types;
                    pub type Weight = runtime_types::sp_weights::weight_v2::Weight;
                    pub type Asset = runtime_types::xcm::VersionedAssetId;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::core::primitive::u128,
                            runtime_types::xcm_runtime_apis::fees::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryWeightToAssetFee {
                    pub weight: query_weight_to_asset_fee::Weight,
                    pub asset: query_weight_to_asset_fee::Asset,
                }
                pub mod query_delivery_fees {
                    use super::runtime_types;
                    pub type Destination = runtime_types::xcm::VersionedLocation;
                    pub type Message = runtime_types::xcm::VersionedXcm;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            runtime_types::xcm::VersionedAssets,
                            runtime_types::xcm_runtime_apis::fees::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryDeliveryFees {
                    pub destination: query_delivery_fees::Destination,
                    pub message: query_delivery_fees::Message,
                }
            }
        }
        pub mod dry_run_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API."]
            #[doc = ""]
            #[doc = " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\"."]
            #[doc = " If there's local execution, the location will be \"Here\"."]
            #[doc = " This vector can be used to calculate both execution and delivery fees."]
            #[doc = ""]
            #[doc = " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`."]
            #[doc = " In those cases, there might still be a valid result, with the execution error inside it."]
            #[doc = " The only reasons why these calls might return an error are listed in the [`Error`] enum."]
            pub struct DryRunApi;
            impl DryRunApi {
                #[doc = " Dry run call V2."]
                pub fn dry_run_call(
                    &self,
                    origin: types::dry_run_call::Origin,
                    call: types::dry_run_call::Call,
                    result_xcms_version: types::dry_run_call::ResultXcmsVersion,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::DryRunCall,
                    types::dry_run_call::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "DryRunApi",
                        "dry_run_call",
                        types::DryRunCall {
                            origin,
                            call,
                            result_xcms_version,
                        },
                        [
                            102u8, 87u8, 8u8, 106u8, 72u8, 124u8, 83u8, 137u8, 248u8, 102u8, 30u8,
                            147u8, 84u8, 96u8, 22u8, 37u8, 113u8, 76u8, 5u8, 126u8, 198u8, 221u8,
                            42u8, 57u8, 62u8, 95u8, 249u8, 56u8, 11u8, 227u8, 36u8, 199u8,
                        ],
                    )
                }
                #[doc = " Dry run XCM program"]
                pub fn dry_run_xcm(
                    &self,
                    origin_location: types::dry_run_xcm::OriginLocation,
                    xcm: types::dry_run_xcm::Xcm,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::DryRunXcm,
                    types::dry_run_xcm::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "DryRunApi",
                        "dry_run_xcm",
                        types::DryRunXcm {
                            origin_location,
                            xcm,
                        },
                        [
                            207u8, 156u8, 37u8, 92u8, 18u8, 49u8, 3u8, 31u8, 153u8, 59u8, 131u8,
                            46u8, 75u8, 253u8, 233u8, 51u8, 162u8, 101u8, 86u8, 251u8, 57u8, 194u8,
                            87u8, 161u8, 167u8, 27u8, 202u8, 71u8, 196u8, 22u8, 191u8, 159u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod dry_run_call {
                    use super::runtime_types;
                    pub type Origin = runtime_types::rococo_runtime::OriginCaller;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                    pub type ResultXcmsVersion = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            runtime_types::xcm_runtime_apis::dry_run::CallDryRunEffects<
                                runtime_types::rococo_runtime::RuntimeEvent,
                            >,
                            runtime_types::xcm_runtime_apis::dry_run::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DryRunCall {
                    pub origin: dry_run_call::Origin,
                    pub call: dry_run_call::Call,
                    pub result_xcms_version: dry_run_call::ResultXcmsVersion,
                }
                pub mod dry_run_xcm {
                    use super::runtime_types;
                    pub type OriginLocation = runtime_types::xcm::VersionedLocation;
                    pub type Xcm = runtime_types::xcm::VersionedXcm;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            runtime_types::xcm_runtime_apis::dry_run::XcmDryRunEffects<
                                runtime_types::rococo_runtime::RuntimeEvent,
                            >,
                            runtime_types::xcm_runtime_apis::dry_run::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DryRunXcm {
                    pub origin_location: dry_run_xcm::OriginLocation,
                    pub xcm: dry_run_xcm::Xcm,
                }
            }
        }
        pub mod location_to_account_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API for useful conversions between XCM `Location` and `AccountId`."]
            pub struct LocationToAccountApi;
            impl LocationToAccountApi {
                #[doc = " Converts `Location` to `AccountId`."]
                pub fn convert_location(
                    &self,
                    location: types::convert_location::Location,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ConvertLocation,
                    types::convert_location::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "LocationToAccountApi",
                        "convert_location",
                        types::ConvertLocation { location },
                        [
                            179u8, 162u8, 1u8, 26u8, 111u8, 211u8, 90u8, 95u8, 137u8, 123u8, 87u8,
                            117u8, 40u8, 105u8, 246u8, 228u8, 103u8, 128u8, 236u8, 197u8, 187u8,
                            234u8, 126u8, 122u8, 89u8, 135u8, 132u8, 148u8, 136u8, 31u8, 129u8,
                            230u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod convert_location {
                    use super::runtime_types;
                    pub type Location = runtime_types::xcm::VersionedLocation;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            runtime_types::xcm_runtime_apis::conversions::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ConvertLocation {
                    pub location: convert_location::Location,
                }
            }
        }
        pub mod metadata {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The `Metadata` api trait that returns metadata for the runtime."]
            pub struct Metadata;
            impl Metadata {
                #[doc = " Returns the metadata of a runtime."]
                pub fn metadata(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Metadata,
                    types::metadata::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Metadata",
                        "metadata",
                        types::Metadata {},
                        [
                            231u8, 24u8, 67u8, 152u8, 23u8, 26u8, 188u8, 82u8, 229u8, 6u8, 185u8,
                            27u8, 175u8, 68u8, 83u8, 122u8, 69u8, 89u8, 185u8, 74u8, 248u8, 87u8,
                            217u8, 124u8, 193u8, 252u8, 199u8, 186u8, 196u8, 179u8, 179u8, 96u8,
                        ],
                    )
                }
                #[doc = " Returns the metadata at a given version."]
                #[doc = ""]
                #[doc = " If the given `version` isn't supported, this will return `None`."]
                #[doc = " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime."]
                pub fn metadata_at_version(
                    &self,
                    version: types::metadata_at_version::Version,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::MetadataAtVersion,
                    types::metadata_at_version::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Metadata",
                        "metadata_at_version",
                        types::MetadataAtVersion { version },
                        [
                            131u8, 53u8, 212u8, 234u8, 16u8, 25u8, 120u8, 252u8, 153u8, 153u8,
                            216u8, 28u8, 54u8, 113u8, 52u8, 236u8, 146u8, 68u8, 142u8, 8u8, 10u8,
                            169u8, 131u8, 142u8, 204u8, 38u8, 48u8, 108u8, 134u8, 86u8, 226u8,
                            61u8,
                        ],
                    )
                }
                #[doc = " Returns the supported metadata versions."]
                #[doc = ""]
                #[doc = " This can be used to call `metadata_at_version`."]
                pub fn metadata_versions(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::MetadataVersions,
                    types::metadata_versions::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "Metadata",
                        "metadata_versions",
                        types::MetadataVersions {},
                        [
                            23u8, 144u8, 137u8, 91u8, 188u8, 39u8, 231u8, 208u8, 252u8, 218u8,
                            224u8, 176u8, 77u8, 32u8, 130u8, 212u8, 223u8, 76u8, 100u8, 190u8,
                            82u8, 94u8, 190u8, 8u8, 82u8, 244u8, 225u8, 179u8, 85u8, 176u8, 56u8,
                            16u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod metadata {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_core::OpaqueMetadata;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Metadata {}
                pub mod metadata_at_version {
                    use super::runtime_types;
                    pub type Version = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::option::Option<runtime_types::sp_core::OpaqueMetadata>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MetadataAtVersion {
                    pub version: metadata_at_version::Version,
                }
                pub mod metadata_versions {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u32>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MetadataVersions {}
            }
        }
        pub mod block_builder {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The `BlockBuilder` api trait that provides the required functionality for building a block."]
            pub struct BlockBuilder;
            impl BlockBuilder {
                #[doc = " Apply the given extrinsic."]
                #[doc = ""]
                #[doc = " Returns an inclusion outcome which specifies if this extrinsic is included in"]
                #[doc = " this block or not."]
                pub fn apply_extrinsic(
                    &self,
                    extrinsic: types::apply_extrinsic::Extrinsic,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ApplyExtrinsic,
                    types::apply_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BlockBuilder",
                        "apply_extrinsic",
                        types::ApplyExtrinsic { extrinsic },
                        [
                            192u8, 184u8, 199u8, 4u8, 85u8, 136u8, 214u8, 205u8, 29u8, 29u8, 98u8,
                            145u8, 172u8, 92u8, 168u8, 161u8, 150u8, 133u8, 100u8, 243u8, 100u8,
                            100u8, 118u8, 28u8, 104u8, 82u8, 93u8, 63u8, 79u8, 36u8, 149u8, 144u8,
                        ],
                    )
                }
                #[doc = " Finish the current block."]
                pub fn finalize_block(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::FinalizeBlock,
                    types::finalize_block::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BlockBuilder",
                        "finalize_block",
                        types::FinalizeBlock {},
                        [
                            244u8, 207u8, 24u8, 33u8, 13u8, 69u8, 9u8, 249u8, 145u8, 143u8, 122u8,
                            96u8, 197u8, 55u8, 64u8, 111u8, 238u8, 224u8, 34u8, 201u8, 27u8, 146u8,
                            232u8, 99u8, 191u8, 30u8, 114u8, 16u8, 32u8, 220u8, 58u8, 62u8,
                        ],
                    )
                }
                #[doc = " Generate inherent extrinsics. The inherent data will vary from chain to chain."]
                pub fn inherent_extrinsics(
                    &self,
                    inherent: types::inherent_extrinsics::Inherent,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::InherentExtrinsics,
                    types::inherent_extrinsics::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BlockBuilder",
                        "inherent_extrinsics",
                        types::InherentExtrinsics { inherent },
                        [
                            254u8, 110u8, 245u8, 201u8, 250u8, 192u8, 27u8, 228u8, 151u8, 213u8,
                            166u8, 89u8, 94u8, 81u8, 189u8, 234u8, 64u8, 18u8, 245u8, 80u8, 29u8,
                            18u8, 140u8, 129u8, 113u8, 236u8, 135u8, 55u8, 79u8, 159u8, 175u8,
                            183u8,
                        ],
                    )
                }
                #[doc = " Check that the inherents are valid. The inherent data will vary from chain to chain."]
                pub fn check_inherents(
                    &self,
                    block: types::check_inherents::Block,
                    data: types::check_inherents::Data,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CheckInherents,
                    types::check_inherents::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BlockBuilder",
                        "check_inherents",
                        types::CheckInherents { block, data },
                        [
                            153u8, 134u8, 1u8, 215u8, 139u8, 11u8, 53u8, 51u8, 210u8, 175u8, 197u8,
                            28u8, 38u8, 209u8, 175u8, 247u8, 142u8, 157u8, 50u8, 151u8, 164u8,
                            191u8, 181u8, 118u8, 80u8, 97u8, 160u8, 248u8, 110u8, 217u8, 181u8,
                            234u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod apply_extrinsic {
                    use super::runtime_types;
                    pub type Extrinsic = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > ;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: result :: Result < :: core :: result :: Result < () , runtime_types :: sp_runtime :: DispatchError > , runtime_types :: sp_runtime :: transaction_validity :: TransactionValidityError > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ApplyExtrinsic {
                    pub extrinsic: apply_extrinsic::Extrinsic,
                }
                pub mod finalize_block {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_runtime::generic::header::Header<
                            ::core::primitive::u32,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct FinalizeBlock {}
                pub mod inherent_extrinsics {
                    use super::runtime_types;
                    pub type Inherent = runtime_types::sp_inherents::InherentData;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InherentExtrinsics {
                    pub inherent: inherent_extrinsics::Inherent,
                }
                pub mod check_inherents {
                    use super::runtime_types;
                    pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > > ;
                    pub type Data = runtime_types::sp_inherents::InherentData;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_inherents::CheckInherentsResult;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CheckInherents {
                    pub block: check_inherents::Block,
                    pub data: check_inherents::Data,
                }
            }
        }
        pub mod tagged_transaction_queue {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The `TaggedTransactionQueue` api trait for interfering with the transaction queue."]
            pub struct TaggedTransactionQueue;
            impl TaggedTransactionQueue {
                #[doc = " Validate the transaction."]
                #[doc = ""]
                #[doc = " This method is invoked by the transaction pool to learn details about given transaction."]
                #[doc = " The implementation should make sure to verify the correctness of the transaction"]
                #[doc = " against current state. The given `block_hash` corresponds to the hash of the block"]
                #[doc = " that is used as current state."]
                #[doc = ""]
                #[doc = " Note that this call may be performed by the pool multiple times and transactions"]
                #[doc = " might be verified in any possible order."]
                pub fn validate_transaction(
                    &self,
                    source: types::validate_transaction::Source,
                    tx: types::validate_transaction::Tx,
                    block_hash: types::validate_transaction::BlockHash,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidateTransaction,
                    types::validate_transaction::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TaggedTransactionQueue",
                        "validate_transaction",
                        types::ValidateTransaction {
                            source,
                            tx,
                            block_hash,
                        },
                        [
                            19u8, 53u8, 170u8, 115u8, 75u8, 121u8, 231u8, 50u8, 199u8, 181u8,
                            243u8, 170u8, 163u8, 224u8, 213u8, 134u8, 206u8, 207u8, 88u8, 242u8,
                            80u8, 139u8, 233u8, 87u8, 175u8, 249u8, 178u8, 169u8, 255u8, 171u8,
                            4u8, 125u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod validate_transaction {
                    use super::runtime_types;
                    pub type Source =
                        runtime_types::sp_runtime::transaction_validity::TransactionSource;
                    pub type Tx = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > ;
                    pub type BlockHash = ::subxt::ext::subxt_core::utils::H256;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: result :: Result < runtime_types :: sp_runtime :: transaction_validity :: ValidTransaction , runtime_types :: sp_runtime :: transaction_validity :: TransactionValidityError > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidateTransaction {
                    pub source: validate_transaction::Source,
                    pub tx: validate_transaction::Tx,
                    pub block_hash: validate_transaction::BlockHash,
                }
            }
        }
        pub mod offchain_worker_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The offchain worker api."]
            pub struct OffchainWorkerApi;
            impl OffchainWorkerApi {
                #[doc = " Starts the off-chain task for given block header."]
                pub fn offchain_worker(
                    &self,
                    header: types::offchain_worker::Header,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::OffchainWorker,
                    types::offchain_worker::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "OffchainWorkerApi",
                        "offchain_worker",
                        types::OffchainWorker { header },
                        [
                            10u8, 135u8, 19u8, 153u8, 33u8, 216u8, 18u8, 242u8, 33u8, 140u8, 4u8,
                            223u8, 200u8, 130u8, 103u8, 118u8, 137u8, 24u8, 19u8, 127u8, 161u8,
                            29u8, 184u8, 111u8, 222u8, 111u8, 253u8, 73u8, 45u8, 31u8, 79u8, 60u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod offchain_worker {
                    use super::runtime_types;
                    pub type Header =
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ();
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OffchainWorker {
                    pub header: offchain_worker::Header,
                }
            }
        }
        pub mod parachain_host {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The API for querying the state of parachains on-chain."]
            pub struct ParachainHost;
            impl ParachainHost {
                #[doc = " Get the current validators."]
                pub fn validators(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Validators,
                    types::validators::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validators",
                        types::Validators {},
                        [
                            203u8, 103u8, 117u8, 19u8, 54u8, 45u8, 218u8, 47u8, 46u8, 93u8, 221u8,
                            120u8, 188u8, 43u8, 183u8, 253u8, 108u8, 177u8, 242u8, 168u8, 97u8,
                            191u8, 129u8, 190u8, 80u8, 182u8, 43u8, 75u8, 126u8, 241u8, 248u8,
                            188u8,
                        ],
                    )
                }
                #[doc = " Returns the validator groups and rotation info localized based on the hypothetical child"]
                #[doc = "  of a block whose state  this is invoked on. Note that `now` in the `GroupRotationInfo`"]
                #[doc = " should be the successor of the number of the block."]
                pub fn validator_groups(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidatorGroups,
                    types::validator_groups::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validator_groups",
                        types::ValidatorGroups {},
                        [
                            89u8, 221u8, 163u8, 73u8, 194u8, 196u8, 136u8, 242u8, 249u8, 182u8,
                            239u8, 251u8, 157u8, 211u8, 41u8, 58u8, 242u8, 242u8, 177u8, 145u8,
                            107u8, 167u8, 193u8, 204u8, 226u8, 228u8, 82u8, 249u8, 187u8, 211u8,
                            37u8, 124u8,
                        ],
                    )
                }
                #[doc = " Yields information on all availability cores as relevant to the child block."]
                #[doc = " Cores are either free or occupied. Free cores can have paras assigned to them."]
                pub fn availability_cores(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::AvailabilityCores,
                    types::availability_cores::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "availability_cores",
                        types::AvailabilityCores {},
                        [
                            248u8, 76u8, 100u8, 121u8, 84u8, 19u8, 48u8, 44u8, 98u8, 25u8, 99u8,
                            197u8, 237u8, 132u8, 142u8, 115u8, 99u8, 129u8, 87u8, 142u8, 86u8,
                            80u8, 60u8, 236u8, 150u8, 128u8, 212u8, 14u8, 221u8, 75u8, 179u8, 79u8,
                        ],
                    )
                }
                #[doc = " Yields the persisted validation data for the given `ParaId` along with an assumption that"]
                #[doc = " should be used if the para currently occupies a core."]
                #[doc = ""]
                #[doc = " Returns `None` if either the para is not registered or the assumption is `Freed`"]
                #[doc = " and the para already occupies a core."]
                pub fn persisted_validation_data(
                    &self,
                    para_id: types::persisted_validation_data::ParaId,
                    assumption: types::persisted_validation_data::Assumption,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::PersistedValidationData,
                    types::persisted_validation_data::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "persisted_validation_data",
                        types::PersistedValidationData {
                            para_id,
                            assumption,
                        },
                        [
                            119u8, 217u8, 57u8, 241u8, 70u8, 56u8, 102u8, 20u8, 98u8, 60u8, 47u8,
                            78u8, 124u8, 81u8, 158u8, 254u8, 30u8, 14u8, 223u8, 195u8, 95u8, 179u8,
                            228u8, 53u8, 149u8, 224u8, 62u8, 8u8, 27u8, 3u8, 100u8, 37u8,
                        ],
                    )
                }
                #[doc = " Returns the persisted validation data for the given `ParaId` along with the corresponding"]
                #[doc = " validation code hash. Instead of accepting assumption about the para, matches the validation"]
                #[doc = " data hash against an expected one and yields `None` if they're not equal."]
                pub fn assumed_validation_data(
                    &self,
                    para_id: types::assumed_validation_data::ParaId,
                    expected_persisted_validation_data_hash : types :: assumed_validation_data :: ExpectedPersistedValidationDataHash,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::AssumedValidationData,
                    types::assumed_validation_data::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "assumed_validation_data",
                        types::AssumedValidationData {
                            para_id,
                            expected_persisted_validation_data_hash,
                        },
                        [
                            37u8, 162u8, 100u8, 72u8, 19u8, 135u8, 13u8, 211u8, 51u8, 153u8, 201u8,
                            97u8, 61u8, 193u8, 167u8, 118u8, 60u8, 242u8, 228u8, 81u8, 165u8, 62u8,
                            191u8, 206u8, 157u8, 232u8, 62u8, 55u8, 240u8, 236u8, 76u8, 204u8,
                        ],
                    )
                }
                #[doc = " Checks if the given validation outputs pass the acceptance criteria."]
                pub fn check_validation_outputs(
                    &self,
                    para_id: types::check_validation_outputs::ParaId,
                    outputs: types::check_validation_outputs::Outputs,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CheckValidationOutputs,
                    types::check_validation_outputs::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "check_validation_outputs",
                        types::CheckValidationOutputs { para_id, outputs },
                        [
                            128u8, 33u8, 213u8, 120u8, 39u8, 18u8, 135u8, 248u8, 196u8, 43u8, 0u8,
                            143u8, 198u8, 64u8, 93u8, 133u8, 248u8, 206u8, 103u8, 137u8, 168u8,
                            255u8, 144u8, 29u8, 121u8, 246u8, 179u8, 187u8, 83u8, 53u8, 142u8,
                            82u8,
                        ],
                    )
                }
                #[doc = " Returns the session index expected at a child of the block."]
                #[doc = ""]
                #[doc = " This can be used to instantiate a `SigningContext`."]
                pub fn session_index_for_child(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SessionIndexForChild,
                    types::session_index_for_child::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "session_index_for_child",
                        types::SessionIndexForChild {},
                        [
                            135u8, 9u8, 1u8, 244u8, 174u8, 151u8, 247u8, 75u8, 226u8, 216u8, 53u8,
                            78u8, 26u8, 109u8, 44u8, 77u8, 208u8, 151u8, 94u8, 212u8, 115u8, 43u8,
                            118u8, 22u8, 140u8, 117u8, 15u8, 224u8, 163u8, 252u8, 90u8, 255u8,
                        ],
                    )
                }
                #[doc = " Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`."]
                #[doc = ""]
                #[doc = " Returns `None` if either the para is not registered or the assumption is `Freed`"]
                #[doc = " and the para already occupies a core."]
                pub fn validation_code(
                    &self,
                    para_id: types::validation_code::ParaId,
                    assumption: types::validation_code::Assumption,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidationCode,
                    types::validation_code::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validation_code",
                        types::ValidationCode {
                            para_id,
                            assumption,
                        },
                        [
                            231u8, 15u8, 35u8, 159u8, 96u8, 23u8, 246u8, 125u8, 78u8, 79u8, 158u8,
                            116u8, 36u8, 199u8, 53u8, 61u8, 242u8, 136u8, 227u8, 174u8, 136u8,
                            71u8, 143u8, 47u8, 216u8, 21u8, 225u8, 117u8, 50u8, 104u8, 161u8,
                            232u8,
                        ],
                    )
                }
                #[doc = " Get the receipt of a candidate pending availability. This returns `Some` for any paras"]
                #[doc = " assigned to occupied cores in `availability_cores` and `None` otherwise."]
                pub fn candidate_pending_availability(
                    &self,
                    para_id: types::candidate_pending_availability::ParaId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CandidatePendingAvailability,
                    types::candidate_pending_availability::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "candidate_pending_availability",
                        types::CandidatePendingAvailability { para_id },
                        [
                            5u8, 222u8, 210u8, 254u8, 202u8, 124u8, 140u8, 134u8, 200u8, 175u8,
                            238u8, 166u8, 204u8, 234u8, 13u8, 223u8, 41u8, 239u8, 249u8, 251u8,
                            82u8, 224u8, 167u8, 58u8, 47u8, 65u8, 238u8, 165u8, 152u8, 229u8,
                            193u8, 64u8,
                        ],
                    )
                }
                #[doc = " Get a vector of events concerning candidates that occurred within a block."]
                pub fn candidate_events(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CandidateEvents,
                    types::candidate_events::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "candidate_events",
                        types::CandidateEvents {},
                        [
                            59u8, 132u8, 90u8, 69u8, 245u8, 2u8, 251u8, 196u8, 129u8, 37u8, 96u8,
                            108u8, 1u8, 123u8, 31u8, 198u8, 17u8, 34u8, 215u8, 205u8, 211u8, 69u8,
                            203u8, 49u8, 74u8, 228u8, 78u8, 195u8, 112u8, 199u8, 236u8, 108u8,
                        ],
                    )
                }
                #[doc = " Get all the pending inbound messages in the downward message queue for a para."]
                pub fn dmq_contents(
                    &self,
                    recipient: types::dmq_contents::Recipient,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::DmqContents,
                    types::dmq_contents::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "dmq_contents",
                        types::DmqContents { recipient },
                        [
                            189u8, 11u8, 38u8, 223u8, 11u8, 108u8, 201u8, 122u8, 207u8, 7u8, 74u8,
                            14u8, 247u8, 226u8, 108u8, 21u8, 213u8, 55u8, 8u8, 137u8, 211u8, 98u8,
                            19u8, 11u8, 212u8, 218u8, 209u8, 63u8, 51u8, 252u8, 86u8, 53u8,
                        ],
                    )
                }
                #[doc = " Get the contents of all channels addressed to the given recipient. Channels that have no"]
                #[doc = " messages in them are also included."]
                pub fn inbound_hrmp_channels_contents(
                    &self,
                    recipient: types::inbound_hrmp_channels_contents::Recipient,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::InboundHrmpChannelsContents,
                    types::inbound_hrmp_channels_contents::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "inbound_hrmp_channels_contents",
                        types::InboundHrmpChannelsContents { recipient },
                        [
                            132u8, 29u8, 42u8, 39u8, 72u8, 243u8, 110u8, 43u8, 110u8, 9u8, 21u8,
                            18u8, 91u8, 40u8, 231u8, 223u8, 239u8, 16u8, 110u8, 54u8, 108u8, 234u8,
                            140u8, 205u8, 80u8, 221u8, 115u8, 48u8, 197u8, 248u8, 6u8, 25u8,
                        ],
                    )
                }
                #[doc = " Get the validation code from its hash."]
                pub fn validation_code_by_hash(
                    &self,
                    hash: types::validation_code_by_hash::Hash,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidationCodeByHash,
                    types::validation_code_by_hash::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validation_code_by_hash",
                        types::ValidationCodeByHash { hash },
                        [
                            219u8, 250u8, 130u8, 89u8, 178u8, 234u8, 255u8, 33u8, 90u8, 78u8, 58u8,
                            124u8, 141u8, 145u8, 156u8, 81u8, 184u8, 52u8, 65u8, 112u8, 35u8,
                            153u8, 222u8, 23u8, 226u8, 53u8, 164u8, 22u8, 236u8, 103u8, 197u8,
                            236u8,
                        ],
                    )
                }
                #[doc = " Scrape dispute relevant from on-chain, backing votes and resolved disputes."]
                pub fn on_chain_votes(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::OnChainVotes,
                    types::on_chain_votes::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "on_chain_votes",
                        types::OnChainVotes {},
                        [
                            99u8, 230u8, 154u8, 62u8, 250u8, 68u8, 207u8, 243u8, 195u8, 239u8,
                            46u8, 7u8, 56u8, 222u8, 74u8, 95u8, 14u8, 199u8, 0u8, 200u8, 162u8,
                            206u8, 88u8, 68u8, 39u8, 132u8, 39u8, 150u8, 90u8, 86u8, 22u8, 80u8,
                        ],
                    )
                }
                #[doc = " Get the session info for the given session, if stored."]
                #[doc = ""]
                #[doc = " NOTE: This function is only available since parachain host version 2."]
                pub fn session_info(
                    &self,
                    index: types::session_info::Index,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SessionInfo,
                    types::session_info::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "session_info",
                        types::SessionInfo { index },
                        [
                            109u8, 63u8, 65u8, 75u8, 87u8, 156u8, 145u8, 106u8, 214u8, 111u8, 24u8,
                            111u8, 229u8, 171u8, 147u8, 148u8, 51u8, 80u8, 156u8, 94u8, 49u8,
                            229u8, 151u8, 155u8, 255u8, 0u8, 72u8, 104u8, 42u8, 124u8, 222u8, 90u8,
                        ],
                    )
                }
                #[doc = " Submits a PVF pre-checking statement into the transaction pool."]
                #[doc = ""]
                #[doc = " NOTE: This function is only available since parachain host version 2."]
                pub fn submit_pvf_check_statement(
                    &self,
                    stmt: types::submit_pvf_check_statement::Stmt,
                    signature: types::submit_pvf_check_statement::Signature,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitPvfCheckStatement,
                    types::submit_pvf_check_statement::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "submit_pvf_check_statement",
                        types::SubmitPvfCheckStatement { stmt, signature },
                        [
                            10u8, 97u8, 0u8, 72u8, 221u8, 159u8, 123u8, 113u8, 166u8, 212u8, 213u8,
                            173u8, 250u8, 217u8, 54u8, 27u8, 120u8, 76u8, 219u8, 71u8, 28u8, 213u8,
                            243u8, 103u8, 44u8, 198u8, 102u8, 43u8, 15u8, 81u8, 228u8, 110u8,
                        ],
                    )
                }
                #[doc = " Returns code hashes of PVFs that require pre-checking by validators in the active set."]
                #[doc = ""]
                #[doc = " NOTE: This function is only available since parachain host version 2."]
                pub fn pvfs_require_precheck(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::PvfsRequirePrecheck,
                    types::pvfs_require_precheck::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "pvfs_require_precheck",
                        types::PvfsRequirePrecheck {},
                        [
                            251u8, 162u8, 214u8, 223u8, 70u8, 67u8, 170u8, 19u8, 191u8, 37u8,
                            233u8, 249u8, 89u8, 28u8, 76u8, 213u8, 194u8, 28u8, 15u8, 199u8, 167u8,
                            23u8, 139u8, 220u8, 218u8, 223u8, 115u8, 4u8, 95u8, 24u8, 32u8, 29u8,
                        ],
                    )
                }
                #[doc = " Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`."]
                #[doc = ""]
                #[doc = " NOTE: This function is only available since parachain host version 2."]
                pub fn validation_code_hash(
                    &self,
                    para_id: types::validation_code_hash::ParaId,
                    assumption: types::validation_code_hash::Assumption,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidationCodeHash,
                    types::validation_code_hash::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validation_code_hash",
                        types::ValidationCodeHash {
                            para_id,
                            assumption,
                        },
                        [
                            226u8, 142u8, 121u8, 182u8, 206u8, 180u8, 8u8, 19u8, 237u8, 84u8,
                            121u8, 1u8, 126u8, 211u8, 241u8, 133u8, 195u8, 182u8, 116u8, 128u8,
                            58u8, 81u8, 12u8, 68u8, 79u8, 212u8, 108u8, 178u8, 237u8, 25u8, 203u8,
                            135u8,
                        ],
                    )
                }
                #[doc = " Returns all onchain disputes."]
                pub fn disputes(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Disputes,
                    types::disputes::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "disputes",
                        types::Disputes {},
                        [
                            183u8, 88u8, 143u8, 44u8, 138u8, 79u8, 65u8, 198u8, 42u8, 109u8, 235u8,
                            152u8, 3u8, 13u8, 106u8, 189u8, 197u8, 126u8, 44u8, 161u8, 67u8, 49u8,
                            163u8, 193u8, 248u8, 207u8, 1u8, 108u8, 188u8, 152u8, 87u8, 125u8,
                        ],
                    )
                }
                #[doc = " Returns execution parameters for the session."]
                pub fn session_executor_params(
                    &self,
                    session_index: types::session_executor_params::SessionIndex,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SessionExecutorParams,
                    types::session_executor_params::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "session_executor_params",
                        types::SessionExecutorParams { session_index },
                        [
                            94u8, 35u8, 29u8, 188u8, 247u8, 116u8, 165u8, 43u8, 248u8, 76u8, 21u8,
                            237u8, 26u8, 25u8, 105u8, 27u8, 24u8, 245u8, 97u8, 25u8, 47u8, 118u8,
                            98u8, 231u8, 27u8, 76u8, 172u8, 207u8, 90u8, 103u8, 52u8, 168u8,
                        ],
                    )
                }
                #[doc = " Returns a list of validators that lost a past session dispute and need to be slashed."]
                #[doc = " NOTE: This function is only available since parachain host version 5."]
                pub fn unapplied_slashes(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::UnappliedSlashes,
                    types::unapplied_slashes::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "unapplied_slashes",
                        types::UnappliedSlashes {},
                        [
                            37u8, 39u8, 110u8, 177u8, 177u8, 107u8, 186u8, 189u8, 36u8, 252u8,
                            88u8, 92u8, 92u8, 3u8, 118u8, 28u8, 72u8, 180u8, 56u8, 113u8, 168u8,
                            228u8, 180u8, 53u8, 56u8, 77u8, 129u8, 94u8, 68u8, 18u8, 199u8, 163u8,
                        ],
                    )
                }
                #[doc = " Returns a merkle proof of a validator session key."]
                #[doc = " NOTE: This function is only available since parachain host version 5."]
                pub fn key_ownership_proof(
                    &self,
                    validator_id: types::key_ownership_proof::ValidatorId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::KeyOwnershipProof,
                    types::key_ownership_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "key_ownership_proof",
                        types::KeyOwnershipProof { validator_id },
                        [
                            75u8, 218u8, 234u8, 239u8, 79u8, 135u8, 77u8, 217u8, 172u8, 222u8,
                            123u8, 195u8, 0u8, 79u8, 68u8, 22u8, 143u8, 185u8, 45u8, 209u8, 235u8,
                            205u8, 61u8, 159u8, 205u8, 15u8, 169u8, 73u8, 84u8, 12u8, 240u8, 155u8,
                        ],
                    )
                }
                #[doc = " Submit an unsigned extrinsic to slash validators who lost a dispute about"]
                #[doc = " a candidate of a past session."]
                #[doc = " NOTE: This function is only available since parachain host version 5."]
                pub fn submit_report_dispute_lost(
                    &self,
                    dispute_proof: types::submit_report_dispute_lost::DisputeProof,
                    key_ownership_proof: types::submit_report_dispute_lost::KeyOwnershipProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportDisputeLost,
                    types::submit_report_dispute_lost::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "submit_report_dispute_lost",
                        types::SubmitReportDisputeLost {
                            dispute_proof,
                            key_ownership_proof,
                        },
                        [
                            107u8, 224u8, 213u8, 121u8, 155u8, 13u8, 89u8, 111u8, 110u8, 3u8,
                            143u8, 126u8, 104u8, 78u8, 27u8, 220u8, 212u8, 51u8, 70u8, 241u8, 98u8,
                            135u8, 61u8, 253u8, 19u8, 250u8, 54u8, 46u8, 195u8, 234u8, 92u8, 105u8,
                        ],
                    )
                }
                #[doc = " Get the minimum number of backing votes for a parachain candidate."]
                #[doc = " This is a staging method! Do not use on production runtimes!"]
                pub fn minimum_backing_votes(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::MinimumBackingVotes,
                    types::minimum_backing_votes::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "minimum_backing_votes",
                        types::MinimumBackingVotes {},
                        [
                            222u8, 75u8, 167u8, 245u8, 183u8, 148u8, 14u8, 92u8, 54u8, 164u8,
                            239u8, 183u8, 215u8, 170u8, 133u8, 71u8, 19u8, 131u8, 104u8, 28u8,
                            219u8, 237u8, 178u8, 34u8, 190u8, 151u8, 48u8, 146u8, 78u8, 17u8, 66u8,
                            146u8,
                        ],
                    )
                }
                #[doc = " Returns the state of parachain backing for a given para."]
                pub fn para_backing_state(
                    &self,
                    runtime_api_generated_name_0__ : types :: para_backing_state :: RuntimeApiGeneratedName0,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ParaBackingState,
                    types::para_backing_state::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "para_backing_state",
                        types::ParaBackingState {
                            runtime_api_generated_name_0__,
                        },
                        [
                            118u8, 78u8, 30u8, 85u8, 237u8, 217u8, 251u8, 179u8, 159u8, 134u8,
                            30u8, 119u8, 6u8, 51u8, 69u8, 45u8, 182u8, 151u8, 179u8, 145u8, 140u8,
                            42u8, 38u8, 226u8, 136u8, 99u8, 68u8, 178u8, 52u8, 61u8, 241u8, 107u8,
                        ],
                    )
                }
                #[doc = " Returns candidate's acceptance limitations for asynchronous backing for a relay parent."]
                pub fn async_backing_params(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::AsyncBackingParams,
                    types::async_backing_params::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "async_backing_params",
                        types::AsyncBackingParams {},
                        [
                            150u8, 157u8, 193u8, 44u8, 160u8, 18u8, 122u8, 188u8, 157u8, 84u8,
                            202u8, 253u8, 55u8, 113u8, 188u8, 169u8, 216u8, 250u8, 145u8, 81u8,
                            73u8, 194u8, 234u8, 237u8, 101u8, 250u8, 35u8, 52u8, 205u8, 38u8, 22u8,
                            238u8,
                        ],
                    )
                }
                #[doc = " Returns a list of all disabled validators at the given block."]
                pub fn disabled_validators(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::DisabledValidators,
                    types::disabled_validators::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "disabled_validators",
                        types::DisabledValidators {},
                        [
                            121u8, 124u8, 228u8, 59u8, 10u8, 148u8, 131u8, 130u8, 221u8, 33u8,
                            226u8, 13u8, 223u8, 67u8, 145u8, 39u8, 205u8, 237u8, 178u8, 249u8,
                            126u8, 152u8, 65u8, 131u8, 111u8, 113u8, 194u8, 111u8, 37u8, 124u8,
                            164u8, 212u8,
                        ],
                    )
                }
                #[doc = " Get node features."]
                #[doc = " This is a staging method! Do not use on production runtimes!"]
                pub fn node_features(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::NodeFeatures,
                    types::node_features::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "node_features",
                        types::NodeFeatures {},
                        [
                            94u8, 110u8, 38u8, 62u8, 66u8, 234u8, 216u8, 228u8, 36u8, 17u8, 33u8,
                            56u8, 184u8, 122u8, 34u8, 254u8, 46u8, 62u8, 107u8, 227u8, 3u8, 126u8,
                            220u8, 142u8, 92u8, 226u8, 123u8, 236u8, 34u8, 234u8, 82u8, 80u8,
                        ],
                    )
                }
                #[doc = " Approval voting configuration parameters"]
                pub fn approval_voting_params(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ApprovalVotingParams,
                    types::approval_voting_params::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "approval_voting_params",
                        types::ApprovalVotingParams {},
                        [
                            89u8, 130u8, 95u8, 58u8, 124u8, 176u8, 43u8, 109u8, 222u8, 178u8,
                            241u8, 177u8, 242u8, 32u8, 84u8, 22u8, 252u8, 178u8, 168u8, 17u8, 38u8,
                            249u8, 25u8, 229u8, 75u8, 119u8, 150u8, 112u8, 144u8, 118u8, 189u8,
                            253u8,
                        ],
                    )
                }
                #[doc = " Claim queue"]
                pub fn claim_queue(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ClaimQueue,
                    types::claim_queue::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "claim_queue",
                        types::ClaimQueue {},
                        [
                            43u8, 105u8, 112u8, 222u8, 33u8, 252u8, 194u8, 53u8, 104u8, 185u8,
                            210u8, 179u8, 95u8, 149u8, 44u8, 86u8, 70u8, 202u8, 154u8, 196u8,
                            186u8, 165u8, 103u8, 172u8, 66u8, 4u8, 135u8, 9u8, 255u8, 137u8, 52u8,
                            125u8,
                        ],
                    )
                }
                #[doc = " Elastic scaling support"]
                pub fn candidates_pending_availability(
                    &self,
                    para_id: types::candidates_pending_availability::ParaId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CandidatesPendingAvailability,
                    types::candidates_pending_availability::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "candidates_pending_availability",
                        types::CandidatesPendingAvailability { para_id },
                        [
                            46u8, 67u8, 45u8, 132u8, 116u8, 96u8, 3u8, 211u8, 116u8, 4u8, 64u8,
                            158u8, 227u8, 134u8, 205u8, 127u8, 139u8, 111u8, 54u8, 141u8, 44u8,
                            234u8, 140u8, 157u8, 91u8, 6u8, 55u8, 134u8, 176u8, 20u8, 198u8, 47u8,
                        ],
                    )
                }
                #[doc = " Retrieve the maximum uncompressed code size."]
                pub fn validation_code_bomb_limit(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidationCodeBombLimit,
                    types::validation_code_bomb_limit::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "validation_code_bomb_limit",
                        types::ValidationCodeBombLimit {},
                        [
                            87u8, 223u8, 184u8, 180u8, 216u8, 213u8, 191u8, 201u8, 250u8, 22u8,
                            169u8, 184u8, 114u8, 220u8, 151u8, 57u8, 105u8, 160u8, 19u8, 105u8,
                            0u8, 70u8, 177u8, 91u8, 128u8, 112u8, 61u8, 1u8, 202u8, 74u8, 165u8,
                            244u8,
                        ],
                    )
                }
                #[doc = " Returns the constraints on the actions that can be taken by a new parachain"]
                #[doc = " block."]
                pub fn backing_constraints(
                    &self,
                    para_id: types::backing_constraints::ParaId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::BackingConstraints,
                    types::backing_constraints::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "backing_constraints",
                        types::BackingConstraints { para_id },
                        [
                            235u8, 42u8, 54u8, 27u8, 171u8, 123u8, 224u8, 238u8, 189u8, 84u8, 82u8,
                            173u8, 140u8, 129u8, 211u8, 21u8, 134u8, 19u8, 95u8, 222u8, 97u8,
                            130u8, 70u8, 237u8, 83u8, 57u8, 20u8, 98u8, 130u8, 152u8, 103u8, 217u8,
                        ],
                    )
                }
                #[doc = " Retrieve the scheduling lookahead"]
                pub fn scheduling_lookahead(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SchedulingLookahead,
                    types::scheduling_lookahead::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "ParachainHost",
                        "scheduling_lookahead",
                        types::SchedulingLookahead {},
                        [
                            7u8, 201u8, 159u8, 91u8, 6u8, 85u8, 165u8, 75u8, 113u8, 185u8, 122u8,
                            238u8, 207u8, 238u8, 9u8, 154u8, 57u8, 151u8, 63u8, 211u8, 149u8,
                            167u8, 57u8, 121u8, 230u8, 159u8, 206u8, 252u8, 153u8, 141u8, 5u8,
                            143u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod validators {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::v8::validator_app::Public,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Validators {}
                pub mod validator_groups {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = (
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                ::subxt::ext::subxt_core::alloc::vec::Vec<
                                    runtime_types::polkadot_primitives::v8::ValidatorIndex,
                                >,
                            >,
                            runtime_types::polkadot_primitives::v8::GroupRotationInfo<
                                ::core::primitive::u32,
                            >,
                        );
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidatorGroups {}
                pub mod availability_cores {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::vstaging::CoreState<
                                ::subxt::ext::subxt_core::utils::H256,
                                ::core::primitive::u32,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AvailabilityCores {}
                pub mod persisted_validation_data {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Assumption =
                        runtime_types::polkadot_primitives::v8::OccupiedCoreAssumption;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::polkadot_primitives::v8::PersistedValidationData<
                                ::subxt::ext::subxt_core::utils::H256,
                                ::core::primitive::u32,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PersistedValidationData {
                    pub para_id: persisted_validation_data::ParaId,
                    pub assumption: persisted_validation_data::Assumption,
                }
                pub mod assumed_validation_data {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type ExpectedPersistedValidationDataHash =
                        ::subxt::ext::subxt_core::utils::H256;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < (runtime_types :: polkadot_primitives :: v8 :: PersistedValidationData < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AssumedValidationData {
                    pub para_id: assumed_validation_data::ParaId,
                    pub expected_persisted_validation_data_hash:
                        assumed_validation_data::ExpectedPersistedValidationDataHash,
                }
                pub mod check_validation_outputs {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Outputs = runtime_types::polkadot_primitives::v8::CandidateCommitments<
                        ::core::primitive::u32,
                    >;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::bool;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CheckValidationOutputs {
                    pub para_id: check_validation_outputs::ParaId,
                    pub outputs: check_validation_outputs::Outputs,
                }
                pub mod session_index_for_child {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u32;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SessionIndexForChild {}
                pub mod validation_code {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Assumption =
                        runtime_types::polkadot_primitives::v8::OccupiedCoreAssumption;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCode {
                    pub para_id: validation_code::ParaId,
                    pub assumption: validation_code::Assumption,
                }
                pub mod candidate_pending_availability {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: vstaging :: CommittedCandidateReceiptV2 < :: subxt :: ext :: subxt_core :: utils :: H256 > > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidatePendingAvailability {
                    pub para_id: candidate_pending_availability::ParaId,
                }
                pub mod candidate_events {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::vstaging::CandidateEvent<
                                ::subxt::ext::subxt_core::utils::H256,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidateEvents {}
                pub mod dmq_contents {
                    use super::runtime_types;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_core_primitives::InboundDownwardMessage<
                                ::core::primitive::u32,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DmqContents {
                    pub recipient: dmq_contents::Recipient,
                }
                pub mod inbound_hrmp_channels_contents {
                    use super::runtime_types;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::utils::KeyedVec<
                            runtime_types::polkadot_parachain_primitives::primitives::Id,
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                runtime_types::polkadot_core_primitives::InboundHrmpMessage<
                                    ::core::primitive::u32,
                                >,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InboundHrmpChannelsContents {
                    pub recipient: inbound_hrmp_channels_contents::Recipient,
                }
                pub mod validation_code_by_hash {
                    use super::runtime_types;
                    pub type Hash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCodeByHash {
                    pub hash: validation_code_by_hash::Hash,
                }
                pub mod on_chain_votes {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::polkadot_primitives::vstaging::ScrapedOnChainVotes<
                                ::subxt::ext::subxt_core::utils::H256,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OnChainVotes {}
                pub mod session_info {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::polkadot_primitives::v8::SessionInfo,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SessionInfo {
                    pub index: session_info::Index,
                }
                pub mod submit_pvf_check_statement {
                    use super::runtime_types;
                    pub type Stmt = runtime_types::polkadot_primitives::v8::PvfCheckStatement;
                    pub type Signature =
                        runtime_types::polkadot_primitives::v8::validator_app::Signature;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ();
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitPvfCheckStatement {
                    pub stmt: submit_pvf_check_statement::Stmt,
                    pub signature: submit_pvf_check_statement::Signature,
                }
                pub mod pvfs_require_precheck {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PvfsRequirePrecheck {}
                pub mod validation_code_hash {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Assumption =
                        runtime_types::polkadot_primitives::v8::OccupiedCoreAssumption;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCodeHash {
                    pub para_id: validation_code_hash::ParaId,
                    pub assumption: validation_code_hash::Assumption,
                }
                pub mod disputes {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            ::core::primitive::u32,
                            runtime_types::polkadot_core_primitives::CandidateHash,
                            runtime_types::polkadot_primitives::v8::DisputeState<
                                ::core::primitive::u32,
                            >,
                        )>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Disputes {}
                pub mod session_executor_params {
                    use super::runtime_types;
                    pub type SessionIndex = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::polkadot_primitives::v8::executor_params::ExecutorParams,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SessionExecutorParams {
                    pub session_index: session_executor_params::SessionIndex,
                }
                pub mod unapplied_slashes {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            ::core::primitive::u32,
                            runtime_types::polkadot_core_primitives::CandidateHash,
                            runtime_types::polkadot_primitives::v8::slashing::PendingSlashes,
                        )>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct UnappliedSlashes {}
                pub mod key_ownership_proof {
                    use super::runtime_types;
                    pub type ValidatorId =
                        runtime_types::polkadot_primitives::v8::validator_app::Public;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: v8 :: slashing :: OpaqueKeyOwnershipProof > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct KeyOwnershipProof {
                    pub validator_id: key_ownership_proof::ValidatorId,
                }
                pub mod submit_report_dispute_lost {
                    use super::runtime_types;
                    pub type DisputeProof =
                        runtime_types::polkadot_primitives::v8::slashing::DisputeProof;
                    pub type KeyOwnershipProof =
                        runtime_types::polkadot_primitives::v8::slashing::OpaqueKeyOwnershipProof;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportDisputeLost {
                    pub dispute_proof: submit_report_dispute_lost::DisputeProof,
                    pub key_ownership_proof: submit_report_dispute_lost::KeyOwnershipProof,
                }
                pub mod minimum_backing_votes {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u32;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MinimumBackingVotes {}
                pub mod para_backing_state {
                    use super::runtime_types;
                    pub type RuntimeApiGeneratedName0 =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: vstaging :: async_backing :: BackingState < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ParaBackingState {
                    pub runtime_api_generated_name_0__:
                        para_backing_state::RuntimeApiGeneratedName0,
                }
                pub mod async_backing_params {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types :: polkadot_primitives :: v8 :: async_backing :: AsyncBackingParams ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AsyncBackingParams {}
                pub mod disabled_validators {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DisabledValidators {}
                pub mod node_features {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                            ::core::primitive::u8,
                            ::subxt::ext::subxt_core::utils::bits::Lsb0,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct NodeFeatures {}
                pub mod approval_voting_params {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            runtime_types::polkadot_primitives::v8::ApprovalVotingParams;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ApprovalVotingParams {}
                pub mod claim_queue {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::utils::KeyedVec<
                            runtime_types::polkadot_primitives::v8::CoreIndex,
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                runtime_types::polkadot_parachain_primitives::primitives::Id,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ClaimQueue {}
                pub mod candidates_pending_availability {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: vstaging :: CommittedCandidateReceiptV2 < :: subxt :: ext :: subxt_core :: utils :: H256 > > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidatesPendingAvailability {
                    pub para_id: candidates_pending_availability::ParaId,
                }
                pub mod validation_code_bomb_limit {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u32;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCodeBombLimit {}
                pub mod backing_constraints {
                    use super::runtime_types;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: vstaging :: async_backing :: Constraints < :: core :: primitive :: u32 > > ;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BackingConstraints {
                    pub para_id: backing_constraints::ParaId,
                }
                pub mod scheduling_lookahead {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u32;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SchedulingLookahead {}
            }
        }
        pub mod beefy_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API necessary for BEEFY voters."]
            pub struct BeefyApi;
            impl BeefyApi {
                #[doc = " Return the block number where BEEFY consensus is enabled/started"]
                pub fn beefy_genesis(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::BeefyGenesis,
                    types::beefy_genesis::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "beefy_genesis",
                        types::BeefyGenesis {},
                        [
                            246u8, 129u8, 31u8, 77u8, 24u8, 47u8, 5u8, 156u8, 64u8, 222u8, 180u8,
                            78u8, 110u8, 77u8, 218u8, 149u8, 210u8, 151u8, 164u8, 220u8, 165u8,
                            119u8, 116u8, 220u8, 20u8, 122u8, 37u8, 176u8, 75u8, 218u8, 194u8,
                            244u8,
                        ],
                    )
                }
                #[doc = " Return the current active BEEFY validator set"]
                pub fn validator_set(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::ValidatorSet,
                    types::validator_set::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "validator_set",
                        types::ValidatorSet {},
                        [
                            89u8, 55u8, 143u8, 190u8, 77u8, 133u8, 228u8, 92u8, 245u8, 253u8, 70u8,
                            232u8, 213u8, 119u8, 88u8, 47u8, 122u8, 60u8, 179u8, 61u8, 199u8,
                            251u8, 45u8, 230u8, 76u8, 202u8, 49u8, 178u8, 204u8, 143u8, 196u8,
                            135u8,
                        ],
                    )
                }
                #[doc = " Submits an unsigned extrinsic to report a double voting equivocation. The caller"]
                #[doc = " must provide the double voting proof and a key ownership proof"]
                #[doc = " (should be obtained using `generate_key_ownership_proof`). The"]
                #[doc = " extrinsic will be unsigned and should only be accepted for local"]
                #[doc = " authorship (not to be broadcast to the network). This method returns"]
                #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"]
                #[doc = " reporting is disabled for the given runtime (i.e. this method is"]
                #[doc = " hardcoded to return `None`). Only useful in an offchain context."]
                pub fn submit_report_double_voting_unsigned_extrinsic(
                    &self,
                    equivocation_proof : types :: submit_report_double_voting_unsigned_extrinsic :: EquivocationProof,
                    key_owner_proof : types :: submit_report_double_voting_unsigned_extrinsic :: KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportDoubleVotingUnsignedExtrinsic,
                    types::submit_report_double_voting_unsigned_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "submit_report_double_voting_unsigned_extrinsic",
                        types::SubmitReportDoubleVotingUnsignedExtrinsic {
                            equivocation_proof,
                            key_owner_proof,
                        },
                        [
                            150u8, 77u8, 238u8, 96u8, 27u8, 152u8, 189u8, 202u8, 142u8, 30u8,
                            252u8, 43u8, 134u8, 87u8, 86u8, 188u8, 184u8, 126u8, 229u8, 230u8,
                            106u8, 6u8, 0u8, 89u8, 47u8, 219u8, 138u8, 136u8, 6u8, 204u8, 189u8,
                            213u8,
                        ],
                    )
                }
                #[doc = " Submits an unsigned extrinsic to report a fork voting equivocation. The caller"]
                #[doc = " must provide the fork voting proof (the ancestry proof should be obtained using"]
                #[doc = " `generate_ancestry_proof`) and a key ownership proof (should be obtained using"]
                #[doc = " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only"]
                #[doc = " be accepted for local authorship (not to be broadcast to the network). This method"]
                #[doc = " returns `None` when creation of the extrinsic fails, e.g. if equivocation"]
                #[doc = " reporting is disabled for the given runtime (i.e. this method is"]
                #[doc = " hardcoded to return `None`). Only useful in an offchain context."]
                pub fn submit_report_fork_voting_unsigned_extrinsic(
                    &self,
                    equivocation_proof : types :: submit_report_fork_voting_unsigned_extrinsic :: EquivocationProof,
                    key_owner_proof : types :: submit_report_fork_voting_unsigned_extrinsic :: KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportForkVotingUnsignedExtrinsic,
                    types::submit_report_fork_voting_unsigned_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "submit_report_fork_voting_unsigned_extrinsic",
                        types::SubmitReportForkVotingUnsignedExtrinsic {
                            equivocation_proof,
                            key_owner_proof,
                        },
                        [
                            148u8, 230u8, 78u8, 95u8, 219u8, 17u8, 5u8, 8u8, 254u8, 198u8, 252u8,
                            211u8, 136u8, 20u8, 103u8, 153u8, 248u8, 144u8, 128u8, 58u8, 96u8,
                            140u8, 245u8, 97u8, 13u8, 17u8, 19u8, 35u8, 123u8, 30u8, 24u8, 38u8,
                        ],
                    )
                }
                #[doc = " Submits an unsigned extrinsic to report a future block voting equivocation. The caller"]
                #[doc = " must provide the future block voting proof and a key ownership proof"]
                #[doc = " (should be obtained using `generate_key_ownership_proof`)."]
                #[doc = " The extrinsic will be unsigned and should only be accepted for local"]
                #[doc = " authorship (not to be broadcast to the network). This method returns"]
                #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"]
                #[doc = " reporting is disabled for the given runtime (i.e. this method is"]
                #[doc = " hardcoded to return `None`). Only useful in an offchain context."]
                pub fn submit_report_future_block_voting_unsigned_extrinsic(
                    &self,
                    equivocation_proof : types :: submit_report_future_block_voting_unsigned_extrinsic :: EquivocationProof,
                    key_owner_proof : types :: submit_report_future_block_voting_unsigned_extrinsic :: KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportFutureBlockVotingUnsignedExtrinsic,
                    types::submit_report_future_block_voting_unsigned_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "submit_report_future_block_voting_unsigned_extrinsic",
                        types::SubmitReportFutureBlockVotingUnsignedExtrinsic {
                            equivocation_proof,
                            key_owner_proof,
                        },
                        [
                            111u8, 49u8, 126u8, 212u8, 123u8, 116u8, 91u8, 235u8, 190u8, 88u8,
                            70u8, 175u8, 50u8, 229u8, 231u8, 241u8, 10u8, 208u8, 107u8, 140u8,
                            236u8, 225u8, 78u8, 205u8, 43u8, 218u8, 51u8, 68u8, 236u8, 247u8, 74u8,
                            181u8,
                        ],
                    )
                }
                #[doc = " Generates a proof of key ownership for the given authority in the"]
                #[doc = " given set. An example usage of this module is coupled with the"]
                #[doc = " session historical module to prove that a given authority key is"]
                #[doc = " tied to a given staking identity during a specific session. Proofs"]
                #[doc = " of key ownership are necessary for submitting equivocation reports."]
                #[doc = " NOTE: even though the API takes a `set_id` as parameter the current"]
                #[doc = " implementations ignores this parameter and instead relies on this"]
                #[doc = " method being called at the correct block height, i.e. any point at"]
                #[doc = " which the given set id is live on-chain. Future implementations will"]
                #[doc = " instead use indexed data through an offchain worker, not requiring"]
                #[doc = " older states to be available."]
                pub fn generate_key_ownership_proof(
                    &self,
                    set_id: types::generate_key_ownership_proof::SetId,
                    authority_id: types::generate_key_ownership_proof::AuthorityId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateKeyOwnershipProof,
                    types::generate_key_ownership_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "generate_key_ownership_proof",
                        types::GenerateKeyOwnershipProof {
                            set_id,
                            authority_id,
                        },
                        [
                            119u8, 183u8, 178u8, 109u8, 57u8, 250u8, 176u8, 255u8, 11u8, 190u8,
                            35u8, 142u8, 102u8, 112u8, 4u8, 219u8, 204u8, 81u8, 163u8, 87u8, 129u8,
                            134u8, 34u8, 227u8, 213u8, 163u8, 50u8, 90u8, 54u8, 61u8, 84u8, 215u8,
                        ],
                    )
                }
                #[doc = " Generates a proof that the `prev_block_number` is part of the canonical chain at"]
                #[doc = " `best_known_block_number`."]
                pub fn generate_ancestry_proof(
                    &self,
                    prev_block_number: types::generate_ancestry_proof::PrevBlockNumber,
                    best_known_block_number: types::generate_ancestry_proof::BestKnownBlockNumber,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateAncestryProof,
                    types::generate_ancestry_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyApi",
                        "generate_ancestry_proof",
                        types::GenerateAncestryProof {
                            prev_block_number,
                            best_known_block_number,
                        },
                        [
                            2u8, 159u8, 64u8, 196u8, 142u8, 10u8, 120u8, 189u8, 137u8, 49u8, 163u8,
                            103u8, 5u8, 137u8, 190u8, 89u8, 232u8, 17u8, 216u8, 145u8, 99u8, 131u8,
                            85u8, 67u8, 75u8, 234u8, 62u8, 61u8, 226u8, 61u8, 187u8, 120u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod beefy_genesis {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<::core::primitive::u32>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BeefyGenesis {}
                pub mod validator_set {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::sp_consensus_beefy::ValidatorSet<
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            >,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidatorSet {}
                pub mod submit_report_double_voting_unsigned_extrinsic {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::DoubleVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportDoubleVotingUnsignedExtrinsic {
                    pub equivocation_proof:
                        submit_report_double_voting_unsigned_extrinsic::EquivocationProof,
                    pub key_owner_proof:
                        submit_report_double_voting_unsigned_extrinsic::KeyOwnerProof,
                }
                pub mod submit_report_fork_voting_unsigned_extrinsic {
                    use super::runtime_types;
                    pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof<
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>,
                        runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        runtime_types::sp_runtime::OpaqueValue,
                    >;
                    pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportForkVotingUnsignedExtrinsic {
                    pub equivocation_proof:
                        submit_report_fork_voting_unsigned_extrinsic::EquivocationProof,
                    pub key_owner_proof:
                        submit_report_fork_voting_unsigned_extrinsic::KeyOwnerProof,
                }
                pub mod submit_report_future_block_voting_unsigned_extrinsic {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::FutureBlockVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportFutureBlockVotingUnsignedExtrinsic {
                    pub equivocation_proof:
                        submit_report_future_block_voting_unsigned_extrinsic::EquivocationProof,
                    pub key_owner_proof:
                        submit_report_future_block_voting_unsigned_extrinsic::KeyOwnerProof,
                }
                pub mod generate_key_ownership_proof {
                    use super::runtime_types;
                    pub type SetId = ::core::primitive::u64;
                    pub type AuthorityId = runtime_types::sp_consensus_beefy::ecdsa_crypto::Public;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::option::Option<runtime_types::sp_runtime::OpaqueValue>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateKeyOwnershipProof {
                    pub set_id: generate_key_ownership_proof::SetId,
                    pub authority_id: generate_key_ownership_proof::AuthorityId,
                }
                pub mod generate_ancestry_proof {
                    use super::runtime_types;
                    pub type PrevBlockNumber = ::core::primitive::u32;
                    pub type BestKnownBlockNumber = ::core::option::Option<::core::primitive::u32>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::option::Option<runtime_types::sp_runtime::OpaqueValue>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateAncestryProof {
                    pub prev_block_number: generate_ancestry_proof::PrevBlockNumber,
                    pub best_known_block_number: generate_ancestry_proof::BestKnownBlockNumber,
                }
            }
        }
        pub mod mmr_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API to interact with MMR pallet."]
            pub struct MmrApi;
            impl MmrApi {
                #[doc = " Return the on-chain MMR root hash."]
                pub fn mmr_root(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::MmrRoot,
                    types::mmr_root::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "MmrApi",
                        "mmr_root",
                        types::MmrRoot {},
                        [
                            148u8, 252u8, 77u8, 233u8, 236u8, 8u8, 119u8, 105u8, 207u8, 161u8,
                            109u8, 158u8, 211u8, 64u8, 67u8, 216u8, 242u8, 52u8, 122u8, 4u8, 83u8,
                            113u8, 54u8, 77u8, 165u8, 89u8, 61u8, 159u8, 98u8, 51u8, 45u8, 90u8,
                        ],
                    )
                }
                #[doc = " Return the number of MMR blocks in the chain."]
                pub fn mmr_leaf_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::MmrLeafCount,
                    types::mmr_leaf_count::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "MmrApi",
                        "mmr_leaf_count",
                        types::MmrLeafCount {},
                        [
                            165u8, 141u8, 127u8, 184u8, 27u8, 185u8, 251u8, 25u8, 44u8, 93u8,
                            239u8, 158u8, 104u8, 91u8, 22u8, 87u8, 101u8, 166u8, 90u8, 90u8, 45u8,
                            105u8, 254u8, 136u8, 233u8, 121u8, 9u8, 216u8, 179u8, 55u8, 126u8,
                            158u8,
                        ],
                    )
                }
                #[doc = " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,"]
                #[doc = " use historical MMR state at given block height `n`. Else, use current MMR state."]
                pub fn generate_proof(
                    &self,
                    block_numbers: types::generate_proof::BlockNumbers,
                    best_known_block_number: types::generate_proof::BestKnownBlockNumber,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateProof,
                    types::generate_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "MmrApi",
                        "generate_proof",
                        types::GenerateProof {
                            block_numbers,
                            best_known_block_number,
                        },
                        [
                            187u8, 175u8, 153u8, 82u8, 245u8, 180u8, 126u8, 156u8, 67u8, 89u8,
                            253u8, 29u8, 54u8, 168u8, 196u8, 144u8, 24u8, 123u8, 154u8, 69u8,
                            245u8, 90u8, 110u8, 239u8, 15u8, 125u8, 204u8, 148u8, 71u8, 209u8,
                            58u8, 32u8,
                        ],
                    )
                }
                #[doc = " Verify MMR proof against on-chain MMR for a batch of leaves."]
                #[doc = ""]
                #[doc = " Note this function will use on-chain MMR root hash and check if the proof matches the hash."]
                #[doc = " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the"]
                #[doc = " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]"]
                pub fn verify_proof(
                    &self,
                    leaves: types::verify_proof::Leaves,
                    proof: types::verify_proof::Proof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::VerifyProof,
                    types::verify_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "MmrApi",
                        "verify_proof",
                        types::VerifyProof { leaves, proof },
                        [
                            236u8, 54u8, 135u8, 196u8, 161u8, 247u8, 183u8, 78u8, 153u8, 69u8,
                            59u8, 78u8, 62u8, 20u8, 187u8, 47u8, 77u8, 209u8, 209u8, 224u8, 127u8,
                            85u8, 122u8, 33u8, 123u8, 128u8, 92u8, 251u8, 110u8, 233u8, 50u8,
                            160u8,
                        ],
                    )
                }
                #[doc = " Verify MMR proof against given root hash for a batch of leaves."]
                #[doc = ""]
                #[doc = " Note this function does not require any on-chain storage - the"]
                #[doc = " proof is verified against given MMR root hash."]
                #[doc = ""]
                #[doc = " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the"]
                #[doc = " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]"]
                pub fn verify_proof_stateless(
                    &self,
                    root: types::verify_proof_stateless::Root,
                    leaves: types::verify_proof_stateless::Leaves,
                    proof: types::verify_proof_stateless::Proof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::VerifyProofStateless,
                    types::verify_proof_stateless::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "MmrApi",
                        "verify_proof_stateless",
                        types::VerifyProofStateless {
                            root,
                            leaves,
                            proof,
                        },
                        [
                            163u8, 232u8, 190u8, 65u8, 135u8, 136u8, 50u8, 60u8, 137u8, 37u8,
                            192u8, 24u8, 137u8, 144u8, 165u8, 131u8, 49u8, 88u8, 15u8, 139u8, 83u8,
                            152u8, 162u8, 148u8, 22u8, 74u8, 82u8, 25u8, 183u8, 83u8, 212u8, 56u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod mmr_root {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::subxt::ext::subxt_core::utils::H256,
                            runtime_types::sp_mmr_primitives::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MmrRoot {}
                pub mod mmr_leaf_count {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::core::primitive::u64,
                            runtime_types::sp_mmr_primitives::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MmrLeafCount {}
                pub mod generate_proof {
                    use super::runtime_types;
                    pub type BlockNumbers =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u32>;
                    pub type BestKnownBlockNumber = ::core::option::Option<::core::primitive::u32>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            (
                                ::subxt::ext::subxt_core::alloc::vec::Vec<
                                    runtime_types::sp_mmr_primitives::EncodableOpaqueLeaf,
                                >,
                                runtime_types::sp_mmr_primitives::LeafProof<
                                    ::subxt::ext::subxt_core::utils::H256,
                                >,
                            ),
                            runtime_types::sp_mmr_primitives::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateProof {
                    pub block_numbers: generate_proof::BlockNumbers,
                    pub best_known_block_number: generate_proof::BestKnownBlockNumber,
                }
                pub mod verify_proof {
                    use super::runtime_types;
                    pub type Leaves = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::sp_mmr_primitives::EncodableOpaqueLeaf,
                    >;
                    pub type Proof = runtime_types::sp_mmr_primitives::LeafProof<
                        ::subxt::ext::subxt_core::utils::H256,
                    >;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::result::Result<(), runtime_types::sp_mmr_primitives::Error>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct VerifyProof {
                    pub leaves: verify_proof::Leaves,
                    pub proof: verify_proof::Proof,
                }
                pub mod verify_proof_stateless {
                    use super::runtime_types;
                    pub type Root = ::subxt::ext::subxt_core::utils::H256;
                    pub type Leaves = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::sp_mmr_primitives::EncodableOpaqueLeaf,
                    >;
                    pub type Proof = runtime_types::sp_mmr_primitives::LeafProof<
                        ::subxt::ext::subxt_core::utils::H256,
                    >;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::result::Result<(), runtime_types::sp_mmr_primitives::Error>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct VerifyProofStateless {
                    pub root: verify_proof_stateless::Root,
                    pub leaves: verify_proof_stateless::Leaves,
                    pub proof: verify_proof_stateless::Proof,
                }
            }
        }
        pub mod grandpa_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " APIs for integrating the GRANDPA finality gadget into runtimes."]
            #[doc = " This should be implemented on the runtime side."]
            #[doc = ""]
            #[doc = " This is primarily used for negotiating authority-set changes for the"]
            #[doc = " gadget. GRANDPA uses a signaling model of changing authority sets:"]
            #[doc = " changes should be signaled with a delay of N blocks, and then automatically"]
            #[doc = " applied in the runtime after those N blocks have passed."]
            #[doc = ""]
            #[doc = " The consensus protocol will coordinate the handoff externally."]
            pub struct GrandpaApi;
            impl GrandpaApi {
                #[doc = " Get the current GRANDPA authorities and weights. This should not change except"]
                #[doc = " for when changes are scheduled and the corresponding delay has passed."]
                #[doc = ""]
                #[doc = " When called at block B, it will return the set of authorities that should be"]
                #[doc = " used to finalize descendants of this block (B+1, B+2, ...). The block B itself"]
                #[doc = " is finalized by the authorities from block B-1."]
                pub fn grandpa_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GrandpaAuthorities,
                    types::grandpa_authorities::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GrandpaApi",
                        "grandpa_authorities",
                        types::GrandpaAuthorities {},
                        [
                            8u8, 1u8, 99u8, 227u8, 52u8, 95u8, 230u8, 139u8, 198u8, 90u8, 159u8,
                            146u8, 193u8, 81u8, 37u8, 27u8, 216u8, 227u8, 108u8, 126u8, 12u8, 94u8,
                            125u8, 183u8, 143u8, 231u8, 87u8, 101u8, 114u8, 190u8, 193u8, 180u8,
                        ],
                    )
                }
                #[doc = " Submits an unsigned extrinsic to report an equivocation. The caller"]
                #[doc = " must provide the equivocation proof and a key ownership proof"]
                #[doc = " (should be obtained using `generate_key_ownership_proof`). The"]
                #[doc = " extrinsic will be unsigned and should only be accepted for local"]
                #[doc = " authorship (not to be broadcast to the network). This method returns"]
                #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"]
                #[doc = " reporting is disabled for the given runtime (i.e. this method is"]
                #[doc = " hardcoded to return `None`). Only useful in an offchain context."]
                pub fn submit_report_equivocation_unsigned_extrinsic(
                    &self,
                    equivocation_proof : types :: submit_report_equivocation_unsigned_extrinsic :: EquivocationProof,
                    key_owner_proof : types :: submit_report_equivocation_unsigned_extrinsic :: KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportEquivocationUnsignedExtrinsic,
                    types::submit_report_equivocation_unsigned_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GrandpaApi",
                        "submit_report_equivocation_unsigned_extrinsic",
                        types::SubmitReportEquivocationUnsignedExtrinsic {
                            equivocation_proof,
                            key_owner_proof,
                        },
                        [
                            27u8, 32u8, 16u8, 79u8, 172u8, 124u8, 44u8, 13u8, 176u8, 89u8, 69u8,
                            60u8, 45u8, 176u8, 72u8, 151u8, 252u8, 5u8, 243u8, 82u8, 170u8, 51u8,
                            179u8, 197u8, 117u8, 177u8, 110u8, 111u8, 97u8, 15u8, 109u8, 169u8,
                        ],
                    )
                }
                #[doc = " Generates a proof of key ownership for the given authority in the"]
                #[doc = " given set. An example usage of this module is coupled with the"]
                #[doc = " session historical module to prove that a given authority key is"]
                #[doc = " tied to a given staking identity during a specific session. Proofs"]
                #[doc = " of key ownership are necessary for submitting equivocation reports."]
                #[doc = " NOTE: even though the API takes a `set_id` as parameter the current"]
                #[doc = " implementations ignore this parameter and instead rely on this"]
                #[doc = " method being called at the correct block height, i.e. any point at"]
                #[doc = " which the given set id is live on-chain. Future implementations will"]
                #[doc = " instead use indexed data through an offchain worker, not requiring"]
                #[doc = " older states to be available."]
                pub fn generate_key_ownership_proof(
                    &self,
                    set_id: types::generate_key_ownership_proof::SetId,
                    authority_id: types::generate_key_ownership_proof::AuthorityId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateKeyOwnershipProof,
                    types::generate_key_ownership_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GrandpaApi",
                        "generate_key_ownership_proof",
                        types::GenerateKeyOwnershipProof {
                            set_id,
                            authority_id,
                        },
                        [
                            13u8, 144u8, 66u8, 235u8, 24u8, 190u8, 39u8, 75u8, 29u8, 157u8, 215u8,
                            181u8, 173u8, 145u8, 224u8, 244u8, 189u8, 79u8, 6u8, 116u8, 139u8,
                            196u8, 54u8, 16u8, 89u8, 190u8, 121u8, 43u8, 137u8, 150u8, 117u8, 68u8,
                        ],
                    )
                }
                #[doc = " Get current GRANDPA authority set id."]
                pub fn current_set_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CurrentSetId,
                    types::current_set_id::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GrandpaApi",
                        "current_set_id",
                        types::CurrentSetId {},
                        [
                            42u8, 230u8, 120u8, 211u8, 156u8, 245u8, 109u8, 86u8, 100u8, 146u8,
                            234u8, 205u8, 41u8, 183u8, 109u8, 42u8, 17u8, 33u8, 156u8, 25u8, 139u8,
                            84u8, 101u8, 75u8, 232u8, 198u8, 87u8, 136u8, 218u8, 233u8, 103u8,
                            156u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod grandpa_authorities {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            runtime_types::sp_consensus_grandpa::app::Public,
                            ::core::primitive::u64,
                        )>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GrandpaAuthorities {}
                pub mod submit_report_equivocation_unsigned_extrinsic {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_grandpa::EquivocationProof<
                            ::subxt::ext::subxt_core::utils::H256,
                            ::core::primitive::u32,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportEquivocationUnsignedExtrinsic {
                    pub equivocation_proof:
                        submit_report_equivocation_unsigned_extrinsic::EquivocationProof,
                    pub key_owner_proof:
                        submit_report_equivocation_unsigned_extrinsic::KeyOwnerProof,
                }
                pub mod generate_key_ownership_proof {
                    use super::runtime_types;
                    pub type SetId = ::core::primitive::u64;
                    pub type AuthorityId = runtime_types::sp_consensus_grandpa::app::Public;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::core::option::Option<runtime_types::sp_runtime::OpaqueValue>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateKeyOwnershipProof {
                    pub set_id: generate_key_ownership_proof::SetId,
                    pub authority_id: generate_key_ownership_proof::AuthorityId,
                }
                pub mod current_set_id {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u64;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CurrentSetId {}
            }
        }
        pub mod babe_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API necessary for block authorship with BABE."]
            pub struct BabeApi;
            impl BabeApi {
                #[doc = " Return the configuration for BABE."]
                pub fn configuration(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Configuration,
                    types::configuration::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "configuration",
                        types::Configuration {},
                        [
                            50u8, 198u8, 27u8, 26u8, 92u8, 199u8, 8u8, 181u8, 12u8, 199u8, 116u8,
                            247u8, 95u8, 70u8, 241u8, 24u8, 14u8, 250u8, 179u8, 77u8, 251u8, 55u8,
                            133u8, 8u8, 142u8, 107u8, 6u8, 214u8, 228u8, 38u8, 134u8, 153u8,
                        ],
                    )
                }
                #[doc = " Returns the slot that started the current epoch."]
                pub fn current_epoch_start(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CurrentEpochStart,
                    types::current_epoch_start::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "current_epoch_start",
                        types::CurrentEpochStart {},
                        [
                            122u8, 125u8, 246u8, 170u8, 27u8, 50u8, 128u8, 137u8, 228u8, 62u8,
                            145u8, 64u8, 65u8, 119u8, 166u8, 237u8, 115u8, 92u8, 125u8, 124u8,
                            11u8, 33u8, 96u8, 88u8, 88u8, 122u8, 141u8, 137u8, 58u8, 182u8, 148u8,
                            170u8,
                        ],
                    )
                }
                #[doc = " Returns information regarding the current epoch."]
                pub fn current_epoch(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::CurrentEpoch,
                    types::current_epoch::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "current_epoch",
                        types::CurrentEpoch {},
                        [
                            70u8, 68u8, 222u8, 110u8, 96u8, 143u8, 126u8, 136u8, 182u8, 163u8,
                            104u8, 122u8, 21u8, 156u8, 6u8, 26u8, 86u8, 145u8, 153u8, 133u8, 251u8,
                            137u8, 238u8, 218u8, 132u8, 218u8, 222u8, 140u8, 190u8, 232u8, 197u8,
                            86u8,
                        ],
                    )
                }
                #[doc = " Returns information regarding the next epoch (which was already"]
                #[doc = " previously announced)."]
                pub fn next_epoch(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::NextEpoch,
                    types::next_epoch::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "next_epoch",
                        types::NextEpoch {},
                        [
                            141u8, 86u8, 122u8, 185u8, 215u8, 255u8, 142u8, 131u8, 8u8, 178u8,
                            143u8, 200u8, 148u8, 84u8, 174u8, 215u8, 91u8, 251u8, 243u8, 155u8,
                            92u8, 13u8, 44u8, 53u8, 128u8, 26u8, 165u8, 172u8, 49u8, 33u8, 130u8,
                            148u8,
                        ],
                    )
                }
                #[doc = " Generates a proof of key ownership for the given authority in the"]
                #[doc = " current epoch. An example usage of this module is coupled with the"]
                #[doc = " session historical module to prove that a given authority key is"]
                #[doc = " tied to a given staking identity during a specific session. Proofs"]
                #[doc = " of key ownership are necessary for submitting equivocation reports."]
                #[doc = " NOTE: even though the API takes a `slot` as parameter the current"]
                #[doc = " implementations ignores this parameter and instead relies on this"]
                #[doc = " method being called at the correct block height, i.e. any point at"]
                #[doc = " which the epoch for the given slot is live on-chain. Future"]
                #[doc = " implementations will instead use indexed data through an offchain"]
                #[doc = " worker, not requiring older states to be available."]
                pub fn generate_key_ownership_proof(
                    &self,
                    slot: types::generate_key_ownership_proof::Slot,
                    authority_id: types::generate_key_ownership_proof::AuthorityId,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateKeyOwnershipProof,
                    types::generate_key_ownership_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "generate_key_ownership_proof",
                        types::GenerateKeyOwnershipProof { slot, authority_id },
                        [
                            13u8, 228u8, 75u8, 150u8, 203u8, 132u8, 82u8, 188u8, 17u8, 70u8, 169u8,
                            19u8, 102u8, 96u8, 217u8, 209u8, 215u8, 196u8, 78u8, 141u8, 12u8, 14u8,
                            151u8, 65u8, 173u8, 2u8, 100u8, 150u8, 18u8, 99u8, 19u8, 196u8,
                        ],
                    )
                }
                #[doc = " Submits an unsigned extrinsic to report an equivocation. The caller"]
                #[doc = " must provide the equivocation proof and a key ownership proof"]
                #[doc = " (should be obtained using `generate_key_ownership_proof`). The"]
                #[doc = " extrinsic will be unsigned and should only be accepted for local"]
                #[doc = " authorship (not to be broadcast to the network). This method returns"]
                #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"]
                #[doc = " reporting is disabled for the given runtime (i.e. this method is"]
                #[doc = " hardcoded to return `None`). Only useful in an offchain context."]
                pub fn submit_report_equivocation_unsigned_extrinsic(
                    &self,
                    equivocation_proof : types :: submit_report_equivocation_unsigned_extrinsic :: EquivocationProof,
                    key_owner_proof : types :: submit_report_equivocation_unsigned_extrinsic :: KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::SubmitReportEquivocationUnsignedExtrinsic,
                    types::submit_report_equivocation_unsigned_extrinsic::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BabeApi",
                        "submit_report_equivocation_unsigned_extrinsic",
                        types::SubmitReportEquivocationUnsignedExtrinsic {
                            equivocation_proof,
                            key_owner_proof,
                        },
                        [
                            99u8, 80u8, 38u8, 173u8, 235u8, 48u8, 229u8, 88u8, 250u8, 165u8, 57u8,
                            245u8, 85u8, 156u8, 114u8, 190u8, 144u8, 78u8, 37u8, 22u8, 36u8, 36u8,
                            53u8, 174u8, 118u8, 222u8, 16u8, 159u8, 201u8, 254u8, 233u8, 82u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod configuration {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_babe::BabeConfiguration;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Configuration {}
                pub mod current_epoch_start {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_slots::Slot;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CurrentEpochStart {}
                pub mod current_epoch {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_babe::Epoch;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CurrentEpoch {}
                pub mod next_epoch {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_babe::Epoch;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct NextEpoch {}
                pub mod generate_key_ownership_proof {
                    use super::runtime_types;
                    pub type Slot = runtime_types::sp_consensus_slots::Slot;
                    pub type AuthorityId = runtime_types::sp_consensus_babe::app::Public;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            runtime_types::sp_consensus_babe::OpaqueKeyOwnershipProof,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateKeyOwnershipProof {
                    pub slot: generate_key_ownership_proof::Slot,
                    pub authority_id: generate_key_ownership_proof::AuthorityId,
                }
                pub mod submit_report_equivocation_unsigned_extrinsic {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_slots::EquivocationProof<
                            runtime_types::sp_runtime::generic::header::Header<
                                ::core::primitive::u32,
                            >,
                            runtime_types::sp_consensus_babe::app::Public,
                        >;
                    pub type KeyOwnerProof =
                        runtime_types::sp_consensus_babe::OpaqueKeyOwnershipProof;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<()>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SubmitReportEquivocationUnsignedExtrinsic {
                    pub equivocation_proof:
                        submit_report_equivocation_unsigned_extrinsic::EquivocationProof,
                    pub key_owner_proof:
                        submit_report_equivocation_unsigned_extrinsic::KeyOwnerProof,
                }
            }
        }
        pub mod authority_discovery_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The authority discovery api."]
            #[doc = ""]
            #[doc = " This api is used by the `client/authority-discovery` module to retrieve identifiers"]
            #[doc = " of the current and next authority set."]
            pub struct AuthorityDiscoveryApi;
            impl AuthorityDiscoveryApi {
                #[doc = " Retrieve authority identifiers of the current and next authority set."]
                pub fn authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::Authorities,
                    types::authorities::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "AuthorityDiscoveryApi",
                        "authorities",
                        types::Authorities {},
                        [
                            165u8, 81u8, 77u8, 215u8, 27u8, 128u8, 36u8, 135u8, 216u8, 203u8, 60u8,
                            250u8, 235u8, 22u8, 149u8, 99u8, 233u8, 114u8, 62u8, 69u8, 27u8, 185u8,
                            45u8, 164u8, 136u8, 168u8, 108u8, 168u8, 24u8, 3u8, 66u8, 155u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod authorities {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::sp_authority_discovery::app::Public,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Authorities {}
            }
        }
        pub mod session_keys {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " Session keys runtime api."]
            pub struct SessionKeys;
            impl SessionKeys {
                #[doc = " Generate a set of session keys with optionally using the given seed."]
                #[doc = " The keys should be stored within the keystore exposed via runtime"]
                #[doc = " externalities."]
                #[doc = ""]
                #[doc = " The seed needs to be a valid `utf8` string."]
                #[doc = ""]
                #[doc = " Returns the concatenated SCALE encoded public keys."]
                pub fn generate_session_keys(
                    &self,
                    seed: types::generate_session_keys::Seed,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GenerateSessionKeys,
                    types::generate_session_keys::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "SessionKeys",
                        "generate_session_keys",
                        types::GenerateSessionKeys { seed },
                        [
                            96u8, 171u8, 164u8, 166u8, 175u8, 102u8, 101u8, 47u8, 133u8, 95u8,
                            102u8, 202u8, 83u8, 26u8, 238u8, 47u8, 126u8, 132u8, 22u8, 11u8, 33u8,
                            190u8, 175u8, 94u8, 58u8, 245u8, 46u8, 80u8, 195u8, 184u8, 107u8, 65u8,
                        ],
                    )
                }
                #[doc = " Decode the given public session keys."]
                #[doc = ""]
                #[doc = " Returns the list of public raw public keys + key type."]
                pub fn decode_session_keys(
                    &self,
                    encoded: types::decode_session_keys::Encoded,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::DecodeSessionKeys,
                    types::decode_session_keys::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "SessionKeys",
                        "decode_session_keys",
                        types::DecodeSessionKeys { encoded },
                        [
                            57u8, 242u8, 18u8, 51u8, 132u8, 110u8, 238u8, 255u8, 39u8, 194u8, 8u8,
                            54u8, 198u8, 178u8, 75u8, 151u8, 148u8, 176u8, 144u8, 197u8, 87u8,
                            29u8, 179u8, 235u8, 176u8, 78u8, 252u8, 103u8, 72u8, 203u8, 151u8,
                            248u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod generate_session_keys {
                    use super::runtime_types;
                    pub type Seed = ::core::option::Option<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GenerateSessionKeys {
                    pub seed: generate_session_keys::Seed,
                }
                pub mod decode_session_keys {
                    use super::runtime_types;
                    pub type Encoded =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<(
                                ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                                runtime_types::sp_core::crypto::KeyTypeId,
                            )>,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DecodeSessionKeys {
                    pub encoded: decode_session_keys::Encoded,
                }
            }
        }
        pub mod account_nonce_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " The API to query account nonce."]
            pub struct AccountNonceApi;
            impl AccountNonceApi {
                #[doc = " Get current account nonce of given `AccountId`."]
                pub fn account_nonce(
                    &self,
                    account: types::account_nonce::Account,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::AccountNonce,
                    types::account_nonce::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "AccountNonceApi",
                        "account_nonce",
                        types::AccountNonce { account },
                        [
                            231u8, 82u8, 7u8, 227u8, 131u8, 2u8, 215u8, 252u8, 173u8, 82u8, 11u8,
                            103u8, 200u8, 25u8, 114u8, 116u8, 79u8, 229u8, 152u8, 150u8, 236u8,
                            37u8, 101u8, 26u8, 220u8, 146u8, 182u8, 101u8, 73u8, 55u8, 191u8,
                            171u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod account_nonce {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u32;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AccountNonce {
                    pub account: account_nonce::Account,
                }
            }
        }
        pub mod transaction_payment_api {
            use super::root_mod;
            use super::runtime_types;
            pub struct TransactionPaymentApi;
            impl TransactionPaymentApi {
                pub fn query_info(
                    &self,
                    uxt: types::query_info::Uxt,
                    len: types::query_info::Len,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryInfo,
                    types::query_info::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TransactionPaymentApi",
                        "query_info",
                        types::QueryInfo { uxt, len },
                        [
                            56u8, 30u8, 174u8, 34u8, 202u8, 24u8, 177u8, 189u8, 145u8, 36u8, 1u8,
                            156u8, 98u8, 209u8, 178u8, 49u8, 198u8, 23u8, 150u8, 173u8, 35u8,
                            205u8, 147u8, 129u8, 42u8, 22u8, 69u8, 3u8, 129u8, 8u8, 196u8, 139u8,
                        ],
                    )
                }
                pub fn query_fee_details(
                    &self,
                    uxt: types::query_fee_details::Uxt,
                    len: types::query_fee_details::Len,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryFeeDetails,
                    types::query_fee_details::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TransactionPaymentApi",
                        "query_fee_details",
                        types::QueryFeeDetails { uxt, len },
                        [
                            117u8, 60u8, 137u8, 159u8, 237u8, 252u8, 216u8, 238u8, 232u8, 1u8,
                            100u8, 152u8, 26u8, 185u8, 145u8, 125u8, 68u8, 189u8, 4u8, 30u8, 125u8,
                            7u8, 196u8, 153u8, 235u8, 51u8, 219u8, 108u8, 185u8, 254u8, 100u8,
                            201u8,
                        ],
                    )
                }
                pub fn query_weight_to_fee(
                    &self,
                    weight: types::query_weight_to_fee::Weight,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryWeightToFee,
                    types::query_weight_to_fee::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TransactionPaymentApi",
                        "query_weight_to_fee",
                        types::QueryWeightToFee { weight },
                        [
                            206u8, 243u8, 189u8, 83u8, 231u8, 244u8, 247u8, 52u8, 126u8, 208u8,
                            224u8, 5u8, 163u8, 108u8, 254u8, 114u8, 214u8, 156u8, 227u8, 217u8,
                            211u8, 198u8, 121u8, 164u8, 110u8, 54u8, 181u8, 146u8, 50u8, 146u8,
                            146u8, 23u8,
                        ],
                    )
                }
                pub fn query_length_to_fee(
                    &self,
                    length: types::query_length_to_fee::Length,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::QueryLengthToFee,
                    types::query_length_to_fee::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TransactionPaymentApi",
                        "query_length_to_fee",
                        types::QueryLengthToFee { length },
                        [
                            92u8, 132u8, 29u8, 119u8, 66u8, 11u8, 196u8, 224u8, 129u8, 23u8, 249u8,
                            12u8, 32u8, 28u8, 92u8, 50u8, 188u8, 101u8, 203u8, 229u8, 248u8, 216u8,
                            130u8, 150u8, 212u8, 161u8, 81u8, 254u8, 116u8, 89u8, 162u8, 48u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod query_info {
                    use super::runtime_types;
                    pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > ;
                    pub type Len = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            runtime_types::pallet_transaction_payment::types::RuntimeDispatchInfo<
                                ::core::primitive::u128,
                                runtime_types::sp_weights::weight_v2::Weight,
                            >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryInfo {
                    pub uxt: query_info::Uxt,
                    pub len: query_info::Len,
                }
                pub mod query_fee_details {
                    use super::runtime_types;
                    pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: authorize_call :: AuthorizeCall , runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: frame_system :: extensions :: weight_reclaim :: WeightReclaim ,) > ;
                    pub type Len = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output =
                            runtime_types::pallet_transaction_payment::types::FeeDetails<
                                ::core::primitive::u128,
                            >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryFeeDetails {
                    pub uxt: query_fee_details::Uxt,
                    pub len: query_fee_details::Len,
                }
                pub mod query_weight_to_fee {
                    use super::runtime_types;
                    pub type Weight = runtime_types::sp_weights::weight_v2::Weight;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u128;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryWeightToFee {
                    pub weight: query_weight_to_fee::Weight,
                }
                pub mod query_length_to_fee {
                    use super::runtime_types;
                    pub type Length = ::core::primitive::u32;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::primitive::u128;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryLengthToFee {
                    pub length: query_length_to_fee::Length,
                }
            }
        }
        pub mod beefy_mmr_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API useful for BEEFY light clients."]
            pub struct BeefyMmrApi;
            impl BeefyMmrApi {
                #[doc = " Return the currently active BEEFY authority set proof."]
                pub fn authority_set_proof(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::AuthoritySetProof,
                    types::authority_set_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyMmrApi",
                        "authority_set_proof",
                        types::AuthoritySetProof {},
                        [
                            199u8, 220u8, 251u8, 219u8, 216u8, 5u8, 181u8, 172u8, 191u8, 209u8,
                            123u8, 25u8, 151u8, 129u8, 166u8, 21u8, 107u8, 22u8, 74u8, 144u8,
                            202u8, 6u8, 254u8, 197u8, 148u8, 227u8, 131u8, 244u8, 254u8, 193u8,
                            212u8, 97u8,
                        ],
                    )
                }
                #[doc = " Return the next/queued BEEFY authority set proof."]
                pub fn next_authority_set_proof(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::NextAuthoritySetProof,
                    types::next_authority_set_proof::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "BeefyMmrApi",
                        "next_authority_set_proof",
                        types::NextAuthoritySetProof {},
                        [
                            66u8, 217u8, 48u8, 108u8, 211u8, 187u8, 61u8, 85u8, 210u8, 59u8, 128u8,
                            159u8, 34u8, 151u8, 154u8, 140u8, 13u8, 244u8, 31u8, 216u8, 67u8, 67u8,
                            171u8, 112u8, 51u8, 145u8, 4u8, 22u8, 252u8, 242u8, 192u8, 130u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod authority_set_proof {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet<
                            ::subxt::ext::subxt_core::utils::H256,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AuthoritySetProof {}
                pub mod next_authority_set_proof {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet<
                            ::subxt::ext::subxt_core::utils::H256,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct NextAuthoritySetProof {}
            }
        }
        pub mod genesis_builder {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API to interact with `RuntimeGenesisConfig` for the runtime"]
            pub struct GenesisBuilder;
            impl GenesisBuilder {
                #[doc = " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the"]
                #[doc = " storage."]
                #[doc = ""]
                #[doc = " In the case of a FRAME-based runtime, this function deserializes the full"]
                #[doc = " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the"]
                #[doc = " provided JSON blob is incorrect or incomplete or the deserialization fails, an error"]
                #[doc = " is returned."]
                #[doc = ""]
                #[doc = " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no"]
                #[doc = " defaults will be used."]
                pub fn build_state(
                    &self,
                    json: types::build_state::Json,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::BuildState,
                    types::build_state::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GenesisBuilder",
                        "build_state",
                        types::BuildState { json },
                        [
                            203u8, 233u8, 104u8, 116u8, 111u8, 131u8, 201u8, 235u8, 117u8, 116u8,
                            140u8, 185u8, 93u8, 25u8, 155u8, 210u8, 56u8, 49u8, 23u8, 32u8, 253u8,
                            92u8, 149u8, 241u8, 85u8, 245u8, 137u8, 45u8, 209u8, 189u8, 81u8, 2u8,
                        ],
                    )
                }
                #[doc = " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by"]
                #[doc = " `id`."]
                #[doc = ""]
                #[doc = " If `id` is `None` the function should return JSON blob representation of the default"]
                #[doc = " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default"]
                #[doc = " `RuntimeGenesisConfig`."]
                #[doc = ""]
                #[doc = " Otherwise function returns a JSON representation of the built-in, named"]
                #[doc = " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not"]
                #[doc = " exist. Returned `Vec<u8>` contains bytes of JSON blob (patch) which comprises a list of"]
                #[doc = " (potentially nested) key-value pairs that are intended for customizing the default"]
                #[doc = " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation"]
                #[doc = " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can"]
                #[doc = " be used in `build_state` method."]
                pub fn get_preset(
                    &self,
                    id: types::get_preset::Id,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::GetPreset,
                    types::get_preset::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GenesisBuilder",
                        "get_preset",
                        types::GetPreset { id },
                        [
                            43u8, 153u8, 23u8, 52u8, 113u8, 161u8, 227u8, 122u8, 169u8, 135u8,
                            119u8, 8u8, 128u8, 33u8, 143u8, 235u8, 13u8, 173u8, 58u8, 121u8, 178u8,
                            223u8, 66u8, 217u8, 22u8, 244u8, 168u8, 113u8, 202u8, 186u8, 241u8,
                            124u8,
                        ],
                    )
                }
                #[doc = " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets."]
                #[doc = ""]
                #[doc = " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If"]
                #[doc = " no named presets are provided by the runtime the list is empty."]
                pub fn preset_names(
                    &self,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::PresetNames,
                    types::preset_names::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "GenesisBuilder",
                        "preset_names",
                        types::PresetNames {},
                        [
                            150u8, 117u8, 54u8, 129u8, 221u8, 130u8, 186u8, 71u8, 13u8, 140u8,
                            77u8, 180u8, 141u8, 37u8, 22u8, 219u8, 149u8, 218u8, 186u8, 206u8,
                            80u8, 42u8, 165u8, 41u8, 99u8, 184u8, 73u8, 37u8, 125u8, 188u8, 167u8,
                            122u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod build_state {
                    use super::runtime_types;
                    pub type Json =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            (),
                            ::subxt::ext::subxt_core::alloc::string::String,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BuildState {
                    pub json: build_state::Json,
                }
                pub mod get_preset {
                    use super::runtime_types;
                    pub type Id =
                        ::core::option::Option<::subxt::ext::subxt_core::alloc::string::String>;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::option::Option<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GetPreset {
                    pub id: get_preset::Id,
                }
                pub mod preset_names {
                    use super::runtime_types;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::alloc::string::String,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PresetNames {}
            }
        }
        pub mod trusted_query_api {
            use super::root_mod;
            use super::runtime_types;
            #[doc = " API for querying trusted reserves and trusted teleporters."]
            pub struct TrustedQueryApi;
            impl TrustedQueryApi {
                #[doc = " Returns if the location is a trusted reserve for the asset."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = " * `asset`: `VersionedAsset`."]
                #[doc = " * `location`: `VersionedLocation`."]
                pub fn is_trusted_reserve(
                    &self,
                    asset: types::is_trusted_reserve::Asset,
                    location: types::is_trusted_reserve::Location,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::IsTrustedReserve,
                    types::is_trusted_reserve::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TrustedQueryApi",
                        "is_trusted_reserve",
                        types::IsTrustedReserve { asset, location },
                        [
                            45u8, 87u8, 28u8, 66u8, 50u8, 121u8, 129u8, 188u8, 160u8, 192u8, 14u8,
                            205u8, 141u8, 223u8, 5u8, 125u8, 82u8, 180u8, 231u8, 162u8, 134u8,
                            98u8, 62u8, 104u8, 243u8, 184u8, 47u8, 49u8, 139u8, 206u8, 2u8, 86u8,
                        ],
                    )
                }
                #[doc = " Returns if the asset can be teleported to the location."]
                #[doc = ""]
                #[doc = " # Arguments"]
                #[doc = " * `asset`: `VersionedAsset`."]
                #[doc = " * `location`: `VersionedLocation`."]
                pub fn is_trusted_teleporter(
                    &self,
                    asset: types::is_trusted_teleporter::Asset,
                    location: types::is_trusted_teleporter::Location,
                ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload<
                    types::IsTrustedTeleporter,
                    types::is_trusted_teleporter::output::Output,
                > {
                    ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static(
                        "TrustedQueryApi",
                        "is_trusted_teleporter",
                        types::IsTrustedTeleporter { asset, location },
                        [
                            1u8, 161u8, 124u8, 10u8, 170u8, 140u8, 226u8, 50u8, 114u8, 90u8, 61u8,
                            123u8, 58u8, 135u8, 75u8, 38u8, 140u8, 55u8, 177u8, 33u8, 38u8, 89u8,
                            147u8, 54u8, 44u8, 56u8, 234u8, 193u8, 234u8, 206u8, 139u8, 84u8,
                        ],
                    )
                }
            }
            pub mod types {
                use super::runtime_types;
                pub mod is_trusted_reserve {
                    use super::runtime_types;
                    pub type Asset = runtime_types::xcm::VersionedAsset;
                    pub type Location = runtime_types::xcm::VersionedLocation;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::core::primitive::bool,
                            runtime_types::xcm_runtime_apis::trusted_query::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct IsTrustedReserve {
                    pub asset: is_trusted_reserve::Asset,
                    pub location: is_trusted_reserve::Location,
                }
                pub mod is_trusted_teleporter {
                    use super::runtime_types;
                    pub type Asset = runtime_types::xcm::VersionedAsset;
                    pub type Location = runtime_types::xcm::VersionedLocation;
                    pub mod output {
                        use super::runtime_types;
                        pub type Output = ::core::result::Result<
                            ::core::primitive::bool,
                            runtime_types::xcm_runtime_apis::trusted_query::Error,
                        >;
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct IsTrustedTeleporter {
                    pub asset: is_trusted_teleporter::Asset,
                    pub location: is_trusted_teleporter::Location,
                }
            }
        }
    }
    pub fn view_functions() -> ViewFunctionsApi {
        ViewFunctionsApi
    }
    pub fn custom() -> CustomValuesApi {
        CustomValuesApi
    }
    pub struct CustomValuesApi;
    impl CustomValuesApi {}
    pub struct ConstantsApi;
    impl ConstantsApi {
        pub fn system(&self) -> system::constants::ConstantsApi {
            system::constants::ConstantsApi
        }
        pub fn babe(&self) -> babe::constants::ConstantsApi {
            babe::constants::ConstantsApi
        }
        pub fn timestamp(&self) -> timestamp::constants::ConstantsApi {
            timestamp::constants::ConstantsApi
        }
        pub fn indices(&self) -> indices::constants::ConstantsApi {
            indices::constants::ConstantsApi
        }
        pub fn balances(&self) -> balances::constants::ConstantsApi {
            balances::constants::ConstantsApi
        }
        pub fn transaction_payment(&self) -> transaction_payment::constants::ConstantsApi {
            transaction_payment::constants::ConstantsApi
        }
        pub fn session(&self) -> session::constants::ConstantsApi {
            session::constants::ConstantsApi
        }
        pub fn grandpa(&self) -> grandpa::constants::ConstantsApi {
            grandpa::constants::ConstantsApi
        }
        pub fn treasury(&self) -> treasury::constants::ConstantsApi {
            treasury::constants::ConstantsApi
        }
        pub fn conviction_voting(&self) -> conviction_voting::constants::ConstantsApi {
            conviction_voting::constants::ConstantsApi
        }
        pub fn referenda(&self) -> referenda::constants::ConstantsApi {
            referenda::constants::ConstantsApi
        }
        pub fn fellowship_referenda(&self) -> fellowship_referenda::constants::ConstantsApi {
            fellowship_referenda::constants::ConstantsApi
        }
        pub fn claims(&self) -> claims::constants::ConstantsApi {
            claims::constants::ConstantsApi
        }
        pub fn utility(&self) -> utility::constants::ConstantsApi {
            utility::constants::ConstantsApi
        }
        pub fn identity(&self) -> identity::constants::ConstantsApi {
            identity::constants::ConstantsApi
        }
        pub fn society(&self) -> society::constants::ConstantsApi {
            society::constants::ConstantsApi
        }
        pub fn recovery(&self) -> recovery::constants::ConstantsApi {
            recovery::constants::ConstantsApi
        }
        pub fn vesting(&self) -> vesting::constants::ConstantsApi {
            vesting::constants::ConstantsApi
        }
        pub fn scheduler(&self) -> scheduler::constants::ConstantsApi {
            scheduler::constants::ConstantsApi
        }
        pub fn proxy(&self) -> proxy::constants::ConstantsApi {
            proxy::constants::ConstantsApi
        }
        pub fn multisig(&self) -> multisig::constants::ConstantsApi {
            multisig::constants::ConstantsApi
        }
        pub fn bounties(&self) -> bounties::constants::ConstantsApi {
            bounties::constants::ConstantsApi
        }
        pub fn child_bounties(&self) -> child_bounties::constants::ConstantsApi {
            child_bounties::constants::ConstantsApi
        }
        pub fn nis(&self) -> nis::constants::ConstantsApi {
            nis::constants::ConstantsApi
        }
        pub fn nis_counterpart_balances(
            &self,
        ) -> nis_counterpart_balances::constants::ConstantsApi {
            nis_counterpart_balances::constants::ConstantsApi
        }
        pub fn paras(&self) -> paras::constants::ConstantsApi {
            paras::constants::ConstantsApi
        }
        pub fn message_queue(&self) -> message_queue::constants::ConstantsApi {
            message_queue::constants::ConstantsApi
        }
        pub fn on_demand_assignment_provider(
            &self,
        ) -> on_demand_assignment_provider::constants::ConstantsApi {
            on_demand_assignment_provider::constants::ConstantsApi
        }
        pub fn registrar(&self) -> registrar::constants::ConstantsApi {
            registrar::constants::ConstantsApi
        }
        pub fn slots(&self) -> slots::constants::ConstantsApi {
            slots::constants::ConstantsApi
        }
        pub fn auctions(&self) -> auctions::constants::ConstantsApi {
            auctions::constants::ConstantsApi
        }
        pub fn crowdloan(&self) -> crowdloan::constants::ConstantsApi {
            crowdloan::constants::ConstantsApi
        }
        pub fn coretime(&self) -> coretime::constants::ConstantsApi {
            coretime::constants::ConstantsApi
        }
        pub fn multi_block_migrations(&self) -> multi_block_migrations::constants::ConstantsApi {
            multi_block_migrations::constants::ConstantsApi
        }
        pub fn xcm_pallet(&self) -> xcm_pallet::constants::ConstantsApi {
            xcm_pallet::constants::ConstantsApi
        }
        pub fn beefy(&self) -> beefy::constants::ConstantsApi {
            beefy::constants::ConstantsApi
        }
        pub fn assigned_slots(&self) -> assigned_slots::constants::ConstantsApi {
            assigned_slots::constants::ConstantsApi
        }
        pub fn state_trie_migration(&self) -> state_trie_migration::constants::ConstantsApi {
            state_trie_migration::constants::ConstantsApi
        }
    }
    pub struct StorageApi;
    impl StorageApi {
        pub fn system(&self) -> system::storage::StorageApi {
            system::storage::StorageApi
        }
        pub fn babe(&self) -> babe::storage::StorageApi {
            babe::storage::StorageApi
        }
        pub fn timestamp(&self) -> timestamp::storage::StorageApi {
            timestamp::storage::StorageApi
        }
        pub fn indices(&self) -> indices::storage::StorageApi {
            indices::storage::StorageApi
        }
        pub fn balances(&self) -> balances::storage::StorageApi {
            balances::storage::StorageApi
        }
        pub fn parameters(&self) -> parameters::storage::StorageApi {
            parameters::storage::StorageApi
        }
        pub fn transaction_payment(&self) -> transaction_payment::storage::StorageApi {
            transaction_payment::storage::StorageApi
        }
        pub fn authorship(&self) -> authorship::storage::StorageApi {
            authorship::storage::StorageApi
        }
        pub fn offences(&self) -> offences::storage::StorageApi {
            offences::storage::StorageApi
        }
        pub fn historical(&self) -> historical::storage::StorageApi {
            historical::storage::StorageApi
        }
        pub fn session(&self) -> session::storage::StorageApi {
            session::storage::StorageApi
        }
        pub fn grandpa(&self) -> grandpa::storage::StorageApi {
            grandpa::storage::StorageApi
        }
        pub fn authority_discovery(&self) -> authority_discovery::storage::StorageApi {
            authority_discovery::storage::StorageApi
        }
        pub fn treasury(&self) -> treasury::storage::StorageApi {
            treasury::storage::StorageApi
        }
        pub fn conviction_voting(&self) -> conviction_voting::storage::StorageApi {
            conviction_voting::storage::StorageApi
        }
        pub fn referenda(&self) -> referenda::storage::StorageApi {
            referenda::storage::StorageApi
        }
        pub fn fellowship_collective(&self) -> fellowship_collective::storage::StorageApi {
            fellowship_collective::storage::StorageApi
        }
        pub fn fellowship_referenda(&self) -> fellowship_referenda::storage::StorageApi {
            fellowship_referenda::storage::StorageApi
        }
        pub fn whitelist(&self) -> whitelist::storage::StorageApi {
            whitelist::storage::StorageApi
        }
        pub fn claims(&self) -> claims::storage::StorageApi {
            claims::storage::StorageApi
        }
        pub fn identity(&self) -> identity::storage::StorageApi {
            identity::storage::StorageApi
        }
        pub fn society(&self) -> society::storage::StorageApi {
            society::storage::StorageApi
        }
        pub fn recovery(&self) -> recovery::storage::StorageApi {
            recovery::storage::StorageApi
        }
        pub fn vesting(&self) -> vesting::storage::StorageApi {
            vesting::storage::StorageApi
        }
        pub fn scheduler(&self) -> scheduler::storage::StorageApi {
            scheduler::storage::StorageApi
        }
        pub fn proxy(&self) -> proxy::storage::StorageApi {
            proxy::storage::StorageApi
        }
        pub fn multisig(&self) -> multisig::storage::StorageApi {
            multisig::storage::StorageApi
        }
        pub fn preimage(&self) -> preimage::storage::StorageApi {
            preimage::storage::StorageApi
        }
        pub fn asset_rate(&self) -> asset_rate::storage::StorageApi {
            asset_rate::storage::StorageApi
        }
        pub fn bounties(&self) -> bounties::storage::StorageApi {
            bounties::storage::StorageApi
        }
        pub fn child_bounties(&self) -> child_bounties::storage::StorageApi {
            child_bounties::storage::StorageApi
        }
        pub fn nis(&self) -> nis::storage::StorageApi {
            nis::storage::StorageApi
        }
        pub fn nis_counterpart_balances(&self) -> nis_counterpart_balances::storage::StorageApi {
            nis_counterpart_balances::storage::StorageApi
        }
        pub fn configuration(&self) -> configuration::storage::StorageApi {
            configuration::storage::StorageApi
        }
        pub fn paras_shared(&self) -> paras_shared::storage::StorageApi {
            paras_shared::storage::StorageApi
        }
        pub fn para_inclusion(&self) -> para_inclusion::storage::StorageApi {
            para_inclusion::storage::StorageApi
        }
        pub fn para_inherent(&self) -> para_inherent::storage::StorageApi {
            para_inherent::storage::StorageApi
        }
        pub fn para_scheduler(&self) -> para_scheduler::storage::StorageApi {
            para_scheduler::storage::StorageApi
        }
        pub fn paras(&self) -> paras::storage::StorageApi {
            paras::storage::StorageApi
        }
        pub fn initializer(&self) -> initializer::storage::StorageApi {
            initializer::storage::StorageApi
        }
        pub fn dmp(&self) -> dmp::storage::StorageApi {
            dmp::storage::StorageApi
        }
        pub fn hrmp(&self) -> hrmp::storage::StorageApi {
            hrmp::storage::StorageApi
        }
        pub fn para_session_info(&self) -> para_session_info::storage::StorageApi {
            para_session_info::storage::StorageApi
        }
        pub fn paras_disputes(&self) -> paras_disputes::storage::StorageApi {
            paras_disputes::storage::StorageApi
        }
        pub fn paras_slashing(&self) -> paras_slashing::storage::StorageApi {
            paras_slashing::storage::StorageApi
        }
        pub fn message_queue(&self) -> message_queue::storage::StorageApi {
            message_queue::storage::StorageApi
        }
        pub fn on_demand_assignment_provider(
            &self,
        ) -> on_demand_assignment_provider::storage::StorageApi {
            on_demand_assignment_provider::storage::StorageApi
        }
        pub fn coretime_assignment_provider(
            &self,
        ) -> coretime_assignment_provider::storage::StorageApi {
            coretime_assignment_provider::storage::StorageApi
        }
        pub fn registrar(&self) -> registrar::storage::StorageApi {
            registrar::storage::StorageApi
        }
        pub fn slots(&self) -> slots::storage::StorageApi {
            slots::storage::StorageApi
        }
        pub fn auctions(&self) -> auctions::storage::StorageApi {
            auctions::storage::StorageApi
        }
        pub fn crowdloan(&self) -> crowdloan::storage::StorageApi {
            crowdloan::storage::StorageApi
        }
        pub fn multi_block_migrations(&self) -> multi_block_migrations::storage::StorageApi {
            multi_block_migrations::storage::StorageApi
        }
        pub fn xcm_pallet(&self) -> xcm_pallet::storage::StorageApi {
            xcm_pallet::storage::StorageApi
        }
        pub fn beefy(&self) -> beefy::storage::StorageApi {
            beefy::storage::StorageApi
        }
        pub fn mmr(&self) -> mmr::storage::StorageApi {
            mmr::storage::StorageApi
        }
        pub fn mmr_leaf(&self) -> mmr_leaf::storage::StorageApi {
            mmr_leaf::storage::StorageApi
        }
        pub fn assigned_slots(&self) -> assigned_slots::storage::StorageApi {
            assigned_slots::storage::StorageApi
        }
        pub fn validator_manager(&self) -> validator_manager::storage::StorageApi {
            validator_manager::storage::StorageApi
        }
        pub fn state_trie_migration(&self) -> state_trie_migration::storage::StorageApi {
            state_trie_migration::storage::StorageApi
        }
        pub fn sudo(&self) -> sudo::storage::StorageApi {
            sudo::storage::StorageApi
        }
    }
    pub struct TransactionApi;
    impl TransactionApi {
        pub fn system(&self) -> system::calls::TransactionApi {
            system::calls::TransactionApi
        }
        pub fn babe(&self) -> babe::calls::TransactionApi {
            babe::calls::TransactionApi
        }
        pub fn timestamp(&self) -> timestamp::calls::TransactionApi {
            timestamp::calls::TransactionApi
        }
        pub fn indices(&self) -> indices::calls::TransactionApi {
            indices::calls::TransactionApi
        }
        pub fn balances(&self) -> balances::calls::TransactionApi {
            balances::calls::TransactionApi
        }
        pub fn parameters(&self) -> parameters::calls::TransactionApi {
            parameters::calls::TransactionApi
        }
        pub fn session(&self) -> session::calls::TransactionApi {
            session::calls::TransactionApi
        }
        pub fn grandpa(&self) -> grandpa::calls::TransactionApi {
            grandpa::calls::TransactionApi
        }
        pub fn treasury(&self) -> treasury::calls::TransactionApi {
            treasury::calls::TransactionApi
        }
        pub fn conviction_voting(&self) -> conviction_voting::calls::TransactionApi {
            conviction_voting::calls::TransactionApi
        }
        pub fn referenda(&self) -> referenda::calls::TransactionApi {
            referenda::calls::TransactionApi
        }
        pub fn fellowship_collective(&self) -> fellowship_collective::calls::TransactionApi {
            fellowship_collective::calls::TransactionApi
        }
        pub fn fellowship_referenda(&self) -> fellowship_referenda::calls::TransactionApi {
            fellowship_referenda::calls::TransactionApi
        }
        pub fn whitelist(&self) -> whitelist::calls::TransactionApi {
            whitelist::calls::TransactionApi
        }
        pub fn claims(&self) -> claims::calls::TransactionApi {
            claims::calls::TransactionApi
        }
        pub fn utility(&self) -> utility::calls::TransactionApi {
            utility::calls::TransactionApi
        }
        pub fn identity(&self) -> identity::calls::TransactionApi {
            identity::calls::TransactionApi
        }
        pub fn society(&self) -> society::calls::TransactionApi {
            society::calls::TransactionApi
        }
        pub fn recovery(&self) -> recovery::calls::TransactionApi {
            recovery::calls::TransactionApi
        }
        pub fn vesting(&self) -> vesting::calls::TransactionApi {
            vesting::calls::TransactionApi
        }
        pub fn scheduler(&self) -> scheduler::calls::TransactionApi {
            scheduler::calls::TransactionApi
        }
        pub fn proxy(&self) -> proxy::calls::TransactionApi {
            proxy::calls::TransactionApi
        }
        pub fn multisig(&self) -> multisig::calls::TransactionApi {
            multisig::calls::TransactionApi
        }
        pub fn preimage(&self) -> preimage::calls::TransactionApi {
            preimage::calls::TransactionApi
        }
        pub fn asset_rate(&self) -> asset_rate::calls::TransactionApi {
            asset_rate::calls::TransactionApi
        }
        pub fn bounties(&self) -> bounties::calls::TransactionApi {
            bounties::calls::TransactionApi
        }
        pub fn child_bounties(&self) -> child_bounties::calls::TransactionApi {
            child_bounties::calls::TransactionApi
        }
        pub fn nis(&self) -> nis::calls::TransactionApi {
            nis::calls::TransactionApi
        }
        pub fn nis_counterpart_balances(&self) -> nis_counterpart_balances::calls::TransactionApi {
            nis_counterpart_balances::calls::TransactionApi
        }
        pub fn configuration(&self) -> configuration::calls::TransactionApi {
            configuration::calls::TransactionApi
        }
        pub fn paras_shared(&self) -> paras_shared::calls::TransactionApi {
            paras_shared::calls::TransactionApi
        }
        pub fn para_inclusion(&self) -> para_inclusion::calls::TransactionApi {
            para_inclusion::calls::TransactionApi
        }
        pub fn para_inherent(&self) -> para_inherent::calls::TransactionApi {
            para_inherent::calls::TransactionApi
        }
        pub fn paras(&self) -> paras::calls::TransactionApi {
            paras::calls::TransactionApi
        }
        pub fn initializer(&self) -> initializer::calls::TransactionApi {
            initializer::calls::TransactionApi
        }
        pub fn hrmp(&self) -> hrmp::calls::TransactionApi {
            hrmp::calls::TransactionApi
        }
        pub fn paras_disputes(&self) -> paras_disputes::calls::TransactionApi {
            paras_disputes::calls::TransactionApi
        }
        pub fn paras_slashing(&self) -> paras_slashing::calls::TransactionApi {
            paras_slashing::calls::TransactionApi
        }
        pub fn message_queue(&self) -> message_queue::calls::TransactionApi {
            message_queue::calls::TransactionApi
        }
        pub fn on_demand_assignment_provider(
            &self,
        ) -> on_demand_assignment_provider::calls::TransactionApi {
            on_demand_assignment_provider::calls::TransactionApi
        }
        pub fn registrar(&self) -> registrar::calls::TransactionApi {
            registrar::calls::TransactionApi
        }
        pub fn slots(&self) -> slots::calls::TransactionApi {
            slots::calls::TransactionApi
        }
        pub fn auctions(&self) -> auctions::calls::TransactionApi {
            auctions::calls::TransactionApi
        }
        pub fn crowdloan(&self) -> crowdloan::calls::TransactionApi {
            crowdloan::calls::TransactionApi
        }
        pub fn coretime(&self) -> coretime::calls::TransactionApi {
            coretime::calls::TransactionApi
        }
        pub fn multi_block_migrations(&self) -> multi_block_migrations::calls::TransactionApi {
            multi_block_migrations::calls::TransactionApi
        }
        pub fn xcm_pallet(&self) -> xcm_pallet::calls::TransactionApi {
            xcm_pallet::calls::TransactionApi
        }
        pub fn beefy(&self) -> beefy::calls::TransactionApi {
            beefy::calls::TransactionApi
        }
        pub fn identity_migrator(&self) -> identity_migrator::calls::TransactionApi {
            identity_migrator::calls::TransactionApi
        }
        pub fn paras_sudo_wrapper(&self) -> paras_sudo_wrapper::calls::TransactionApi {
            paras_sudo_wrapper::calls::TransactionApi
        }
        pub fn assigned_slots(&self) -> assigned_slots::calls::TransactionApi {
            assigned_slots::calls::TransactionApi
        }
        pub fn validator_manager(&self) -> validator_manager::calls::TransactionApi {
            validator_manager::calls::TransactionApi
        }
        pub fn state_trie_migration(&self) -> state_trie_migration::calls::TransactionApi {
            state_trie_migration::calls::TransactionApi
        }
        pub fn root_testing(&self) -> root_testing::calls::TransactionApi {
            root_testing::calls::TransactionApi
        }
        pub fn sudo(&self) -> sudo::calls::TransactionApi {
            sudo::calls::TransactionApi
        }
    }
    pub struct ViewFunctionsApi;
    impl ViewFunctionsApi {}
    #[doc = r" check whether the metadata provided is aligned with this statically generated code."]
    pub fn is_codegen_valid_for(metadata: &::subxt::ext::subxt_core::Metadata) -> bool {
        let runtime_metadata_hash = metadata
            .hasher()
            .only_these_pallets(&PALLETS)
            .only_these_runtime_apis(&RUNTIME_APIS)
            .hash();
        runtime_metadata_hash
            == [
                104u8, 101u8, 167u8, 115u8, 106u8, 95u8, 240u8, 114u8, 168u8, 228u8, 119u8, 90u8,
                219u8, 119u8, 59u8, 204u8, 201u8, 222u8, 27u8, 137u8, 26u8, 177u8, 49u8, 202u8,
                91u8, 179u8, 50u8, 141u8, 72u8, 211u8, 67u8, 23u8,
            ]
    }
    pub mod system {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Error for the System pallet"]
        pub type Error = runtime_types::frame_system::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::frame_system::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make some on-chain remark."]
                #[doc = ""]
                #[doc = "Can be executed by every `origin`."]
                pub struct Remark {
                    pub remark: remark::Remark,
                }
                pub mod remark {
                    use super::runtime_types;
                    pub type Remark =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Remark {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "remark";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the number of pages in the WebAssembly environment's heap."]
                pub struct SetHeapPages {
                    pub pages: set_heap_pages::Pages,
                }
                pub mod set_heap_pages {
                    use super::runtime_types;
                    pub type Pages = ::core::primitive::u64;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHeapPages {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "set_heap_pages";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the new runtime code."]
                pub struct SetCode {
                    pub code: set_code::Code,
                }
                pub mod set_code {
                    use super::runtime_types;
                    pub type Code =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCode {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "set_code";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the new runtime code without doing any checks of the given `code`."]
                #[doc = ""]
                #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"]
                #[doc = "version!"]
                pub struct SetCodeWithoutChecks {
                    pub code: set_code_without_checks::Code,
                }
                pub mod set_code_without_checks {
                    use super::runtime_types;
                    pub type Code =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCodeWithoutChecks {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "set_code_without_checks";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set some items of storage."]
                pub struct SetStorage {
                    pub items: set_storage::Items,
                }
                pub mod set_storage {
                    use super::runtime_types;
                    pub type Items = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    )>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetStorage {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "set_storage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Kill some items from storage."]
                pub struct KillStorage {
                    pub keys: kill_storage::Keys,
                }
                pub mod kill_storage {
                    use super::runtime_types;
                    pub type Keys = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillStorage {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "kill_storage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Kill all storage items with a key that starts with the given prefix."]
                #[doc = ""]
                #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"]
                #[doc = "the prefix we are removing to accurately calculate the weight of this function."]
                pub struct KillPrefix {
                    pub prefix: kill_prefix::Prefix,
                    pub subkeys: kill_prefix::Subkeys,
                }
                pub mod kill_prefix {
                    use super::runtime_types;
                    pub type Prefix =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type Subkeys = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillPrefix {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "kill_prefix";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make some on-chain remark and emit event."]
                pub struct RemarkWithEvent {
                    pub remark: remark_with_event::Remark,
                }
                pub mod remark_with_event {
                    use super::runtime_types;
                    pub type Remark =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemarkWithEvent {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "remark_with_event";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                #[doc = "later."]
                #[doc = ""]
                #[doc = "This call requires Root origin."]
                pub struct AuthorizeUpgrade {
                    pub code_hash: authorize_upgrade::CodeHash,
                }
                pub mod authorize_upgrade {
                    use super::runtime_types;
                    pub type CodeHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgrade {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "authorize_upgrade";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                #[doc = "later."]
                #[doc = ""]
                #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"]
                #[doc = "example that the spec name remains the same and that the version number increases. Not"]
                #[doc = "recommended for normal use. Use `authorize_upgrade` instead."]
                #[doc = ""]
                #[doc = "This call requires Root origin."]
                pub struct AuthorizeUpgradeWithoutChecks {
                    pub code_hash: authorize_upgrade_without_checks::CodeHash,
                }
                pub mod authorize_upgrade_without_checks {
                    use super::runtime_types;
                    pub type CodeHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgradeWithoutChecks {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "authorize_upgrade_without_checks";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."]
                #[doc = ""]
                #[doc = "If the authorization required a version check, this call will ensure the spec name"]
                #[doc = "remains unchanged and that the spec version has increased."]
                #[doc = ""]
                #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"]
                #[doc = "the new `code` in the same block or attempt to schedule the upgrade."]
                #[doc = ""]
                #[doc = "All origins are allowed."]
                pub struct ApplyAuthorizedUpgrade {
                    pub code: apply_authorized_upgrade::Code,
                }
                pub mod apply_authorized_upgrade {
                    use super::runtime_types;
                    pub type Code =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApplyAuthorizedUpgrade {
                    const PALLET: &'static str = "System";
                    const CALL: &'static str = "apply_authorized_upgrade";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Make some on-chain remark."]
                #[doc = ""]
                #[doc = "Can be executed by every `origin`."]
                pub fn remark(
                    &self,
                    remark: types::remark::Remark,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Remark>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "remark",
                        types::Remark { remark },
                        [
                            43u8, 126u8, 180u8, 174u8, 141u8, 48u8, 52u8, 125u8, 166u8, 212u8,
                            216u8, 98u8, 100u8, 24u8, 132u8, 71u8, 101u8, 64u8, 246u8, 169u8, 33u8,
                            250u8, 147u8, 208u8, 2u8, 40u8, 129u8, 209u8, 232u8, 207u8, 207u8,
                            13u8,
                        ],
                    )
                }
                #[doc = "Set the number of pages in the WebAssembly environment's heap."]
                pub fn set_heap_pages(
                    &self,
                    pages: types::set_heap_pages::Pages,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetHeapPages>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "set_heap_pages",
                        types::SetHeapPages { pages },
                        [
                            188u8, 191u8, 99u8, 216u8, 219u8, 109u8, 141u8, 50u8, 78u8, 235u8,
                            215u8, 242u8, 195u8, 24u8, 111u8, 76u8, 229u8, 64u8, 99u8, 225u8,
                            134u8, 121u8, 81u8, 209u8, 127u8, 223u8, 98u8, 215u8, 150u8, 70u8,
                            57u8, 147u8,
                        ],
                    )
                }
                #[doc = "Set the new runtime code."]
                pub fn set_code(
                    &self,
                    code: types::set_code::Code,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetCode>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "set_code",
                        types::SetCode { code },
                        [
                            233u8, 248u8, 88u8, 245u8, 28u8, 65u8, 25u8, 169u8, 35u8, 237u8, 19u8,
                            203u8, 136u8, 160u8, 18u8, 3u8, 20u8, 197u8, 81u8, 169u8, 244u8, 188u8,
                            27u8, 147u8, 147u8, 236u8, 65u8, 25u8, 3u8, 143u8, 182u8, 22u8,
                        ],
                    )
                }
                #[doc = "Set the new runtime code without doing any checks of the given `code`."]
                #[doc = ""]
                #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"]
                #[doc = "version!"]
                pub fn set_code_without_checks(
                    &self,
                    code: types::set_code_without_checks::Code,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetCodeWithoutChecks>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "set_code_without_checks",
                        types::SetCodeWithoutChecks { code },
                        [
                            82u8, 212u8, 157u8, 44u8, 70u8, 0u8, 143u8, 15u8, 109u8, 109u8, 107u8,
                            157u8, 141u8, 42u8, 169u8, 11u8, 15u8, 186u8, 252u8, 138u8, 10u8,
                            147u8, 15u8, 178u8, 247u8, 229u8, 213u8, 98u8, 207u8, 231u8, 119u8,
                            115u8,
                        ],
                    )
                }
                #[doc = "Set some items of storage."]
                pub fn set_storage(
                    &self,
                    items: types::set_storage::Items,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetStorage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "set_storage",
                        types::SetStorage { items },
                        [
                            141u8, 216u8, 52u8, 222u8, 223u8, 136u8, 123u8, 181u8, 19u8, 75u8,
                            163u8, 102u8, 229u8, 189u8, 158u8, 142u8, 95u8, 235u8, 240u8, 49u8,
                            150u8, 76u8, 78u8, 137u8, 126u8, 88u8, 183u8, 88u8, 231u8, 146u8,
                            234u8, 43u8,
                        ],
                    )
                }
                #[doc = "Kill some items from storage."]
                pub fn kill_storage(
                    &self,
                    keys: types::kill_storage::Keys,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KillStorage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "kill_storage",
                        types::KillStorage { keys },
                        [
                            73u8, 63u8, 196u8, 36u8, 144u8, 114u8, 34u8, 213u8, 108u8, 93u8, 209u8,
                            234u8, 153u8, 185u8, 33u8, 91u8, 187u8, 195u8, 223u8, 130u8, 58u8,
                            156u8, 63u8, 47u8, 228u8, 249u8, 216u8, 139u8, 143u8, 177u8, 41u8,
                            35u8,
                        ],
                    )
                }
                #[doc = "Kill all storage items with a key that starts with the given prefix."]
                #[doc = ""]
                #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"]
                #[doc = "the prefix we are removing to accurately calculate the weight of this function."]
                pub fn kill_prefix(
                    &self,
                    prefix: types::kill_prefix::Prefix,
                    subkeys: types::kill_prefix::Subkeys,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KillPrefix>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "kill_prefix",
                        types::KillPrefix { prefix, subkeys },
                        [
                            184u8, 57u8, 139u8, 24u8, 208u8, 87u8, 108u8, 215u8, 198u8, 189u8,
                            175u8, 242u8, 167u8, 215u8, 97u8, 63u8, 110u8, 166u8, 238u8, 98u8,
                            67u8, 236u8, 111u8, 110u8, 234u8, 81u8, 102u8, 5u8, 182u8, 5u8, 214u8,
                            85u8,
                        ],
                    )
                }
                #[doc = "Make some on-chain remark and emit event."]
                pub fn remark_with_event(
                    &self,
                    remark: types::remark_with_event::Remark,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemarkWithEvent>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "remark_with_event",
                        types::RemarkWithEvent { remark },
                        [
                            120u8, 120u8, 153u8, 92u8, 184u8, 85u8, 34u8, 2u8, 174u8, 206u8, 105u8,
                            228u8, 233u8, 130u8, 80u8, 246u8, 228u8, 59u8, 234u8, 240u8, 4u8, 49u8,
                            147u8, 170u8, 115u8, 91u8, 149u8, 200u8, 228u8, 181u8, 8u8, 154u8,
                        ],
                    )
                }
                #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                #[doc = "later."]
                #[doc = ""]
                #[doc = "This call requires Root origin."]
                pub fn authorize_upgrade(
                    &self,
                    code_hash: types::authorize_upgrade::CodeHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AuthorizeUpgrade>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "authorize_upgrade",
                        types::AuthorizeUpgrade { code_hash },
                        [
                            4u8, 14u8, 76u8, 107u8, 209u8, 129u8, 9u8, 39u8, 193u8, 17u8, 84u8,
                            254u8, 170u8, 214u8, 24u8, 155u8, 29u8, 184u8, 249u8, 241u8, 109u8,
                            58u8, 145u8, 131u8, 109u8, 63u8, 38u8, 165u8, 107u8, 215u8, 217u8,
                            172u8,
                        ],
                    )
                }
                #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                #[doc = "later."]
                #[doc = ""]
                #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"]
                #[doc = "example that the spec name remains the same and that the version number increases. Not"]
                #[doc = "recommended for normal use. Use `authorize_upgrade` instead."]
                #[doc = ""]
                #[doc = "This call requires Root origin."]
                pub fn authorize_upgrade_without_checks(
                    &self,
                    code_hash: types::authorize_upgrade_without_checks::CodeHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::AuthorizeUpgradeWithoutChecks,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "authorize_upgrade_without_checks",
                        types::AuthorizeUpgradeWithoutChecks { code_hash },
                        [
                            126u8, 126u8, 55u8, 26u8, 47u8, 55u8, 66u8, 8u8, 167u8, 18u8, 29u8,
                            136u8, 146u8, 14u8, 189u8, 117u8, 16u8, 227u8, 162u8, 61u8, 149u8,
                            197u8, 104u8, 184u8, 185u8, 161u8, 99u8, 154u8, 80u8, 125u8, 181u8,
                            233u8,
                        ],
                    )
                }
                #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."]
                #[doc = ""]
                #[doc = "If the authorization required a version check, this call will ensure the spec name"]
                #[doc = "remains unchanged and that the spec version has increased."]
                #[doc = ""]
                #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"]
                #[doc = "the new `code` in the same block or attempt to schedule the upgrade."]
                #[doc = ""]
                #[doc = "All origins are allowed."]
                pub fn apply_authorized_upgrade(
                    &self,
                    code: types::apply_authorized_upgrade::Code,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ApplyAuthorizedUpgrade,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "System",
                        "apply_authorized_upgrade",
                        types::ApplyAuthorizedUpgrade { code },
                        [
                            232u8, 107u8, 127u8, 38u8, 230u8, 29u8, 97u8, 4u8, 160u8, 191u8, 222u8,
                            156u8, 245u8, 102u8, 196u8, 141u8, 44u8, 163u8, 98u8, 68u8, 125u8,
                            32u8, 124u8, 101u8, 108u8, 93u8, 211u8, 52u8, 0u8, 231u8, 33u8, 227u8,
                        ],
                    )
                }
            }
        }
        #[doc = "Event for the System pallet."]
        pub type Event = runtime_types::frame_system::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An extrinsic completed successfully."]
            pub struct ExtrinsicSuccess {
                pub dispatch_info: extrinsic_success::DispatchInfo,
            }
            pub mod extrinsic_success {
                use super::runtime_types;
                pub type DispatchInfo = runtime_types::frame_system::DispatchEventInfo;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ExtrinsicSuccess {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "ExtrinsicSuccess";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An extrinsic failed."]
            pub struct ExtrinsicFailed {
                pub dispatch_error: extrinsic_failed::DispatchError,
                pub dispatch_info: extrinsic_failed::DispatchInfo,
            }
            pub mod extrinsic_failed {
                use super::runtime_types;
                pub type DispatchError = runtime_types::sp_runtime::DispatchError;
                pub type DispatchInfo = runtime_types::frame_system::DispatchEventInfo;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ExtrinsicFailed {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "ExtrinsicFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "`:code` was updated."]
            pub struct CodeUpdated;
            impl ::subxt::ext::subxt_core::events::StaticEvent for CodeUpdated {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "CodeUpdated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new account was created."]
            pub struct NewAccount {
                pub account: new_account::Account,
            }
            pub mod new_account {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewAccount {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "NewAccount";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was reaped."]
            pub struct KilledAccount {
                pub account: killed_account::Account,
            }
            pub mod killed_account {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for KilledAccount {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "KilledAccount";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "On on-chain remark happened."]
            pub struct Remarked {
                pub sender: remarked::Sender,
                pub hash: remarked::Hash,
            }
            pub mod remarked {
                use super::runtime_types;
                pub type Sender = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Remarked {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "Remarked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An upgrade was authorized."]
            pub struct UpgradeAuthorized {
                pub code_hash: upgrade_authorized::CodeHash,
                pub check_version: upgrade_authorized::CheckVersion,
            }
            pub mod upgrade_authorized {
                use super::runtime_types;
                pub type CodeHash = ::subxt::ext::subxt_core::utils::H256;
                pub type CheckVersion = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeAuthorized {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "UpgradeAuthorized";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An invalid authorized upgrade was rejected while trying to apply it."]
            pub struct RejectedInvalidAuthorizedUpgrade {
                pub code_hash: rejected_invalid_authorized_upgrade::CodeHash,
                pub error: rejected_invalid_authorized_upgrade::Error,
            }
            pub mod rejected_invalid_authorized_upgrade {
                use super::runtime_types;
                pub type CodeHash = ::subxt::ext::subxt_core::utils::H256;
                pub type Error = runtime_types::sp_runtime::DispatchError;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RejectedInvalidAuthorizedUpgrade {
                const PALLET: &'static str = "System";
                const EVENT: &'static str = "RejectedInvalidAuthorizedUpgrade";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod account {
                    use super::runtime_types;
                    pub type Account = runtime_types::frame_system::AccountInfo<
                        ::core::primitive::u32,
                        runtime_types::pallet_balances::types::AccountData<::core::primitive::u128>,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod extrinsic_count {
                    use super::runtime_types;
                    pub type ExtrinsicCount = ::core::primitive::u32;
                }
                pub mod inherents_applied {
                    use super::runtime_types;
                    pub type InherentsApplied = ::core::primitive::bool;
                }
                pub mod block_weight {
                    use super::runtime_types;
                    pub type BlockWeight = runtime_types::frame_support::dispatch::PerDispatchClass<
                        runtime_types::sp_weights::weight_v2::Weight,
                    >;
                }
                pub mod all_extrinsics_len {
                    use super::runtime_types;
                    pub type AllExtrinsicsLen = ::core::primitive::u32;
                }
                pub mod block_hash {
                    use super::runtime_types;
                    pub type BlockHash = ::subxt::ext::subxt_core::utils::H256;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod extrinsic_data {
                    use super::runtime_types;
                    pub type ExtrinsicData =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod number {
                    use super::runtime_types;
                    pub type Number = ::core::primitive::u32;
                }
                pub mod parent_hash {
                    use super::runtime_types;
                    pub type ParentHash = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod digest {
                    use super::runtime_types;
                    pub type Digest = runtime_types::sp_runtime::generic::digest::Digest;
                }
                pub mod events {
                    use super::runtime_types;
                    pub type Events = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::frame_system::EventRecord<
                            runtime_types::rococo_runtime::RuntimeEvent,
                            ::subxt::ext::subxt_core::utils::H256,
                        >,
                    >;
                }
                pub mod event_count {
                    use super::runtime_types;
                    pub type EventCount = ::core::primitive::u32;
                }
                pub mod event_topics {
                    use super::runtime_types;
                    pub type EventTopics = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::core::primitive::u32,
                        ::core::primitive::u32,
                    )>;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod last_runtime_upgrade {
                    use super::runtime_types;
                    pub type LastRuntimeUpgrade =
                        runtime_types::frame_system::LastRuntimeUpgradeInfo;
                }
                pub mod upgraded_to_u32_ref_count {
                    use super::runtime_types;
                    pub type UpgradedToU32RefCount = ::core::primitive::bool;
                }
                pub mod upgraded_to_triple_ref_count {
                    use super::runtime_types;
                    pub type UpgradedToTripleRefCount = ::core::primitive::bool;
                }
                pub mod execution_phase {
                    use super::runtime_types;
                    pub type ExecutionPhase = runtime_types::frame_system::Phase;
                }
                pub mod authorized_upgrade {
                    use super::runtime_types;
                    pub type AuthorizedUpgrade =
                        runtime_types::frame_system::CodeUpgradeAuthorization;
                }
                pub mod extrinsic_weight_reclaimed {
                    use super::runtime_types;
                    pub type ExtrinsicWeightReclaimed =
                        runtime_types::sp_weights::weight_v2::Weight;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The full account information for a particular account ID."]
                pub fn account_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::account::Account,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "Account",
                        (),
                        [
                            14u8, 233u8, 115u8, 214u8, 0u8, 109u8, 222u8, 121u8, 162u8, 65u8, 60u8,
                            175u8, 209u8, 79u8, 222u8, 124u8, 22u8, 235u8, 138u8, 176u8, 133u8,
                            124u8, 90u8, 158u8, 85u8, 45u8, 37u8, 174u8, 47u8, 79u8, 47u8, 166u8,
                        ],
                    )
                }
                #[doc = " The full account information for a particular account ID."]
                pub fn account(
                    &self,
                    _0: types::account::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::account::Param0,
                    >,
                    types::account::Account,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "Account",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            14u8, 233u8, 115u8, 214u8, 0u8, 109u8, 222u8, 121u8, 162u8, 65u8, 60u8,
                            175u8, 209u8, 79u8, 222u8, 124u8, 22u8, 235u8, 138u8, 176u8, 133u8,
                            124u8, 90u8, 158u8, 85u8, 45u8, 37u8, 174u8, 47u8, 79u8, 47u8, 166u8,
                        ],
                    )
                }
                #[doc = " Total extrinsics count for the current block."]
                pub fn extrinsic_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::extrinsic_count::ExtrinsicCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ExtrinsicCount",
                        (),
                        [
                            102u8, 76u8, 236u8, 42u8, 40u8, 231u8, 33u8, 222u8, 123u8, 147u8,
                            153u8, 148u8, 234u8, 203u8, 181u8, 119u8, 6u8, 187u8, 177u8, 199u8,
                            120u8, 47u8, 137u8, 254u8, 96u8, 100u8, 165u8, 182u8, 249u8, 230u8,
                            159u8, 79u8,
                        ],
                    )
                }
                #[doc = " Whether all inherents have been applied."]
                pub fn inherents_applied(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::inherents_applied::InherentsApplied,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "InherentsApplied",
                        (),
                        [
                            132u8, 249u8, 142u8, 252u8, 8u8, 103u8, 80u8, 120u8, 50u8, 6u8, 188u8,
                            223u8, 101u8, 55u8, 165u8, 189u8, 172u8, 249u8, 165u8, 230u8, 183u8,
                            109u8, 34u8, 65u8, 185u8, 150u8, 29u8, 8u8, 186u8, 129u8, 135u8, 239u8,
                        ],
                    )
                }
                #[doc = " The current weight for the block."]
                pub fn block_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::block_weight::BlockWeight,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "BlockWeight",
                        (),
                        [
                            158u8, 46u8, 228u8, 89u8, 210u8, 214u8, 84u8, 154u8, 50u8, 68u8, 63u8,
                            62u8, 43u8, 42u8, 99u8, 27u8, 54u8, 42u8, 146u8, 44u8, 241u8, 216u8,
                            229u8, 30u8, 216u8, 255u8, 165u8, 238u8, 181u8, 130u8, 36u8, 102u8,
                        ],
                    )
                }
                #[doc = " Total length (in bytes) for all extrinsics put together, for the current block."]
                pub fn all_extrinsics_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::all_extrinsics_len::AllExtrinsicsLen,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "AllExtrinsicsLen",
                        (),
                        [
                            117u8, 86u8, 61u8, 243u8, 41u8, 51u8, 102u8, 214u8, 137u8, 100u8,
                            243u8, 185u8, 122u8, 174u8, 187u8, 117u8, 86u8, 189u8, 63u8, 135u8,
                            101u8, 218u8, 203u8, 201u8, 237u8, 254u8, 128u8, 183u8, 169u8, 221u8,
                            242u8, 65u8,
                        ],
                    )
                }
                #[doc = " Map of block numbers to block hashes."]
                pub fn block_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::block_hash::BlockHash,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "BlockHash",
                        (),
                        [
                            217u8, 32u8, 215u8, 253u8, 24u8, 182u8, 207u8, 178u8, 157u8, 24u8,
                            103u8, 100u8, 195u8, 165u8, 69u8, 152u8, 112u8, 181u8, 56u8, 192u8,
                            164u8, 16u8, 20u8, 222u8, 28u8, 214u8, 144u8, 142u8, 146u8, 69u8,
                            202u8, 118u8,
                        ],
                    )
                }
                #[doc = " Map of block numbers to block hashes."]
                pub fn block_hash(
                    &self,
                    _0: types::block_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::block_hash::Param0,
                    >,
                    types::block_hash::BlockHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "BlockHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            217u8, 32u8, 215u8, 253u8, 24u8, 182u8, 207u8, 178u8, 157u8, 24u8,
                            103u8, 100u8, 195u8, 165u8, 69u8, 152u8, 112u8, 181u8, 56u8, 192u8,
                            164u8, 16u8, 20u8, 222u8, 28u8, 214u8, 144u8, 142u8, 146u8, 69u8,
                            202u8, 118u8,
                        ],
                    )
                }
                #[doc = " Extrinsics data for the current block (maps an extrinsic's index to its data)."]
                pub fn extrinsic_data_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::extrinsic_data::ExtrinsicData,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ExtrinsicData",
                        (),
                        [
                            160u8, 180u8, 122u8, 18u8, 196u8, 26u8, 2u8, 37u8, 115u8, 232u8, 133u8,
                            220u8, 106u8, 245u8, 4u8, 129u8, 42u8, 84u8, 241u8, 45u8, 199u8, 179u8,
                            128u8, 61u8, 170u8, 137u8, 231u8, 156u8, 247u8, 57u8, 47u8, 38u8,
                        ],
                    )
                }
                #[doc = " Extrinsics data for the current block (maps an extrinsic's index to its data)."]
                pub fn extrinsic_data(
                    &self,
                    _0: types::extrinsic_data::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::extrinsic_data::Param0,
                    >,
                    types::extrinsic_data::ExtrinsicData,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ExtrinsicData",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            160u8, 180u8, 122u8, 18u8, 196u8, 26u8, 2u8, 37u8, 115u8, 232u8, 133u8,
                            220u8, 106u8, 245u8, 4u8, 129u8, 42u8, 84u8, 241u8, 45u8, 199u8, 179u8,
                            128u8, 61u8, 170u8, 137u8, 231u8, 156u8, 247u8, 57u8, 47u8, 38u8,
                        ],
                    )
                }
                #[doc = " The current block number being processed. Set by `execute_block`."]
                pub fn number(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::number::Number,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "Number",
                        (),
                        [
                            30u8, 194u8, 177u8, 90u8, 194u8, 232u8, 46u8, 180u8, 85u8, 129u8, 14u8,
                            9u8, 8u8, 8u8, 23u8, 95u8, 230u8, 5u8, 13u8, 105u8, 125u8, 2u8, 22u8,
                            200u8, 78u8, 93u8, 115u8, 28u8, 150u8, 113u8, 48u8, 53u8,
                        ],
                    )
                }
                #[doc = " Hash of the previous block."]
                pub fn parent_hash(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parent_hash::ParentHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ParentHash",
                        (),
                        [
                            26u8, 130u8, 11u8, 216u8, 155u8, 71u8, 128u8, 170u8, 30u8, 153u8, 21u8,
                            192u8, 62u8, 93u8, 137u8, 80u8, 120u8, 81u8, 202u8, 94u8, 248u8, 125u8,
                            71u8, 82u8, 141u8, 229u8, 32u8, 56u8, 73u8, 50u8, 101u8, 78u8,
                        ],
                    )
                }
                #[doc = " Digest of the current block, also part of the block header."]
                pub fn digest(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::digest::Digest,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "Digest",
                        (),
                        [
                            61u8, 64u8, 237u8, 91u8, 145u8, 232u8, 17u8, 254u8, 181u8, 16u8, 234u8,
                            91u8, 51u8, 140u8, 254u8, 131u8, 98u8, 135u8, 21u8, 37u8, 251u8, 20u8,
                            58u8, 92u8, 123u8, 141u8, 14u8, 227u8, 146u8, 46u8, 222u8, 117u8,
                        ],
                    )
                }
                #[doc = " Events deposited for the current block."]
                #[doc = ""]
                #[doc = " NOTE: The item is unbound and should therefore never be read on chain."]
                #[doc = " It could otherwise inflate the PoV size of a block."]
                #[doc = ""]
                #[doc = " Events have a large in-memory size. Box the events to not go out-of-memory"]
                #[doc = " just in case someone still reads them from within the runtime."]
                pub fn events(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::events::Events,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "Events",
                        (),
                        [
                            94u8, 112u8, 186u8, 225u8, 192u8, 81u8, 168u8, 148u8, 112u8, 241u8,
                            25u8, 26u8, 173u8, 184u8, 107u8, 32u8, 150u8, 36u8, 99u8, 153u8, 118u8,
                            176u8, 43u8, 10u8, 193u8, 145u8, 143u8, 192u8, 26u8, 81u8, 71u8, 135u8,
                        ],
                    )
                }
                #[doc = " The number of events in the `Events<T>` list."]
                pub fn event_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::event_count::EventCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "EventCount",
                        (),
                        [
                            175u8, 24u8, 252u8, 184u8, 210u8, 167u8, 146u8, 143u8, 164u8, 80u8,
                            151u8, 205u8, 189u8, 189u8, 55u8, 220u8, 47u8, 101u8, 181u8, 33u8,
                            254u8, 131u8, 13u8, 143u8, 3u8, 244u8, 245u8, 45u8, 2u8, 210u8, 79u8,
                            133u8,
                        ],
                    )
                }
                #[doc = " Mapping between a topic (represented by T::Hash) and a vector of indexes"]
                #[doc = " of events in the `<Events<T>>` list."]
                #[doc = ""]
                #[doc = " All topic vectors have deterministic storage locations depending on the topic. This"]
                #[doc = " allows light-clients to leverage the changes trie storage tracking mechanism and"]
                #[doc = " in case of changes fetch the list of events of interest."]
                #[doc = ""]
                #[doc = " The value has the type `(BlockNumberFor<T>, EventIndex)` because if we used only just"]
                #[doc = " the `EventIndex` then in case if the topic has the same contents on the next block"]
                #[doc = " no notification will be triggered thus the event might be lost."]
                pub fn event_topics_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::event_topics::EventTopics,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "EventTopics",
                        (),
                        [
                            40u8, 225u8, 14u8, 75u8, 44u8, 176u8, 76u8, 34u8, 143u8, 107u8, 69u8,
                            133u8, 114u8, 13u8, 172u8, 250u8, 141u8, 73u8, 12u8, 65u8, 217u8, 63u8,
                            120u8, 241u8, 48u8, 106u8, 143u8, 161u8, 128u8, 100u8, 166u8, 59u8,
                        ],
                    )
                }
                #[doc = " Mapping between a topic (represented by T::Hash) and a vector of indexes"]
                #[doc = " of events in the `<Events<T>>` list."]
                #[doc = ""]
                #[doc = " All topic vectors have deterministic storage locations depending on the topic. This"]
                #[doc = " allows light-clients to leverage the changes trie storage tracking mechanism and"]
                #[doc = " in case of changes fetch the list of events of interest."]
                #[doc = ""]
                #[doc = " The value has the type `(BlockNumberFor<T>, EventIndex)` because if we used only just"]
                #[doc = " the `EventIndex` then in case if the topic has the same contents on the next block"]
                #[doc = " no notification will be triggered thus the event might be lost."]
                pub fn event_topics(
                    &self,
                    _0: types::event_topics::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::event_topics::Param0,
                    >,
                    types::event_topics::EventTopics,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "EventTopics",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            40u8, 225u8, 14u8, 75u8, 44u8, 176u8, 76u8, 34u8, 143u8, 107u8, 69u8,
                            133u8, 114u8, 13u8, 172u8, 250u8, 141u8, 73u8, 12u8, 65u8, 217u8, 63u8,
                            120u8, 241u8, 48u8, 106u8, 143u8, 161u8, 128u8, 100u8, 166u8, 59u8,
                        ],
                    )
                }
                #[doc = " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."]
                pub fn last_runtime_upgrade(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::last_runtime_upgrade::LastRuntimeUpgrade,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "LastRuntimeUpgrade",
                        (),
                        [
                            197u8, 212u8, 249u8, 209u8, 79u8, 34u8, 55u8, 203u8, 31u8, 42u8, 199u8,
                            242u8, 188u8, 74u8, 234u8, 250u8, 245u8, 44u8, 139u8, 162u8, 45u8,
                            150u8, 230u8, 249u8, 135u8, 100u8, 158u8, 167u8, 118u8, 219u8, 28u8,
                            98u8,
                        ],
                    )
                }
                #[doc = " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."]
                pub fn upgraded_to_u32_ref_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upgraded_to_u32_ref_count::UpgradedToU32RefCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "UpgradedToU32RefCount",
                        (),
                        [
                            229u8, 73u8, 9u8, 132u8, 186u8, 116u8, 151u8, 171u8, 145u8, 29u8, 34u8,
                            130u8, 52u8, 146u8, 124u8, 175u8, 79u8, 189u8, 147u8, 230u8, 234u8,
                            107u8, 124u8, 31u8, 2u8, 22u8, 86u8, 190u8, 4u8, 147u8, 50u8, 245u8,
                        ],
                    )
                }
                #[doc = " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False"]
                #[doc = " (default) if not."]
                pub fn upgraded_to_triple_ref_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upgraded_to_triple_ref_count::UpgradedToTripleRefCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "UpgradedToTripleRefCount",
                        (),
                        [
                            97u8, 66u8, 124u8, 243u8, 27u8, 167u8, 147u8, 81u8, 254u8, 201u8,
                            101u8, 24u8, 40u8, 231u8, 14u8, 179u8, 154u8, 163u8, 71u8, 81u8, 185u8,
                            167u8, 82u8, 254u8, 189u8, 3u8, 101u8, 207u8, 206u8, 194u8, 155u8,
                            151u8,
                        ],
                    )
                }
                #[doc = " The execution phase of the block."]
                pub fn execution_phase(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::execution_phase::ExecutionPhase,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ExecutionPhase",
                        (),
                        [
                            191u8, 129u8, 100u8, 134u8, 126u8, 116u8, 154u8, 203u8, 220u8, 200u8,
                            0u8, 26u8, 161u8, 250u8, 133u8, 205u8, 146u8, 24u8, 5u8, 156u8, 158u8,
                            35u8, 36u8, 253u8, 52u8, 235u8, 86u8, 167u8, 35u8, 100u8, 119u8, 27u8,
                        ],
                    )
                }
                #[doc = " `Some` if a code upgrade has been authorized."]
                pub fn authorized_upgrade(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorized_upgrade::AuthorizedUpgrade,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "AuthorizedUpgrade",
                        (),
                        [
                            165u8, 97u8, 27u8, 138u8, 2u8, 28u8, 55u8, 92u8, 96u8, 96u8, 168u8,
                            169u8, 55u8, 178u8, 44u8, 127u8, 58u8, 140u8, 206u8, 178u8, 1u8, 37u8,
                            214u8, 213u8, 251u8, 123u8, 5u8, 111u8, 90u8, 148u8, 217u8, 135u8,
                        ],
                    )
                }
                #[doc = " The weight reclaimed for the extrinsic."]
                #[doc = ""]
                #[doc = " This information is available until the end of the extrinsic execution."]
                #[doc = " More precisely this information is removed in `note_applied_extrinsic`."]
                #[doc = ""]
                #[doc = " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate"]
                #[doc = " reduction."]
                pub fn extrinsic_weight_reclaimed(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::extrinsic_weight_reclaimed::ExtrinsicWeightReclaimed,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "System",
                        "ExtrinsicWeightReclaimed",
                        (),
                        [
                            195u8, 143u8, 164u8, 84u8, 225u8, 194u8, 227u8, 128u8, 196u8, 241u8,
                            188u8, 159u8, 59u8, 197u8, 11u8, 12u8, 119u8, 164u8, 46u8, 229u8, 92u8,
                            212u8, 236u8, 255u8, 238u8, 54u8, 105u8, 200u8, 229u8, 191u8, 221u8,
                            202u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " Block & extrinsics weights: base values and limits."]
                pub fn block_weights(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_system::limits::BlockWeights,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "BlockWeights",
                        [
                            176u8, 124u8, 225u8, 136u8, 25u8, 73u8, 247u8, 33u8, 82u8, 206u8, 85u8,
                            190u8, 127u8, 102u8, 71u8, 11u8, 185u8, 8u8, 58u8, 0u8, 94u8, 55u8,
                            163u8, 177u8, 104u8, 59u8, 60u8, 136u8, 246u8, 116u8, 0u8, 239u8,
                        ],
                    )
                }
                #[doc = " The maximum length of a block (in bytes)."]
                pub fn block_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_system::limits::BlockLength,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "BlockLength",
                        [
                            23u8, 242u8, 225u8, 39u8, 225u8, 67u8, 152u8, 41u8, 155u8, 104u8, 68u8,
                            229u8, 185u8, 133u8, 10u8, 143u8, 184u8, 152u8, 234u8, 44u8, 140u8,
                            96u8, 166u8, 235u8, 162u8, 160u8, 72u8, 7u8, 35u8, 194u8, 3u8, 37u8,
                        ],
                    )
                }
                #[doc = " Maximum number of block number to block hash mappings to keep (oldest pruned first)."]
                pub fn block_hash_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "BlockHashCount",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The weight of runtime database operations the runtime can invoke."]
                pub fn db_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_weights::RuntimeDbWeight,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "DbWeight",
                        [
                            42u8, 43u8, 178u8, 142u8, 243u8, 203u8, 60u8, 173u8, 118u8, 111u8,
                            200u8, 170u8, 102u8, 70u8, 237u8, 187u8, 198u8, 120u8, 153u8, 232u8,
                            183u8, 76u8, 74u8, 10u8, 70u8, 243u8, 14u8, 218u8, 213u8, 126u8, 29u8,
                            177u8,
                        ],
                    )
                }
                #[doc = " Get the chain's in-code version."]
                pub fn version(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_version::RuntimeVersion,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "Version",
                        [
                            214u8, 43u8, 96u8, 193u8, 96u8, 213u8, 63u8, 124u8, 22u8, 111u8, 41u8,
                            78u8, 146u8, 77u8, 34u8, 163u8, 117u8, 100u8, 6u8, 216u8, 238u8, 54u8,
                            80u8, 185u8, 219u8, 11u8, 192u8, 200u8, 129u8, 88u8, 161u8, 250u8,
                        ],
                    )
                }
                #[doc = " The designated SS58 prefix of this chain."]
                #[doc = ""]
                #[doc = " This replaces the \"ss58Format\" property declared in the chain spec. Reason is"]
                #[doc = " that the runtime should know about the prefix in order to make use of it as"]
                #[doc = " an identifier of the chain."]
                pub fn ss58_prefix(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u16,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "System",
                        "SS58Prefix",
                        [
                            116u8, 33u8, 2u8, 170u8, 181u8, 147u8, 171u8, 169u8, 167u8, 227u8,
                            41u8, 144u8, 11u8, 236u8, 82u8, 100u8, 74u8, 60u8, 184u8, 72u8, 169u8,
                            90u8, 208u8, 135u8, 15u8, 117u8, 10u8, 123u8, 128u8, 193u8, 29u8, 70u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod babe {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_babe::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_babe::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                #[doc = "the equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence will"]
                #[doc = "be reported."]
                pub struct ReportEquivocation {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_equivocation::EquivocationProof,
                    >,
                    pub key_owner_proof: report_equivocation::KeyOwnerProof,
                }
                pub mod report_equivocation {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_slots::EquivocationProof<
                            runtime_types::sp_runtime::generic::header::Header<
                                ::core::primitive::u32,
                            >,
                            runtime_types::sp_consensus_babe::app::Public,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation {
                    const PALLET: &'static str = "Babe";
                    const CALL: &'static str = "report_equivocation";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                #[doc = "the equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence will"]
                #[doc = "be reported."]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub struct ReportEquivocationUnsigned {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_equivocation_unsigned::EquivocationProof,
                    >,
                    pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof,
                }
                pub mod report_equivocation_unsigned {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_slots::EquivocationProof<
                            runtime_types::sp_runtime::generic::header::Header<
                                ::core::primitive::u32,
                            >,
                            runtime_types::sp_consensus_babe::app::Public,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned {
                    const PALLET: &'static str = "Babe";
                    const CALL: &'static str = "report_equivocation_unsigned";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"]
                #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."]
                #[doc = "Multiple calls to this method will replace any existing planned config change that had"]
                #[doc = "not been enacted yet."]
                pub struct PlanConfigChange {
                    pub config: plan_config_change::Config,
                }
                pub mod plan_config_change {
                    use super::runtime_types;
                    pub type Config =
                        runtime_types::sp_consensus_babe::digests::NextConfigDescriptor;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlanConfigChange {
                    const PALLET: &'static str = "Babe";
                    const CALL: &'static str = "plan_config_change";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                #[doc = "the equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence will"]
                #[doc = "be reported."]
                pub fn report_equivocation(
                    &self,
                    equivocation_proof: types::report_equivocation::EquivocationProof,
                    key_owner_proof: types::report_equivocation::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReportEquivocation>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Babe",
                        "report_equivocation",
                        types::ReportEquivocation {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            97u8, 65u8, 136u8, 207u8, 137u8, 113u8, 206u8, 76u8, 166u8, 245u8,
                            231u8, 162u8, 65u8, 47u8, 251u8, 149u8, 68u8, 179u8, 13u8, 123u8,
                            209u8, 146u8, 83u8, 54u8, 14u8, 150u8, 62u8, 195u8, 27u8, 190u8, 76u8,
                            224u8,
                        ],
                    )
                }
                #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                #[doc = "the equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence will"]
                #[doc = "be reported."]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub fn report_equivocation_unsigned(
                    &self,
                    equivocation_proof: types::report_equivocation_unsigned::EquivocationProof,
                    key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportEquivocationUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Babe",
                        "report_equivocation_unsigned",
                        types::ReportEquivocationUnsigned {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            184u8, 158u8, 14u8, 168u8, 175u8, 23u8, 10u8, 63u8, 54u8, 15u8, 182u8,
                            163u8, 5u8, 49u8, 223u8, 197u8, 45u8, 204u8, 216u8, 26u8, 126u8, 157u8,
                            242u8, 233u8, 228u8, 203u8, 117u8, 216u8, 185u8, 157u8, 199u8, 117u8,
                        ],
                    )
                }
                #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"]
                #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."]
                #[doc = "Multiple calls to this method will replace any existing planned config change that had"]
                #[doc = "not been enacted yet."]
                pub fn plan_config_change(
                    &self,
                    config: types::plan_config_change::Config,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlanConfigChange>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Babe",
                        "plan_config_change",
                        types::PlanConfigChange { config },
                        [
                            227u8, 155u8, 182u8, 231u8, 240u8, 107u8, 30u8, 22u8, 15u8, 52u8,
                            172u8, 203u8, 115u8, 47u8, 6u8, 66u8, 170u8, 231u8, 186u8, 77u8, 19u8,
                            235u8, 91u8, 136u8, 95u8, 149u8, 188u8, 163u8, 161u8, 109u8, 164u8,
                            179u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod epoch_index {
                    use super::runtime_types;
                    pub type EpochIndex = ::core::primitive::u64;
                }
                pub mod authorities {
                    use super::runtime_types;
                    pub type Authorities =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<(
                            runtime_types::sp_consensus_babe::app::Public,
                            ::core::primitive::u64,
                        )>;
                }
                pub mod genesis_slot {
                    use super::runtime_types;
                    pub type GenesisSlot = runtime_types::sp_consensus_slots::Slot;
                }
                pub mod current_slot {
                    use super::runtime_types;
                    pub type CurrentSlot = runtime_types::sp_consensus_slots::Slot;
                }
                pub mod randomness {
                    use super::runtime_types;
                    pub type Randomness = [::core::primitive::u8; 32usize];
                }
                pub mod pending_epoch_config_change {
                    use super::runtime_types;
                    pub type PendingEpochConfigChange =
                        runtime_types::sp_consensus_babe::digests::NextConfigDescriptor;
                }
                pub mod next_randomness {
                    use super::runtime_types;
                    pub type NextRandomness = [::core::primitive::u8; 32usize];
                }
                pub mod next_authorities {
                    use super::runtime_types;
                    pub type NextAuthorities =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<(
                            runtime_types::sp_consensus_babe::app::Public,
                            ::core::primitive::u64,
                        )>;
                }
                pub mod segment_index {
                    use super::runtime_types;
                    pub type SegmentIndex = ::core::primitive::u32;
                }
                pub mod under_construction {
                    use super::runtime_types;
                    pub type UnderConstruction =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            [::core::primitive::u8; 32usize],
                        >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod initialized {
                    use super::runtime_types;
                    pub type Initialized = ::core::option::Option<
                        runtime_types::sp_consensus_babe::digests::PreDigest,
                    >;
                }
                pub mod author_vrf_randomness {
                    use super::runtime_types;
                    pub type AuthorVrfRandomness =
                        ::core::option::Option<[::core::primitive::u8; 32usize]>;
                }
                pub mod epoch_start {
                    use super::runtime_types;
                    pub type EpochStart = (::core::primitive::u32, ::core::primitive::u32);
                }
                pub mod lateness {
                    use super::runtime_types;
                    pub type Lateness = ::core::primitive::u32;
                }
                pub mod epoch_config {
                    use super::runtime_types;
                    pub type EpochConfig = runtime_types::sp_consensus_babe::BabeEpochConfiguration;
                }
                pub mod next_epoch_config {
                    use super::runtime_types;
                    pub type NextEpochConfig =
                        runtime_types::sp_consensus_babe::BabeEpochConfiguration;
                }
                pub mod skipped_epochs {
                    use super::runtime_types;
                    pub type SkippedEpochs =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u64,
                            ::core::primitive::u32,
                        )>;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Current epoch index."]
                pub fn epoch_index(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::epoch_index::EpochIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "EpochIndex",
                        (),
                        [
                            32u8, 82u8, 130u8, 31u8, 190u8, 162u8, 237u8, 189u8, 104u8, 244u8,
                            30u8, 199u8, 179u8, 0u8, 161u8, 107u8, 72u8, 240u8, 201u8, 222u8,
                            177u8, 222u8, 35u8, 156u8, 81u8, 132u8, 162u8, 118u8, 238u8, 84u8,
                            112u8, 89u8,
                        ],
                    )
                }
                #[doc = " Current epoch authorities."]
                pub fn authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorities::Authorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "Authorities",
                        (),
                        [
                            192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8,
                            247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8,
                            104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8,
                            134u8, 44u8,
                        ],
                    )
                }
                #[doc = " The slot at which the first epoch actually started. This is 0"]
                #[doc = " until the first block of the chain."]
                pub fn genesis_slot(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::genesis_slot::GenesisSlot,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "GenesisSlot",
                        (),
                        [
                            218u8, 174u8, 152u8, 76u8, 188u8, 214u8, 7u8, 88u8, 253u8, 187u8,
                            139u8, 234u8, 51u8, 28u8, 220u8, 57u8, 73u8, 1u8, 18u8, 205u8, 80u8,
                            160u8, 120u8, 216u8, 139u8, 191u8, 100u8, 108u8, 162u8, 106u8, 175u8,
                            107u8,
                        ],
                    )
                }
                #[doc = " Current slot number."]
                pub fn current_slot(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_slot::CurrentSlot,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "CurrentSlot",
                        (),
                        [
                            112u8, 199u8, 115u8, 248u8, 217u8, 242u8, 45u8, 231u8, 178u8, 53u8,
                            236u8, 167u8, 219u8, 238u8, 81u8, 243u8, 39u8, 140u8, 68u8, 19u8,
                            201u8, 169u8, 211u8, 133u8, 135u8, 213u8, 150u8, 105u8, 60u8, 252u8,
                            43u8, 57u8,
                        ],
                    )
                }
                #[doc = " The epoch randomness for the *current* epoch."]
                #[doc = ""]
                #[doc = " # Security"]
                #[doc = ""]
                #[doc = " This MUST NOT be used for gambling, as it can be influenced by a"]
                #[doc = " malicious validator in the short term. It MAY be used in many"]
                #[doc = " cryptographic protocols, however, so long as one remembers that this"]
                #[doc = " (like everything else on-chain) it is public. For example, it can be"]
                #[doc = " used where a number is needed that cannot have been chosen by an"]
                #[doc = " adversary, for purposes such as public-coin zero-knowledge proofs."]
                pub fn randomness(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::randomness::Randomness,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "Randomness",
                        (),
                        [
                            36u8, 15u8, 52u8, 73u8, 195u8, 177u8, 186u8, 125u8, 134u8, 11u8, 103u8,
                            248u8, 170u8, 237u8, 105u8, 239u8, 168u8, 204u8, 147u8, 52u8, 15u8,
                            226u8, 126u8, 176u8, 133u8, 186u8, 169u8, 241u8, 156u8, 118u8, 67u8,
                            58u8,
                        ],
                    )
                }
                #[doc = " Pending epoch configuration change that will be applied when the next epoch is enacted."]
                pub fn pending_epoch_config_change(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pending_epoch_config_change::PendingEpochConfigChange,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "PendingEpochConfigChange",
                        (),
                        [
                            79u8, 216u8, 84u8, 210u8, 83u8, 149u8, 122u8, 160u8, 159u8, 164u8,
                            16u8, 134u8, 154u8, 104u8, 77u8, 254u8, 139u8, 18u8, 163u8, 59u8, 92u8,
                            9u8, 135u8, 141u8, 147u8, 86u8, 44u8, 95u8, 183u8, 101u8, 11u8, 58u8,
                        ],
                    )
                }
                #[doc = " Next epoch randomness."]
                pub fn next_randomness(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_randomness::NextRandomness,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "NextRandomness",
                        (),
                        [
                            96u8, 191u8, 139u8, 171u8, 144u8, 92u8, 33u8, 58u8, 23u8, 219u8, 164u8,
                            121u8, 59u8, 209u8, 112u8, 244u8, 50u8, 8u8, 14u8, 244u8, 103u8, 125u8,
                            120u8, 210u8, 16u8, 250u8, 54u8, 192u8, 72u8, 8u8, 219u8, 152u8,
                        ],
                    )
                }
                #[doc = " Next epoch authorities."]
                pub fn next_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_authorities::NextAuthorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "NextAuthorities",
                        (),
                        [
                            29u8, 161u8, 79u8, 221u8, 198u8, 101u8, 11u8, 17u8, 20u8, 17u8, 225u8,
                            144u8, 35u8, 150u8, 241u8, 190u8, 106u8, 32u8, 230u8, 14u8, 212u8,
                            126u8, 1u8, 96u8, 73u8, 173u8, 245u8, 39u8, 153u8, 33u8, 205u8, 174u8,
                        ],
                    )
                }
                #[doc = " Randomness under construction."]
                #[doc = ""]
                #[doc = " We make a trade-off between storage accesses and list length."]
                #[doc = " We store the under-construction randomness in segments of up to"]
                #[doc = " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`."]
                #[doc = ""]
                #[doc = " Once a segment reaches this length, we begin the next one."]
                #[doc = " We reset all segments and return to `0` at the beginning of every"]
                #[doc = " epoch."]
                pub fn segment_index(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::segment_index::SegmentIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "SegmentIndex",
                        (),
                        [
                            145u8, 91u8, 142u8, 240u8, 184u8, 94u8, 68u8, 52u8, 130u8, 3u8, 75u8,
                            175u8, 155u8, 130u8, 66u8, 9u8, 150u8, 242u8, 123u8, 111u8, 124u8,
                            241u8, 100u8, 128u8, 220u8, 133u8, 96u8, 227u8, 164u8, 241u8, 170u8,
                            34u8,
                        ],
                    )
                }
                #[doc = " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."]
                pub fn under_construction_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::under_construction::UnderConstruction,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "UnderConstruction",
                        (),
                        [
                            120u8, 120u8, 59u8, 247u8, 50u8, 6u8, 220u8, 14u8, 2u8, 76u8, 203u8,
                            244u8, 232u8, 144u8, 253u8, 191u8, 101u8, 35u8, 99u8, 85u8, 111u8,
                            168u8, 31u8, 110u8, 187u8, 124u8, 72u8, 32u8, 43u8, 66u8, 8u8, 215u8,
                        ],
                    )
                }
                #[doc = " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."]
                pub fn under_construction(
                    &self,
                    _0: types::under_construction::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::under_construction::Param0,
                    >,
                    types::under_construction::UnderConstruction,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "UnderConstruction",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            120u8, 120u8, 59u8, 247u8, 50u8, 6u8, 220u8, 14u8, 2u8, 76u8, 203u8,
                            244u8, 232u8, 144u8, 253u8, 191u8, 101u8, 35u8, 99u8, 85u8, 111u8,
                            168u8, 31u8, 110u8, 187u8, 124u8, 72u8, 32u8, 43u8, 66u8, 8u8, 215u8,
                        ],
                    )
                }
                #[doc = " Temporary value (cleared at block finalization) which is `Some`"]
                #[doc = " if per-block initialization has already been called for current block."]
                pub fn initialized(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::initialized::Initialized,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "Initialized",
                        (),
                        [
                            169u8, 217u8, 237u8, 78u8, 186u8, 202u8, 206u8, 213u8, 54u8, 85u8,
                            206u8, 166u8, 22u8, 138u8, 236u8, 60u8, 211u8, 169u8, 12u8, 183u8,
                            23u8, 69u8, 194u8, 236u8, 112u8, 21u8, 62u8, 219u8, 92u8, 131u8, 134u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " This field should always be populated during block processing unless"]
                #[doc = " secondary plain slots are enabled (which don't contain a VRF output)."]
                #[doc = ""]
                #[doc = " It is set in `on_finalize`, before it will contain the value from the last block."]
                pub fn author_vrf_randomness(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::author_vrf_randomness::AuthorVrfRandomness,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "AuthorVrfRandomness",
                        (),
                        [
                            160u8, 157u8, 62u8, 48u8, 196u8, 136u8, 63u8, 132u8, 155u8, 183u8,
                            91u8, 201u8, 146u8, 29u8, 192u8, 142u8, 168u8, 152u8, 197u8, 233u8,
                            5u8, 25u8, 0u8, 154u8, 234u8, 180u8, 146u8, 132u8, 106u8, 164u8, 149u8,
                            63u8,
                        ],
                    )
                }
                #[doc = " The block numbers when the last and current epoch have started, respectively `N-1` and"]
                #[doc = " `N`."]
                #[doc = " NOTE: We track this is in order to annotate the block number when a given pool of"]
                #[doc = " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in"]
                #[doc = " slots, which may be skipped, the block numbers may not line up with the slot numbers."]
                pub fn epoch_start(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::epoch_start::EpochStart,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "EpochStart",
                        (),
                        [
                            144u8, 133u8, 140u8, 56u8, 241u8, 203u8, 199u8, 123u8, 244u8, 126u8,
                            196u8, 151u8, 214u8, 204u8, 243u8, 244u8, 210u8, 198u8, 174u8, 126u8,
                            200u8, 236u8, 248u8, 190u8, 181u8, 152u8, 113u8, 224u8, 95u8, 234u8,
                            169u8, 14u8,
                        ],
                    )
                }
                #[doc = " How late the current block is compared to its parent."]
                #[doc = ""]
                #[doc = " This entry is populated as part of block execution and is cleaned up"]
                #[doc = " on block finalization. Querying this storage entry outside of block"]
                #[doc = " execution context should always yield zero."]
                pub fn lateness(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::lateness::Lateness,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "Lateness",
                        (),
                        [
                            229u8, 214u8, 133u8, 149u8, 32u8, 159u8, 26u8, 22u8, 252u8, 131u8,
                            200u8, 191u8, 231u8, 176u8, 178u8, 127u8, 33u8, 212u8, 139u8, 220u8,
                            157u8, 38u8, 4u8, 226u8, 204u8, 32u8, 55u8, 20u8, 205u8, 141u8, 29u8,
                            87u8,
                        ],
                    )
                }
                #[doc = " The configuration for the current epoch. Should never be `None` as it is initialized in"]
                #[doc = " genesis."]
                pub fn epoch_config(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::epoch_config::EpochConfig,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "EpochConfig",
                        (),
                        [
                            151u8, 58u8, 93u8, 2u8, 19u8, 98u8, 41u8, 144u8, 241u8, 70u8, 195u8,
                            37u8, 126u8, 241u8, 111u8, 65u8, 16u8, 228u8, 111u8, 220u8, 241u8,
                            215u8, 179u8, 235u8, 122u8, 88u8, 92u8, 95u8, 131u8, 252u8, 236u8,
                            46u8,
                        ],
                    )
                }
                #[doc = " The configuration for the next epoch, `None` if the config will not change"]
                #[doc = " (you can fallback to `EpochConfig` instead in that case)."]
                pub fn next_epoch_config(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_epoch_config::NextEpochConfig,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "NextEpochConfig",
                        (),
                        [
                            65u8, 54u8, 74u8, 141u8, 193u8, 124u8, 130u8, 238u8, 106u8, 27u8,
                            221u8, 189u8, 103u8, 53u8, 39u8, 243u8, 212u8, 216u8, 75u8, 185u8,
                            104u8, 220u8, 70u8, 108u8, 87u8, 172u8, 201u8, 185u8, 39u8, 55u8,
                            145u8, 6u8,
                        ],
                    )
                }
                #[doc = " A list of the last 100 skipped epochs and the corresponding session index"]
                #[doc = " when the epoch was skipped."]
                #[doc = ""]
                #[doc = " This is only used for validating equivocation proofs. An equivocation proof"]
                #[doc = " must contains a key-ownership proof for a given session, therefore we need a"]
                #[doc = " way to tie together sessions and epoch indices, i.e. we need to validate that"]
                #[doc = " a validator was the owner of a given key on a given session, and what the"]
                #[doc = " active epoch index was during that session."]
                pub fn skipped_epochs(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::skipped_epochs::SkippedEpochs,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Babe",
                        "SkippedEpochs",
                        (),
                        [
                            120u8, 167u8, 144u8, 97u8, 41u8, 216u8, 103u8, 90u8, 3u8, 86u8, 196u8,
                            35u8, 160u8, 150u8, 144u8, 233u8, 128u8, 35u8, 119u8, 66u8, 6u8, 63u8,
                            114u8, 140u8, 182u8, 228u8, 192u8, 30u8, 50u8, 145u8, 217u8, 108u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The amount of time, in slots, that each epoch should last."]
                #[doc = " NOTE: Currently it is not possible to change the epoch duration after"]
                #[doc = " the chain has started. Attempting to do so will brick block production."]
                pub fn epoch_duration(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Babe",
                        "EpochDuration",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
                #[doc = " The expected average block time at which BABE should be creating"]
                #[doc = " blocks. Since BABE is probabilistic it is not trivial to figure out"]
                #[doc = " what the expected average block time should be based on the slot"]
                #[doc = " duration and the security parameter `c` (where `1 - c` represents"]
                #[doc = " the probability of a slot being empty)."]
                pub fn expected_block_time(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Babe",
                        "ExpectedBlockTime",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
                #[doc = " Max number of authorities allowed"]
                pub fn max_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Babe",
                        "MaxAuthorities",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of nominators for each validator."]
                pub fn max_nominators(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Babe",
                        "MaxNominators",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod timestamp {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_timestamp::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the current time."]
                #[doc = ""]
                #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"]
                #[doc = "phase, if this call hasn't been invoked by that time."]
                #[doc = ""]
                #[doc = "The timestamp should be greater than the previous one by the amount specified by"]
                #[doc = "[`Config::MinimumPeriod`]."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"]
                #[doc = "that changing the complexity of this call could result exhausting the resources in a"]
                #[doc = "block to execute any other calls."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"]
                #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"]
                #[doc = "  `on_finalize`)"]
                #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."]
                pub struct Set {
                    #[codec(compact)]
                    pub now: set::Now,
                }
                pub mod set {
                    use super::runtime_types;
                    pub type Now = ::core::primitive::u64;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Set {
                    const PALLET: &'static str = "Timestamp";
                    const CALL: &'static str = "set";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Set the current time."]
                #[doc = ""]
                #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"]
                #[doc = "phase, if this call hasn't been invoked by that time."]
                #[doc = ""]
                #[doc = "The timestamp should be greater than the previous one by the amount specified by"]
                #[doc = "[`Config::MinimumPeriod`]."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"]
                #[doc = "that changing the complexity of this call could result exhausting the resources in a"]
                #[doc = "block to execute any other calls."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"]
                #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"]
                #[doc = "  `on_finalize`)"]
                #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."]
                pub fn set(
                    &self,
                    now: types::set::Now,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Set>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Timestamp",
                        "set",
                        types::Set { now },
                        [
                            37u8, 95u8, 49u8, 218u8, 24u8, 22u8, 0u8, 95u8, 72u8, 35u8, 155u8,
                            199u8, 213u8, 54u8, 207u8, 22u8, 185u8, 193u8, 221u8, 70u8, 18u8,
                            200u8, 4u8, 231u8, 195u8, 173u8, 6u8, 122u8, 11u8, 203u8, 231u8, 227u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod now {
                    use super::runtime_types;
                    pub type Now = ::core::primitive::u64;
                }
                pub mod did_update {
                    use super::runtime_types;
                    pub type DidUpdate = ::core::primitive::bool;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The current time for the current block."]
                pub fn now(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::now::Now,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Timestamp",
                        "Now",
                        (),
                        [
                            44u8, 50u8, 80u8, 30u8, 195u8, 146u8, 123u8, 238u8, 8u8, 163u8, 187u8,
                            92u8, 61u8, 39u8, 51u8, 29u8, 173u8, 169u8, 217u8, 158u8, 85u8, 187u8,
                            141u8, 26u8, 12u8, 115u8, 51u8, 11u8, 200u8, 244u8, 138u8, 152u8,
                        ],
                    )
                }
                #[doc = " Whether the timestamp has been updated in this block."]
                #[doc = ""]
                #[doc = " This value is updated to `true` upon successful submission of a timestamp by a node."]
                #[doc = " It is then checked at the end of each block execution in the `on_finalize` hook."]
                pub fn did_update(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::did_update::DidUpdate,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Timestamp",
                        "DidUpdate",
                        (),
                        [
                            229u8, 175u8, 246u8, 102u8, 237u8, 158u8, 212u8, 229u8, 238u8, 214u8,
                            205u8, 160u8, 164u8, 252u8, 195u8, 75u8, 139u8, 110u8, 22u8, 34u8,
                            248u8, 204u8, 107u8, 46u8, 20u8, 200u8, 238u8, 167u8, 71u8, 41u8,
                            214u8, 140u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum period between blocks."]
                #[doc = ""]
                #[doc = " Be aware that this is different to the *expected* period that the block production"]
                #[doc = " apparatus provides. Your chosen consensus system will generally work with this to"]
                #[doc = " determine a sensible block time. For example, in the Aura pallet it will be double this"]
                #[doc = " period on default settings."]
                pub fn minimum_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Timestamp",
                        "MinimumPeriod",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod indices {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_indices::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_indices::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Assign an previously unassigned index."]
                #[doc = ""]
                #[doc = "Payment: `Deposit` is reserved from the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be claimed. This must not be in use."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct Claim {
                    pub index: claim::Index,
                }
                pub mod claim {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Claim {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "claim";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Assign an index already owned by the sender to another account. The balance reservation"]
                #[doc = "is effectively transferred to the new account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."]
                #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct Transfer {
                    pub new: transfer::New,
                    pub index: transfer::Index,
                }
                pub mod transfer {
                    use super::runtime_types;
                    pub type New = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Transfer {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Free up an index owned by the sender."]
                #[doc = ""]
                #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."]
                #[doc = ""]
                #[doc = "- `index`: the index to be freed. This must be owned by the sender."]
                #[doc = ""]
                #[doc = "Emits `IndexFreed` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct Free {
                    pub index: free::Index,
                }
                pub mod free {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Free {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "free";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"]
                #[doc = "held, then any deposit is reimbursed to its current owner."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be (re-)assigned."]
                #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct ForceTransfer {
                    pub new: force_transfer::New,
                    pub index: force_transfer::Index,
                    pub freeze: force_transfer::Freeze,
                }
                pub mod force_transfer {
                    use super::runtime_types;
                    pub type New = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Index = ::core::primitive::u32;
                    pub type Freeze = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceTransfer {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "force_transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Freeze an index so it will always point to the sender account. This consumes the"]
                #[doc = "deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                #[doc = "non-frozen account `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index to be frozen in place."]
                #[doc = ""]
                #[doc = "Emits `IndexFrozen` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct Freeze {
                    pub index: freeze::Index,
                }
                pub mod freeze {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Freeze {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "freeze";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke the deposit reserved for an index."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                #[doc = "non-frozen account `index`."]
                #[doc = ""]
                #[doc = "The transaction fees is waived if the deposit is changed after poking/reconsideration."]
                #[doc = ""]
                #[doc = "- `index`: the index whose deposit is to be poked/reconsidered."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub struct PokeDeposit {
                    pub index: poke_deposit::Index,
                }
                pub mod poke_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Indices";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Assign an previously unassigned index."]
                #[doc = ""]
                #[doc = "Payment: `Deposit` is reserved from the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be claimed. This must not be in use."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn claim(
                    &self,
                    index: types::claim::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Claim>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "claim",
                        types::Claim { index },
                        [
                            146u8, 58u8, 246u8, 135u8, 59u8, 90u8, 3u8, 5u8, 140u8, 169u8, 232u8,
                            195u8, 11u8, 107u8, 36u8, 141u8, 118u8, 174u8, 160u8, 160u8, 19u8,
                            205u8, 177u8, 193u8, 18u8, 102u8, 115u8, 31u8, 72u8, 29u8, 91u8, 235u8,
                        ],
                    )
                }
                #[doc = "Assign an index already owned by the sender to another account. The balance reservation"]
                #[doc = "is effectively transferred to the new account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."]
                #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn transfer(
                    &self,
                    new: types::transfer::New,
                    index: types::transfer::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Transfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "transfer",
                        types::Transfer { new, index },
                        [
                            121u8, 156u8, 174u8, 248u8, 72u8, 126u8, 99u8, 188u8, 71u8, 134u8,
                            107u8, 147u8, 139u8, 139u8, 57u8, 198u8, 17u8, 241u8, 142u8, 64u8,
                            16u8, 121u8, 249u8, 146u8, 24u8, 86u8, 78u8, 187u8, 38u8, 146u8, 96u8,
                            218u8,
                        ],
                    )
                }
                #[doc = "Free up an index owned by the sender."]
                #[doc = ""]
                #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."]
                #[doc = ""]
                #[doc = "- `index`: the index to be freed. This must be owned by the sender."]
                #[doc = ""]
                #[doc = "Emits `IndexFreed` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn free(
                    &self,
                    index: types::free::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Free>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "free",
                        types::Free { index },
                        [
                            241u8, 211u8, 234u8, 102u8, 189u8, 22u8, 209u8, 27u8, 8u8, 229u8, 80u8,
                            227u8, 138u8, 252u8, 222u8, 111u8, 77u8, 201u8, 235u8, 51u8, 163u8,
                            247u8, 13u8, 126u8, 216u8, 136u8, 57u8, 222u8, 56u8, 66u8, 215u8,
                            244u8,
                        ],
                    )
                }
                #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"]
                #[doc = "held, then any deposit is reimbursed to its current owner."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `index`: the index to be (re-)assigned."]
                #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."]
                #[doc = ""]
                #[doc = "Emits `IndexAssigned` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn force_transfer(
                    &self,
                    new: types::force_transfer::New,
                    index: types::force_transfer::Index,
                    freeze: types::force_transfer::Freeze,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceTransfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "force_transfer",
                        types::ForceTransfer { new, index, freeze },
                        [
                            137u8, 128u8, 43u8, 135u8, 129u8, 169u8, 162u8, 136u8, 175u8, 31u8,
                            161u8, 120u8, 15u8, 176u8, 203u8, 23u8, 107u8, 31u8, 135u8, 200u8,
                            221u8, 186u8, 162u8, 229u8, 238u8, 82u8, 192u8, 122u8, 136u8, 6u8,
                            176u8, 42u8,
                        ],
                    )
                }
                #[doc = "Freeze an index so it will always point to the sender account. This consumes the"]
                #[doc = "deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                #[doc = "non-frozen account `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index to be frozen in place."]
                #[doc = ""]
                #[doc = "Emits `IndexFrozen` if successful."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn freeze(
                    &self,
                    index: types::freeze::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Freeze>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "freeze",
                        types::Freeze { index },
                        [
                            238u8, 215u8, 108u8, 156u8, 84u8, 240u8, 130u8, 229u8, 27u8, 132u8,
                            93u8, 78u8, 2u8, 251u8, 43u8, 203u8, 2u8, 142u8, 147u8, 48u8, 92u8,
                            101u8, 207u8, 24u8, 51u8, 16u8, 36u8, 229u8, 188u8, 129u8, 160u8,
                            117u8,
                        ],
                    )
                }
                #[doc = "Poke the deposit reserved for an index."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                #[doc = "non-frozen account `index`."]
                #[doc = ""]
                #[doc = "The transaction fees is waived if the deposit is changed after poking/reconsideration."]
                #[doc = ""]
                #[doc = "- `index`: the index whose deposit is to be poked/reconsidered."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub fn poke_deposit(
                    &self,
                    index: types::poke_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Indices",
                        "poke_deposit",
                        types::PokeDeposit { index },
                        [
                            105u8, 242u8, 155u8, 137u8, 22u8, 179u8, 151u8, 68u8, 214u8, 99u8,
                            110u8, 144u8, 91u8, 37u8, 222u8, 116u8, 67u8, 21u8, 100u8, 59u8, 145u8,
                            185u8, 181u8, 166u8, 236u8, 138u8, 153u8, 73u8, 138u8, 81u8, 206u8,
                            238u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_indices::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A account index was assigned."]
            pub struct IndexAssigned {
                pub who: index_assigned::Who,
                pub index: index_assigned::Index,
            }
            pub mod index_assigned {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IndexAssigned {
                const PALLET: &'static str = "Indices";
                const EVENT: &'static str = "IndexAssigned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A account index has been freed up (unassigned)."]
            pub struct IndexFreed {
                pub index: index_freed::Index,
            }
            pub mod index_freed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IndexFreed {
                const PALLET: &'static str = "Indices";
                const EVENT: &'static str = "IndexFreed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A account index has been frozen to its current account ID."]
            pub struct IndexFrozen {
                pub index: index_frozen::Index,
                pub who: index_frozen::Who,
            }
            pub mod index_frozen {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IndexFrozen {
                const PALLET: &'static str = "Indices";
                const EVENT: &'static str = "IndexFrozen";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit to reserve an index has been poked/reconsidered."]
            pub struct DepositPoked {
                pub who: deposit_poked::Who,
                pub index: deposit_poked::Index,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Index = ::core::primitive::u32;
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Indices";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod accounts {
                    use super::runtime_types;
                    pub type Accounts = (
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                        ::core::primitive::bool,
                    );
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The lookup from index to account."]
                pub fn accounts_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::accounts::Accounts,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Indices",
                        "Accounts",
                        (),
                        [
                            48u8, 189u8, 43u8, 119u8, 32u8, 168u8, 28u8, 12u8, 245u8, 81u8, 119u8,
                            182u8, 23u8, 201u8, 33u8, 147u8, 128u8, 171u8, 155u8, 134u8, 71u8,
                            87u8, 100u8, 248u8, 107u8, 129u8, 36u8, 197u8, 220u8, 90u8, 11u8,
                            238u8,
                        ],
                    )
                }
                #[doc = " The lookup from index to account."]
                pub fn accounts(
                    &self,
                    _0: types::accounts::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::accounts::Param0,
                    >,
                    types::accounts::Accounts,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Indices",
                        "Accounts",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            48u8, 189u8, 43u8, 119u8, 32u8, 168u8, 28u8, 12u8, 245u8, 81u8, 119u8,
                            182u8, 23u8, 201u8, 33u8, 147u8, 128u8, 171u8, 155u8, 134u8, 71u8,
                            87u8, 100u8, 248u8, 107u8, 129u8, 36u8, 197u8, 220u8, 90u8, 11u8,
                            238u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The deposit needed for reserving an index."]
                pub fn deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Indices",
                        "Deposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod balances {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_balances::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_balances::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer some liquid free balance to another account."]
                #[doc = ""]
                #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."]
                #[doc = "If the sender's account is below the existential deposit as a result"]
                #[doc = "of the transfer, the account will be reaped."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
                pub struct TransferAllowDeath {
                    pub dest: transfer_allow_death::Dest,
                    #[codec(compact)]
                    pub value: transfer_allow_death::Value,
                }
                pub mod transfer_allow_death {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAllowDeath {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "transfer_allow_death";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"]
                #[doc = "may be specified."]
                pub struct ForceTransfer {
                    pub source: force_transfer::Source,
                    pub dest: force_transfer::Dest,
                    #[codec(compact)]
                    pub value: force_transfer::Value,
                }
                pub mod force_transfer {
                    use super::runtime_types;
                    pub type Source = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceTransfer {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "force_transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"]
                #[doc = "kill the origin account."]
                #[doc = ""]
                #[doc = "99% of the time you want [`transfer_allow_death`] instead."]
                #[doc = ""]
                #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"]
                pub struct TransferKeepAlive {
                    pub dest: transfer_keep_alive::Dest,
                    #[codec(compact)]
                    pub value: transfer_keep_alive::Value,
                }
                pub mod transfer_keep_alive {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferKeepAlive {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "transfer_keep_alive";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer the entire transferable balance from the caller account."]
                #[doc = ""]
                #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"]
                #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"]
                #[doc = "transferred by this function. To ensure that this function results in a killed account,"]
                #[doc = "you might need to prepare the account by removing any reference counters, storage"]
                #[doc = "deposits, etc..."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be Signed."]
                #[doc = ""]
                #[doc = "- `dest`: The recipient of the transfer."]
                #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"]
                #[doc = "  of the funds the account has, causing the sender account to be killed (false), or"]
                #[doc = "  transfer everything except at least the existential deposit, which will guarantee to"]
                #[doc = "  keep the sender account alive (true)."]
                pub struct TransferAll {
                    pub dest: transfer_all::Dest,
                    pub keep_alive: transfer_all::KeepAlive,
                }
                pub mod transfer_all {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type KeepAlive = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAll {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "transfer_all";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unreserve some balance from a user by force."]
                #[doc = ""]
                #[doc = "Can only be called by ROOT."]
                pub struct ForceUnreserve {
                    pub who: force_unreserve::Who,
                    pub amount: force_unreserve::Amount,
                }
                pub mod force_unreserve {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Amount = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnreserve {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "force_unreserve";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Upgrade a specified account."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `who`: The account to be upgraded."]
                #[doc = ""]
                #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"]
                #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"]
                #[doc = "possibility of churn)."]
                pub struct UpgradeAccounts {
                    pub who: upgrade_accounts::Who,
                }
                pub mod upgrade_accounts {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UpgradeAccounts {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "upgrade_accounts";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the regular balance of a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call is `root`."]
                pub struct ForceSetBalance {
                    pub who: force_set_balance::Who,
                    #[codec(compact)]
                    pub new_free: force_set_balance::NewFree,
                }
                pub mod force_set_balance {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type NewFree = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetBalance {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "force_set_balance";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Adjust the total issuance in a saturating way."]
                #[doc = ""]
                #[doc = "Can only be called by root and always needs a positive `delta`."]
                #[doc = ""]
                #[doc = "# Example"]
                pub struct ForceAdjustTotalIssuance {
                    pub direction: force_adjust_total_issuance::Direction,
                    #[codec(compact)]
                    pub delta: force_adjust_total_issuance::Delta,
                }
                pub mod force_adjust_total_issuance {
                    use super::runtime_types;
                    pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection;
                    pub type Delta = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "force_adjust_total_issuance";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Burn the specified liquid free balance from the origin account."]
                #[doc = ""]
                #[doc = "If the origin's account ends up below the existential deposit as a result"]
                #[doc = "of the burn and `keep_alive` is false, the account will be reaped."]
                #[doc = ""]
                #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"]
                #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."]
                pub struct Burn {
                    #[codec(compact)]
                    pub value: burn::Value,
                    pub keep_alive: burn::KeepAlive,
                }
                pub mod burn {
                    use super::runtime_types;
                    pub type Value = ::core::primitive::u128;
                    pub type KeepAlive = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Burn {
                    const PALLET: &'static str = "Balances";
                    const CALL: &'static str = "burn";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Transfer some liquid free balance to another account."]
                #[doc = ""]
                #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."]
                #[doc = "If the sender's account is below the existential deposit as a result"]
                #[doc = "of the transfer, the account will be reaped."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
                pub fn transfer_allow_death(
                    &self,
                    dest: types::transfer_allow_death::Dest,
                    value: types::transfer_allow_death::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferAllowDeath>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "transfer_allow_death",
                        types::TransferAllowDeath { dest, value },
                        [
                            51u8, 166u8, 195u8, 10u8, 139u8, 218u8, 55u8, 130u8, 6u8, 194u8, 35u8,
                            140u8, 27u8, 205u8, 214u8, 222u8, 102u8, 43u8, 143u8, 145u8, 86u8,
                            219u8, 210u8, 147u8, 13u8, 39u8, 51u8, 21u8, 237u8, 179u8, 132u8,
                            130u8,
                        ],
                    )
                }
                #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"]
                #[doc = "may be specified."]
                pub fn force_transfer(
                    &self,
                    source: types::force_transfer::Source,
                    dest: types::force_transfer::Dest,
                    value: types::force_transfer::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceTransfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "force_transfer",
                        types::ForceTransfer {
                            source,
                            dest,
                            value,
                        },
                        [
                            154u8, 93u8, 222u8, 27u8, 12u8, 248u8, 63u8, 213u8, 224u8, 86u8, 250u8,
                            153u8, 249u8, 102u8, 83u8, 160u8, 79u8, 125u8, 105u8, 222u8, 77u8,
                            180u8, 90u8, 105u8, 81u8, 217u8, 60u8, 25u8, 213u8, 51u8, 185u8, 96u8,
                        ],
                    )
                }
                #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"]
                #[doc = "kill the origin account."]
                #[doc = ""]
                #[doc = "99% of the time you want [`transfer_allow_death`] instead."]
                #[doc = ""]
                #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"]
                pub fn transfer_keep_alive(
                    &self,
                    dest: types::transfer_keep_alive::Dest,
                    value: types::transfer_keep_alive::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferKeepAlive>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "transfer_keep_alive",
                        types::TransferKeepAlive { dest, value },
                        [
                            245u8, 14u8, 190u8, 193u8, 32u8, 210u8, 74u8, 92u8, 25u8, 182u8, 76u8,
                            55u8, 247u8, 83u8, 114u8, 75u8, 143u8, 236u8, 117u8, 25u8, 54u8, 157u8,
                            208u8, 207u8, 233u8, 89u8, 70u8, 161u8, 235u8, 242u8, 222u8, 59u8,
                        ],
                    )
                }
                #[doc = "Transfer the entire transferable balance from the caller account."]
                #[doc = ""]
                #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"]
                #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"]
                #[doc = "transferred by this function. To ensure that this function results in a killed account,"]
                #[doc = "you might need to prepare the account by removing any reference counters, storage"]
                #[doc = "deposits, etc..."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be Signed."]
                #[doc = ""]
                #[doc = "- `dest`: The recipient of the transfer."]
                #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"]
                #[doc = "  of the funds the account has, causing the sender account to be killed (false), or"]
                #[doc = "  transfer everything except at least the existential deposit, which will guarantee to"]
                #[doc = "  keep the sender account alive (true)."]
                pub fn transfer_all(
                    &self,
                    dest: types::transfer_all::Dest,
                    keep_alive: types::transfer_all::KeepAlive,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferAll>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "transfer_all",
                        types::TransferAll { dest, keep_alive },
                        [
                            105u8, 132u8, 49u8, 144u8, 195u8, 250u8, 34u8, 46u8, 213u8, 248u8,
                            112u8, 188u8, 81u8, 228u8, 136u8, 18u8, 67u8, 172u8, 37u8, 38u8, 238u8,
                            9u8, 34u8, 15u8, 67u8, 34u8, 148u8, 195u8, 223u8, 29u8, 154u8, 6u8,
                        ],
                    )
                }
                #[doc = "Unreserve some balance from a user by force."]
                #[doc = ""]
                #[doc = "Can only be called by ROOT."]
                pub fn force_unreserve(
                    &self,
                    who: types::force_unreserve::Who,
                    amount: types::force_unreserve::Amount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceUnreserve>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "force_unreserve",
                        types::ForceUnreserve { who, amount },
                        [
                            142u8, 151u8, 64u8, 205u8, 46u8, 64u8, 62u8, 122u8, 108u8, 49u8, 223u8,
                            140u8, 120u8, 153u8, 35u8, 165u8, 187u8, 38u8, 157u8, 200u8, 123u8,
                            199u8, 198u8, 168u8, 208u8, 159u8, 39u8, 134u8, 92u8, 103u8, 84u8,
                            171u8,
                        ],
                    )
                }
                #[doc = "Upgrade a specified account."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `who`: The account to be upgraded."]
                #[doc = ""]
                #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"]
                #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"]
                #[doc = "possibility of churn)."]
                pub fn upgrade_accounts(
                    &self,
                    who: types::upgrade_accounts::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UpgradeAccounts>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "upgrade_accounts",
                        types::UpgradeAccounts { who },
                        [
                            66u8, 200u8, 179u8, 104u8, 65u8, 2u8, 101u8, 56u8, 130u8, 161u8, 224u8,
                            233u8, 255u8, 124u8, 70u8, 122u8, 8u8, 49u8, 103u8, 178u8, 68u8, 47u8,
                            214u8, 166u8, 217u8, 116u8, 178u8, 50u8, 212u8, 164u8, 98u8, 226u8,
                        ],
                    )
                }
                #[doc = "Set the regular balance of a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call is `root`."]
                pub fn force_set_balance(
                    &self,
                    who: types::force_set_balance::Who,
                    new_free: types::force_set_balance::NewFree,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetBalance>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "force_set_balance",
                        types::ForceSetBalance { who, new_free },
                        [
                            114u8, 229u8, 59u8, 204u8, 180u8, 83u8, 17u8, 4u8, 59u8, 4u8, 55u8,
                            39u8, 151u8, 196u8, 124u8, 60u8, 209u8, 65u8, 193u8, 11u8, 44u8, 164u8,
                            116u8, 93u8, 169u8, 30u8, 199u8, 165u8, 55u8, 231u8, 223u8, 43u8,
                        ],
                    )
                }
                #[doc = "Adjust the total issuance in a saturating way."]
                #[doc = ""]
                #[doc = "Can only be called by root and always needs a positive `delta`."]
                #[doc = ""]
                #[doc = "# Example"]
                pub fn force_adjust_total_issuance(
                    &self,
                    direction: types::force_adjust_total_issuance::Direction,
                    delta: types::force_adjust_total_issuance::Delta,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceAdjustTotalIssuance,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "force_adjust_total_issuance",
                        types::ForceAdjustTotalIssuance { direction, delta },
                        [
                            208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8,
                            190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8,
                            176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8,
                            202u8,
                        ],
                    )
                }
                #[doc = "Burn the specified liquid free balance from the origin account."]
                #[doc = ""]
                #[doc = "If the origin's account ends up below the existential deposit as a result"]
                #[doc = "of the burn and `keep_alive` is false, the account will be reaped."]
                #[doc = ""]
                #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"]
                #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."]
                pub fn burn(
                    &self,
                    value: types::burn::Value,
                    keep_alive: types::burn::KeepAlive,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Burn>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Balances",
                        "burn",
                        types::Burn { value, keep_alive },
                        [
                            176u8, 64u8, 7u8, 109u8, 16u8, 44u8, 145u8, 125u8, 147u8, 152u8, 130u8,
                            114u8, 221u8, 201u8, 150u8, 162u8, 118u8, 71u8, 52u8, 92u8, 240u8,
                            116u8, 203u8, 98u8, 5u8, 22u8, 43u8, 102u8, 94u8, 208u8, 101u8, 57u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_balances::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was created with some free balance."]
            pub struct Endowed {
                pub account: endowed::Account,
                pub free_balance: endowed::FreeBalance,
            }
            pub mod endowed {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type FreeBalance = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Endowed {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Endowed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"]
            #[doc = "resulting in an outright loss."]
            pub struct DustLost {
                pub account: dust_lost::Account,
                pub amount: dust_lost::Amount,
            }
            pub mod dust_lost {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DustLost {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "DustLost";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Transfer succeeded."]
            pub struct Transfer {
                pub from: transfer::From,
                pub to: transfer::To,
                pub amount: transfer::Amount,
            }
            pub mod transfer {
                use super::runtime_types;
                pub type From = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type To = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Transfer {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Transfer";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A balance was set by root."]
            pub struct BalanceSet {
                pub who: balance_set::Who,
                pub free: balance_set::Free,
            }
            pub mod balance_set {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Free = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BalanceSet {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "BalanceSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was reserved (moved from free to reserved)."]
            pub struct Reserved {
                pub who: reserved::Who,
                pub amount: reserved::Amount,
            }
            pub mod reserved {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Reserved {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Reserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was unreserved (moved from reserved to free)."]
            pub struct Unreserved {
                pub who: unreserved::Who,
                pub amount: unreserved::Amount,
            }
            pub mod unreserved {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unreserved {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Unreserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was moved from the reserve of the first account to the second account."]
            #[doc = "Final argument indicates the destination balance type."]
            pub struct ReserveRepatriated {
                pub from: reserve_repatriated::From,
                pub to: reserve_repatriated::To,
                pub amount: reserve_repatriated::Amount,
                pub destination_status: reserve_repatriated::DestinationStatus,
            }
            pub mod reserve_repatriated {
                use super::runtime_types;
                pub type From = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type To = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
                pub type DestinationStatus =
                    runtime_types::frame_support::traits::tokens::misc::BalanceStatus;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ReserveRepatriated {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "ReserveRepatriated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was deposited (e.g. for transaction fees)."]
            pub struct Deposit {
                pub who: deposit::Who,
                pub amount: deposit::Amount,
            }
            pub mod deposit {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Deposit {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Deposit";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."]
            pub struct Withdraw {
                pub who: withdraw::Who,
                pub amount: withdraw::Amount,
            }
            pub mod withdraw {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Withdraw {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Withdraw";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was removed from the account (e.g. for misbehavior)."]
            pub struct Slashed {
                pub who: slashed::Who,
                pub amount: slashed::Amount,
            }
            pub mod slashed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Slashed {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Slashed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was minted into an account."]
            pub struct Minted {
                pub who: minted::Who,
                pub amount: minted::Amount,
            }
            pub mod minted {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Minted {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Minted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was burned from an account."]
            pub struct Burned {
                pub who: burned::Who,
                pub amount: burned::Amount,
            }
            pub mod burned {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Burned {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Burned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was suspended from an account (it can be restored later)."]
            pub struct Suspended {
                pub who: suspended::Who,
                pub amount: suspended::Amount,
            }
            pub mod suspended {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Suspended {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Suspended";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was restored into an account."]
            pub struct Restored {
                pub who: restored::Who,
                pub amount: restored::Amount,
            }
            pub mod restored {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Restored {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Restored";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was upgraded."]
            pub struct Upgraded {
                pub who: upgraded::Who,
            }
            pub mod upgraded {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Upgraded {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Upgraded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."]
            pub struct Issued {
                pub amount: issued::Amount,
            }
            pub mod issued {
                use super::runtime_types;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Issued {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Issued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."]
            pub struct Rescinded {
                pub amount: rescinded::Amount,
            }
            pub mod rescinded {
                use super::runtime_types;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Rescinded {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Rescinded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was locked."]
            pub struct Locked {
                pub who: locked::Who,
                pub amount: locked::Amount,
            }
            pub mod locked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Locked {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Locked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was unlocked."]
            pub struct Unlocked {
                pub who: unlocked::Who,
                pub amount: unlocked::Amount,
            }
            pub mod unlocked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unlocked {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Unlocked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was frozen."]
            pub struct Frozen {
                pub who: frozen::Who,
                pub amount: frozen::Amount,
            }
            pub mod frozen {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Frozen {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Frozen";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was thawed."]
            pub struct Thawed {
                pub who: thawed::Who,
                pub amount: thawed::Amount,
            }
            pub mod thawed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Thawed {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "Thawed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The `TotalIssuance` was forcefully changed."]
            pub struct TotalIssuanceForced {
                pub old: total_issuance_forced::Old,
                pub new: total_issuance_forced::New,
            }
            pub mod total_issuance_forced {
                use super::runtime_types;
                pub type Old = ::core::primitive::u128;
                pub type New = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced {
                const PALLET: &'static str = "Balances";
                const EVENT: &'static str = "TotalIssuanceForced";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod total_issuance {
                    use super::runtime_types;
                    pub type TotalIssuance = ::core::primitive::u128;
                }
                pub mod inactive_issuance {
                    use super::runtime_types;
                    pub type InactiveIssuance = ::core::primitive::u128;
                }
                pub mod account {
                    use super::runtime_types;
                    pub type Account =
                        runtime_types::pallet_balances::types::AccountData<::core::primitive::u128>;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod locks {
                    use super::runtime_types;
                    pub type Locks =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<
                            runtime_types::pallet_balances::types::BalanceLock<
                                ::core::primitive::u128,
                            >,
                        >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod reserves {
                    use super::runtime_types;
                    pub type Reserves = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::pallet_balances::types::ReserveData<
                            [::core::primitive::u8; 8usize],
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod holds {
                    use super::runtime_types;
                    pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::frame_support::traits::tokens::misc::IdAmount<
                            runtime_types::rococo_runtime::RuntimeHoldReason,
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod freezes {
                    use super::runtime_types;
                    pub type Freezes = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::frame_support::traits::tokens::misc::IdAmount<
                            (),
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The total units issued in the system."]
                pub fn total_issuance(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::total_issuance::TotalIssuance,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "TotalIssuance",
                        (),
                        [
                            116u8, 70u8, 119u8, 194u8, 69u8, 37u8, 116u8, 206u8, 171u8, 70u8,
                            171u8, 210u8, 226u8, 111u8, 184u8, 204u8, 206u8, 11u8, 68u8, 72u8,
                            255u8, 19u8, 194u8, 11u8, 27u8, 194u8, 81u8, 204u8, 59u8, 224u8, 202u8,
                            185u8,
                        ],
                    )
                }
                #[doc = " The total units of outstanding deactivated balance in the system."]
                pub fn inactive_issuance(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::inactive_issuance::InactiveIssuance,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "InactiveIssuance",
                        (),
                        [
                            212u8, 185u8, 19u8, 50u8, 250u8, 72u8, 173u8, 50u8, 4u8, 104u8, 161u8,
                            249u8, 77u8, 247u8, 204u8, 248u8, 11u8, 18u8, 57u8, 4u8, 82u8, 110u8,
                            30u8, 216u8, 16u8, 37u8, 87u8, 67u8, 189u8, 235u8, 214u8, 155u8,
                        ],
                    )
                }
                #[doc = " The Balances pallet example of storing the balance of an account."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "    type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " You can also store the balance of an account in the `System` pallet."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "   type AccountStore = System"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"]
                #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"]
                #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."]
                #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."]
                pub fn account_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::account::Account,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Account",
                        (),
                        [
                            213u8, 38u8, 200u8, 69u8, 218u8, 0u8, 112u8, 181u8, 160u8, 23u8, 96u8,
                            90u8, 3u8, 88u8, 126u8, 22u8, 103u8, 74u8, 64u8, 69u8, 29u8, 247u8,
                            18u8, 17u8, 234u8, 143u8, 189u8, 22u8, 247u8, 194u8, 154u8, 249u8,
                        ],
                    )
                }
                #[doc = " The Balances pallet example of storing the balance of an account."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "    type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " You can also store the balance of an account in the `System` pallet."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "   type AccountStore = System"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"]
                #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"]
                #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."]
                #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."]
                pub fn account(
                    &self,
                    _0: types::account::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::account::Param0,
                    >,
                    types::account::Account,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Account",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            213u8, 38u8, 200u8, 69u8, 218u8, 0u8, 112u8, 181u8, 160u8, 23u8, 96u8,
                            90u8, 3u8, 88u8, 126u8, 22u8, 103u8, 74u8, 64u8, 69u8, 29u8, 247u8,
                            18u8, 17u8, 234u8, 143u8, 189u8, 22u8, 247u8, 194u8, 154u8, 249u8,
                        ],
                    )
                }
                #[doc = " Any liquidity locks on some account balances."]
                #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn locks_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::locks::Locks,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Locks",
                        (),
                        [
                            10u8, 223u8, 55u8, 0u8, 249u8, 69u8, 168u8, 41u8, 75u8, 35u8, 120u8,
                            167u8, 18u8, 132u8, 9u8, 20u8, 91u8, 51u8, 27u8, 69u8, 136u8, 187u8,
                            13u8, 220u8, 163u8, 122u8, 26u8, 141u8, 174u8, 249u8, 85u8, 37u8,
                        ],
                    )
                }
                #[doc = " Any liquidity locks on some account balances."]
                #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn locks(
                    &self,
                    _0: types::locks::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::locks::Param0,
                    >,
                    types::locks::Locks,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Locks",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            10u8, 223u8, 55u8, 0u8, 249u8, 69u8, 168u8, 41u8, 75u8, 35u8, 120u8,
                            167u8, 18u8, 132u8, 9u8, 20u8, 91u8, 51u8, 27u8, 69u8, 136u8, 187u8,
                            13u8, 220u8, 163u8, 122u8, 26u8, 141u8, 174u8, 249u8, 85u8, 37u8,
                        ],
                    )
                }
                #[doc = " Named reserves on some account balances."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn reserves_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::reserves::Reserves,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Reserves",
                        (),
                        [
                            112u8, 10u8, 241u8, 77u8, 64u8, 187u8, 106u8, 159u8, 13u8, 153u8,
                            140u8, 178u8, 182u8, 50u8, 1u8, 55u8, 149u8, 92u8, 196u8, 229u8, 170u8,
                            106u8, 193u8, 88u8, 255u8, 244u8, 2u8, 193u8, 62u8, 235u8, 204u8, 91u8,
                        ],
                    )
                }
                #[doc = " Named reserves on some account balances."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn reserves(
                    &self,
                    _0: types::reserves::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::reserves::Param0,
                    >,
                    types::reserves::Reserves,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Reserves",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            112u8, 10u8, 241u8, 77u8, 64u8, 187u8, 106u8, 159u8, 13u8, 153u8,
                            140u8, 178u8, 182u8, 50u8, 1u8, 55u8, 149u8, 92u8, 196u8, 229u8, 170u8,
                            106u8, 193u8, 88u8, 255u8, 244u8, 2u8, 193u8, 62u8, 235u8, 204u8, 91u8,
                        ],
                    )
                }
                #[doc = " Holds on account balances."]
                pub fn holds_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::holds::Holds,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Holds",
                        (),
                        [
                            6u8, 68u8, 133u8, 169u8, 100u8, 31u8, 19u8, 164u8, 80u8, 22u8, 132u8,
                            73u8, 190u8, 31u8, 34u8, 82u8, 132u8, 79u8, 92u8, 15u8, 204u8, 149u8,
                            109u8, 203u8, 169u8, 162u8, 250u8, 223u8, 182u8, 170u8, 251u8, 178u8,
                        ],
                    )
                }
                #[doc = " Holds on account balances."]
                pub fn holds(
                    &self,
                    _0: types::holds::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::holds::Param0,
                    >,
                    types::holds::Holds,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Holds",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            6u8, 68u8, 133u8, 169u8, 100u8, 31u8, 19u8, 164u8, 80u8, 22u8, 132u8,
                            73u8, 190u8, 31u8, 34u8, 82u8, 132u8, 79u8, 92u8, 15u8, 204u8, 149u8,
                            109u8, 203u8, 169u8, 162u8, 250u8, 223u8, 182u8, 170u8, 251u8, 178u8,
                        ],
                    )
                }
                #[doc = " Freeze locks on account balances."]
                pub fn freezes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::freezes::Freezes,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Freezes",
                        (),
                        [
                            69u8, 49u8, 165u8, 76u8, 135u8, 142u8, 179u8, 118u8, 50u8, 109u8, 53u8,
                            112u8, 110u8, 94u8, 30u8, 93u8, 173u8, 38u8, 27u8, 142u8, 19u8, 5u8,
                            163u8, 4u8, 68u8, 218u8, 179u8, 224u8, 118u8, 218u8, 115u8, 64u8,
                        ],
                    )
                }
                #[doc = " Freeze locks on account balances."]
                pub fn freezes(
                    &self,
                    _0: types::freezes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::freezes::Param0,
                    >,
                    types::freezes::Freezes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Balances",
                        "Freezes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            69u8, 49u8, 165u8, 76u8, 135u8, 142u8, 179u8, 118u8, 50u8, 109u8, 53u8,
                            112u8, 110u8, 94u8, 30u8, 93u8, 173u8, 38u8, 27u8, 142u8, 19u8, 5u8,
                            163u8, 4u8, 68u8, 218u8, 179u8, 224u8, 118u8, 218u8, 115u8, 64u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!"]
                #[doc = ""]
                #[doc = " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for"]
                #[doc = " this pallet. However, you do so at your own risk: this will open up a major DoS vector."]
                #[doc = " In case you have multiple sources of provider references, you may also get unexpected"]
                #[doc = " behaviour if you set this to zero."]
                #[doc = ""]
                #[doc = " Bottom line: Do yourself a favour and make it at least one!"]
                pub fn existential_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Balances",
                        "ExistentialDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum number of locks that should exist on an account."]
                #[doc = " Not strictly enforced, but used for weight estimation."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn max_locks(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Balances",
                        "MaxLocks",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of named reserves that can exist on an account."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn max_reserves(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Balances",
                        "MaxReserves",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of individual freeze locks that can exist on an account at any time."]
                pub fn max_freezes(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Balances",
                        "MaxFreezes",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod parameters {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_parameters::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the value of a parameter."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"]
                #[doc = "deleted by setting them to `None`."]
                pub struct SetParameter {
                    pub key_value: set_parameter::KeyValue,
                }
                pub mod set_parameter {
                    use super::runtime_types;
                    pub type KeyValue = runtime_types::rococo_runtime::RuntimeParameters;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetParameter {
                    const PALLET: &'static str = "Parameters";
                    const CALL: &'static str = "set_parameter";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Set the value of a parameter."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"]
                #[doc = "deleted by setting them to `None`."]
                pub fn set_parameter(
                    &self,
                    key_value: types::set_parameter::KeyValue,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetParameter>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Parameters",
                        "set_parameter",
                        types::SetParameter { key_value },
                        [
                            82u8, 119u8, 126u8, 179u8, 210u8, 236u8, 135u8, 48u8, 188u8, 108u8,
                            183u8, 91u8, 202u8, 109u8, 117u8, 199u8, 73u8, 154u8, 5u8, 3u8, 122u8,
                            247u8, 107u8, 7u8, 55u8, 20u8, 127u8, 171u8, 14u8, 177u8, 4u8, 225u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_parameters::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A Parameter was set."]
            #[doc = ""]
            #[doc = "Is also emitted when the value was not changed."]
            pub struct Updated {
                pub key: updated::Key,
                pub old_value: updated::OldValue,
                pub new_value: updated::NewValue,
            }
            pub mod updated {
                use super::runtime_types;
                pub type Key = runtime_types::rococo_runtime::RuntimeParametersKey;
                pub type OldValue =
                    ::core::option::Option<runtime_types::rococo_runtime::RuntimeParametersValue>;
                pub type NewValue =
                    ::core::option::Option<runtime_types::rococo_runtime::RuntimeParametersValue>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Updated {
                const PALLET: &'static str = "Parameters";
                const EVENT: &'static str = "Updated";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod parameters {
                    use super::runtime_types;
                    pub type Parameters = runtime_types::rococo_runtime::RuntimeParametersValue;
                    pub type Param0 = runtime_types::rococo_runtime::RuntimeParametersKey;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Stored parameters."]
                pub fn parameters_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parameters::Parameters,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Parameters",
                        "Parameters",
                        (),
                        [
                            151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8,
                            124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8,
                            226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8,
                            110u8,
                        ],
                    )
                }
                #[doc = " Stored parameters."]
                pub fn parameters(
                    &self,
                    _0: types::parameters::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::parameters::Param0,
                    >,
                    types::parameters::Parameters,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Parameters",
                        "Parameters",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8,
                            124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8,
                            226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8,
                            110u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod transaction_payment {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_transaction_payment::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,"]
            #[doc = "has been paid by `who`."]
            pub struct TransactionFeePaid {
                pub who: transaction_fee_paid::Who,
                pub actual_fee: transaction_fee_paid::ActualFee,
                pub tip: transaction_fee_paid::Tip,
            }
            pub mod transaction_fee_paid {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ActualFee = ::core::primitive::u128;
                pub type Tip = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TransactionFeePaid {
                const PALLET: &'static str = "TransactionPayment";
                const EVENT: &'static str = "TransactionFeePaid";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod next_fee_multiplier {
                    use super::runtime_types;
                    pub type NextFeeMultiplier =
                        runtime_types::sp_arithmetic::fixed_point::FixedU128;
                }
                pub mod storage_version {
                    use super::runtime_types;
                    pub type StorageVersion = runtime_types::pallet_transaction_payment::Releases;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                pub fn next_fee_multiplier(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_fee_multiplier::NextFeeMultiplier,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "TransactionPayment",
                        "NextFeeMultiplier",
                        (),
                        [
                            247u8, 39u8, 81u8, 170u8, 225u8, 226u8, 82u8, 147u8, 34u8, 113u8,
                            147u8, 213u8, 59u8, 80u8, 139u8, 35u8, 36u8, 196u8, 152u8, 19u8, 9u8,
                            159u8, 176u8, 79u8, 249u8, 201u8, 170u8, 1u8, 129u8, 79u8, 146u8,
                            197u8,
                        ],
                    )
                }
                pub fn storage_version(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::storage_version::StorageVersion,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "TransactionPayment",
                        "StorageVersion",
                        (),
                        [
                            105u8, 243u8, 158u8, 241u8, 159u8, 231u8, 253u8, 6u8, 4u8, 32u8, 85u8,
                            178u8, 126u8, 31u8, 203u8, 134u8, 154u8, 38u8, 122u8, 155u8, 150u8,
                            251u8, 174u8, 15u8, 74u8, 134u8, 216u8, 244u8, 168u8, 175u8, 158u8,
                            144u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"]
                #[doc = " `priority`"]
                #[doc = ""]
                #[doc = " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later"]
                #[doc = " added to a tip component in regular `priority` calculations."]
                #[doc = " It means that a `Normal` transaction can front-run a similarly-sized `Operational`"]
                #[doc = " extrinsic (with no tip), by including a tip value greater than the virtual tip."]
                #[doc = ""]
                #[doc = " ```rust,ignore"]
                #[doc = " // For `Normal`"]
                #[doc = " let priority = priority_calc(tip);"]
                #[doc = ""]
                #[doc = " // For `Operational`"]
                #[doc = " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;"]
                #[doc = " let priority = priority_calc(tip + virtual_tip);"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " Note that since we use `final_fee` the multiplier applies also to the regular `tip`"]
                #[doc = " sent with the transaction. So, not only does the transaction get a priority bump based"]
                #[doc = " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`"]
                #[doc = " transactions."]
                pub fn operational_fee_multiplier(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u8,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "TransactionPayment",
                        "OperationalFeeMultiplier",
                        [
                            141u8, 130u8, 11u8, 35u8, 226u8, 114u8, 92u8, 179u8, 168u8, 110u8,
                            28u8, 91u8, 221u8, 64u8, 4u8, 148u8, 201u8, 193u8, 185u8, 66u8, 226u8,
                            114u8, 97u8, 79u8, 62u8, 212u8, 202u8, 114u8, 237u8, 228u8, 183u8,
                            165u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod authorship {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod author {
                    use super::runtime_types;
                    pub type Author = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Author of current block."]
                pub fn author(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::author::Author,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Authorship",
                        "Author",
                        (),
                        [
                            247u8, 192u8, 118u8, 227u8, 47u8, 20u8, 203u8, 199u8, 216u8, 87u8,
                            220u8, 50u8, 166u8, 61u8, 168u8, 213u8, 253u8, 62u8, 202u8, 199u8,
                            61u8, 192u8, 237u8, 53u8, 22u8, 148u8, 164u8, 245u8, 99u8, 24u8, 146u8,
                            18u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod offences {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Events type."]
        pub type Event = runtime_types::pallet_offences::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "There is an offence reported of the given `kind` happened at the `session_index` and"]
            #[doc = "(kind-specific) time slot. This event is not deposited for duplicate slashes."]
            #[doc = "\\[kind, timeslot\\]."]
            pub struct Offence {
                pub kind: offence::Kind,
                pub timeslot: offence::Timeslot,
            }
            pub mod offence {
                use super::runtime_types;
                pub type Kind = [::core::primitive::u8; 16usize];
                pub type Timeslot =
                    ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Offence {
                const PALLET: &'static str = "Offences";
                const EVENT: &'static str = "Offence";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod reports {
                    use super::runtime_types;
                    pub type Reports = runtime_types::sp_staking::offence::OffenceDetails<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (::subxt::ext::subxt_core::utils::AccountId32, ()),
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod concurrent_reports_index {
                    use super::runtime_types;
                    pub type ConcurrentReportsIndex = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::H256,
                    >;
                    pub type Param0 = [::core::primitive::u8; 16usize];
                    pub type Param1 =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The primary structure that holds all offence records keyed by report identifiers."]
                pub fn reports_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::reports::Reports,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Offences",
                        "Reports",
                        (),
                        [
                            255u8, 234u8, 162u8, 48u8, 243u8, 210u8, 198u8, 231u8, 218u8, 142u8,
                            167u8, 10u8, 232u8, 223u8, 239u8, 55u8, 74u8, 23u8, 14u8, 236u8, 88u8,
                            231u8, 152u8, 55u8, 91u8, 120u8, 11u8, 96u8, 100u8, 113u8, 131u8,
                            173u8,
                        ],
                    )
                }
                #[doc = " The primary structure that holds all offence records keyed by report identifiers."]
                pub fn reports(
                    &self,
                    _0: types::reports::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::reports::Param0,
                    >,
                    types::reports::Reports,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Offences",
                        "Reports",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            255u8, 234u8, 162u8, 48u8, 243u8, 210u8, 198u8, 231u8, 218u8, 142u8,
                            167u8, 10u8, 232u8, 223u8, 239u8, 55u8, 74u8, 23u8, 14u8, 236u8, 88u8,
                            231u8, 152u8, 55u8, 91u8, 120u8, 11u8, 96u8, 100u8, 113u8, 131u8,
                            173u8,
                        ],
                    )
                }
                #[doc = " A vector of reports of the same kind that happened at the same time slot."]
                pub fn concurrent_reports_index_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::concurrent_reports_index::ConcurrentReportsIndex,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Offences",
                        "ConcurrentReportsIndex",
                        (),
                        [
                            170u8, 186u8, 72u8, 29u8, 251u8, 38u8, 193u8, 195u8, 109u8, 86u8, 0u8,
                            241u8, 20u8, 235u8, 108u8, 126u8, 215u8, 82u8, 73u8, 113u8, 199u8,
                            138u8, 24u8, 58u8, 216u8, 72u8, 221u8, 232u8, 252u8, 244u8, 96u8,
                            247u8,
                        ],
                    )
                }
                #[doc = " A vector of reports of the same kind that happened at the same time slot."]
                pub fn concurrent_reports_index_iter1(
                    &self,
                    _0: types::concurrent_reports_index::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::concurrent_reports_index::Param0,
                    >,
                    types::concurrent_reports_index::ConcurrentReportsIndex,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Offences",
                        "ConcurrentReportsIndex",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            170u8, 186u8, 72u8, 29u8, 251u8, 38u8, 193u8, 195u8, 109u8, 86u8, 0u8,
                            241u8, 20u8, 235u8, 108u8, 126u8, 215u8, 82u8, 73u8, 113u8, 199u8,
                            138u8, 24u8, 58u8, 216u8, 72u8, 221u8, 232u8, 252u8, 244u8, 96u8,
                            247u8,
                        ],
                    )
                }
                #[doc = " A vector of reports of the same kind that happened at the same time slot."]
                pub fn concurrent_reports_index(
                    &self,
                    _0: types::concurrent_reports_index::Param0,
                    _1: types::concurrent_reports_index::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::concurrent_reports_index::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::concurrent_reports_index::Param1,
                        >,
                    ),
                    types::concurrent_reports_index::ConcurrentReportsIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Offences",
                        "ConcurrentReportsIndex",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            170u8, 186u8, 72u8, 29u8, 251u8, 38u8, 193u8, 195u8, 109u8, 86u8, 0u8,
                            241u8, 20u8, 235u8, 108u8, 126u8, 215u8, 82u8, 73u8, 113u8, 199u8,
                            138u8, 24u8, 58u8, 216u8, 72u8, 221u8, 232u8, 252u8, 244u8, 96u8,
                            247u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod historical {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_session::historical::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The merkle root of the validators of the said session were stored"]
            pub struct RootStored {
                pub index: root_stored::Index,
            }
            pub mod root_stored {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RootStored {
                const PALLET: &'static str = "Historical";
                const EVENT: &'static str = "RootStored";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The merkle roots of up to this session index were pruned"]
            pub struct RootsPruned {
                pub up_to: roots_pruned::UpTo,
            }
            pub mod roots_pruned {
                use super::runtime_types;
                pub type UpTo = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RootsPruned {
                const PALLET: &'static str = "Historical";
                const EVENT: &'static str = "RootsPruned";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod historical_sessions {
                    use super::runtime_types;
                    pub type HistoricalSessions = (
                        ::subxt::ext::subxt_core::utils::H256,
                        ::core::primitive::u32,
                    );
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod stored_range {
                    use super::runtime_types;
                    pub type StoredRange = (::core::primitive::u32, ::core::primitive::u32);
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Mapping from historical session indices to session-data root hash and validator count."]
                pub fn historical_sessions_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::historical_sessions::HistoricalSessions,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Historical",
                        "HistoricalSessions",
                        (),
                        [
                            9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8,
                            205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8,
                            124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8,
                            117u8, 75u8,
                        ],
                    )
                }
                #[doc = " Mapping from historical session indices to session-data root hash and validator count."]
                pub fn historical_sessions(
                    &self,
                    _0: types::historical_sessions::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::historical_sessions::Param0,
                    >,
                    types::historical_sessions::HistoricalSessions,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Historical",
                        "HistoricalSessions",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8,
                            205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8,
                            124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8,
                            117u8, 75u8,
                        ],
                    )
                }
                #[doc = " The range of historical sessions we store. [first, last)"]
                pub fn stored_range(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::stored_range::StoredRange,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Historical",
                        "StoredRange",
                        (),
                        [
                            134u8, 32u8, 250u8, 13u8, 201u8, 25u8, 54u8, 243u8, 231u8, 81u8, 252u8,
                            231u8, 68u8, 217u8, 235u8, 43u8, 22u8, 223u8, 220u8, 133u8, 198u8,
                            218u8, 95u8, 152u8, 189u8, 87u8, 6u8, 228u8, 242u8, 59u8, 232u8, 59u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod session {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Error for the session pallet."]
        pub type Error = runtime_types::pallet_session::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_session::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the session key(s) of the function caller to `keys`."]
                #[doc = "Allows an account to set its session key prior to becoming a validator."]
                #[doc = "This doesn't take effect until the next session."]
                #[doc = ""]
                #[doc = "The dispatch origin of this function must be signed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"]
                #[doc = "  fixed."]
                pub struct SetKeys {
                    pub keys: set_keys::Keys,
                    pub proof: set_keys::Proof,
                }
                pub mod set_keys {
                    use super::runtime_types;
                    pub type Keys = runtime_types::rococo_runtime::SessionKeys;
                    pub type Proof =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetKeys {
                    const PALLET: &'static str = "Session";
                    const CALL: &'static str = "set_keys";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Removes any session key(s) of the function caller."]
                #[doc = ""]
                #[doc = "This doesn't take effect until the next session."]
                #[doc = ""]
                #[doc = "The dispatch origin of this function must be Signed and the account must be either be"]
                #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"]
                #[doc = "means being a controller account) or directly convertible into a validator ID (which"]
                #[doc = "usually means being a stash account)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"]
                #[doc = "  `T::Keys::key_ids()` which is fixed."]
                pub struct PurgeKeys;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PurgeKeys {
                    const PALLET: &'static str = "Session";
                    const CALL: &'static str = "purge_keys";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Sets the session key(s) of the function caller to `keys`."]
                #[doc = "Allows an account to set its session key prior to becoming a validator."]
                #[doc = "This doesn't take effect until the next session."]
                #[doc = ""]
                #[doc = "The dispatch origin of this function must be signed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"]
                #[doc = "  fixed."]
                pub fn set_keys(
                    &self,
                    keys: types::set_keys::Keys,
                    proof: types::set_keys::Proof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetKeys>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Session",
                        "set_keys",
                        types::SetKeys { keys, proof },
                        [
                            251u8, 79u8, 44u8, 78u8, 55u8, 160u8, 150u8, 159u8, 183u8, 86u8, 129u8,
                            32u8, 250u8, 138u8, 223u8, 100u8, 40u8, 203u8, 116u8, 224u8, 244u8,
                            142u8, 7u8, 154u8, 147u8, 97u8, 160u8, 162u8, 95u8, 5u8, 213u8, 246u8,
                        ],
                    )
                }
                #[doc = "Removes any session key(s) of the function caller."]
                #[doc = ""]
                #[doc = "This doesn't take effect until the next session."]
                #[doc = ""]
                #[doc = "The dispatch origin of this function must be Signed and the account must be either be"]
                #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"]
                #[doc = "means being a controller account) or directly convertible into a validator ID (which"]
                #[doc = "usually means being a stash account)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"]
                #[doc = "  `T::Keys::key_ids()` which is fixed."]
                pub fn purge_keys(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PurgeKeys>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Session",
                        "purge_keys",
                        types::PurgeKeys {},
                        [
                            215u8, 204u8, 146u8, 236u8, 32u8, 78u8, 198u8, 79u8, 85u8, 214u8, 15u8,
                            151u8, 158u8, 31u8, 146u8, 119u8, 119u8, 204u8, 151u8, 169u8, 226u8,
                            67u8, 217u8, 39u8, 241u8, 245u8, 203u8, 240u8, 203u8, 172u8, 16u8,
                            209u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_session::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "New session has happened. Note that the argument is the session index, not the"]
            #[doc = "block number as the type might suggest."]
            pub struct NewSession {
                pub session_index: new_session::SessionIndex,
            }
            pub mod new_session {
                use super::runtime_types;
                pub type SessionIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewSession {
                const PALLET: &'static str = "Session";
                const EVENT: &'static str = "NewSession";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The `NewSession` event in the current block also implies a new validator set to be"]
            #[doc = "queued."]
            pub struct NewQueued;
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewQueued {
                const PALLET: &'static str = "Session";
                const EVENT: &'static str = "NewQueued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Validator has been disabled."]
            pub struct ValidatorDisabled {
                pub validator: validator_disabled::Validator,
            }
            pub mod validator_disabled {
                use super::runtime_types;
                pub type Validator = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ValidatorDisabled {
                const PALLET: &'static str = "Session";
                const EVENT: &'static str = "ValidatorDisabled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Validator has been re-enabled."]
            pub struct ValidatorReenabled {
                pub validator: validator_reenabled::Validator,
            }
            pub mod validator_reenabled {
                use super::runtime_types;
                pub type Validator = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ValidatorReenabled {
                const PALLET: &'static str = "Session";
                const EVENT: &'static str = "ValidatorReenabled";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod validators {
                    use super::runtime_types;
                    pub type Validators = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                pub mod current_index {
                    use super::runtime_types;
                    pub type CurrentIndex = ::core::primitive::u32;
                }
                pub mod queued_changed {
                    use super::runtime_types;
                    pub type QueuedChanged = ::core::primitive::bool;
                }
                pub mod queued_keys {
                    use super::runtime_types;
                    pub type QueuedKeys = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::rococo_runtime::SessionKeys,
                    )>;
                }
                pub mod disabled_validators {
                    use super::runtime_types;
                    pub type DisabledValidators = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::core::primitive::u32,
                        runtime_types::sp_staking::offence::OffenceSeverity,
                    )>;
                }
                pub mod next_keys {
                    use super::runtime_types;
                    pub type NextKeys = runtime_types::rococo_runtime::SessionKeys;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod key_owner {
                    use super::runtime_types;
                    pub type KeyOwner = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param0 = (
                        runtime_types::sp_core::crypto::KeyTypeId,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    );
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The current set of validators."]
                pub fn validators(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validators::Validators,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "Validators",
                        (),
                        [
                            50u8, 86u8, 154u8, 222u8, 249u8, 209u8, 156u8, 22u8, 155u8, 25u8,
                            133u8, 194u8, 210u8, 50u8, 38u8, 28u8, 139u8, 201u8, 90u8, 139u8,
                            115u8, 12u8, 12u8, 141u8, 4u8, 178u8, 201u8, 241u8, 223u8, 234u8, 6u8,
                            86u8,
                        ],
                    )
                }
                #[doc = " Current index of the session."]
                pub fn current_index(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_index::CurrentIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "CurrentIndex",
                        (),
                        [
                            167u8, 151u8, 125u8, 150u8, 159u8, 21u8, 78u8, 217u8, 237u8, 183u8,
                            135u8, 65u8, 187u8, 114u8, 188u8, 206u8, 16u8, 32u8, 69u8, 208u8,
                            134u8, 159u8, 232u8, 224u8, 243u8, 27u8, 31u8, 166u8, 145u8, 44u8,
                            221u8, 230u8,
                        ],
                    )
                }
                #[doc = " True if the underlying economic identities or weighting behind the validators"]
                #[doc = " has changed in the queued validator set."]
                pub fn queued_changed(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queued_changed::QueuedChanged,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "QueuedChanged",
                        (),
                        [
                            184u8, 137u8, 224u8, 137u8, 31u8, 236u8, 95u8, 164u8, 102u8, 225u8,
                            198u8, 227u8, 140u8, 37u8, 113u8, 57u8, 59u8, 4u8, 202u8, 102u8, 117u8,
                            36u8, 226u8, 64u8, 113u8, 141u8, 199u8, 111u8, 99u8, 144u8, 198u8,
                            153u8,
                        ],
                    )
                }
                #[doc = " The queued keys for the next session. When the next session begins, these keys"]
                #[doc = " will be used to determine the validator's session keys."]
                pub fn queued_keys(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queued_keys::QueuedKeys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "QueuedKeys",
                        (),
                        [
                            54u8, 232u8, 4u8, 80u8, 89u8, 214u8, 20u8, 219u8, 48u8, 108u8, 26u8,
                            89u8, 170u8, 210u8, 66u8, 37u8, 12u8, 60u8, 148u8, 186u8, 241u8, 64u8,
                            83u8, 37u8, 124u8, 217u8, 51u8, 120u8, 148u8, 205u8, 85u8, 48u8,
                        ],
                    )
                }
                #[doc = " Indices of disabled validators."]
                #[doc = ""]
                #[doc = " The vec is always kept sorted so that we can find whether a given validator is"]
                #[doc = " disabled using binary search. It gets cleared when `on_session_ending` returns"]
                #[doc = " a new set of identities."]
                pub fn disabled_validators(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::disabled_validators::DisabledValidators,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "DisabledValidators",
                        (),
                        [
                            214u8, 48u8, 28u8, 150u8, 143u8, 29u8, 183u8, 40u8, 236u8, 227u8,
                            195u8, 5u8, 202u8, 54u8, 184u8, 26u8, 239u8, 237u8, 113u8, 39u8, 200u8,
                            111u8, 163u8, 3u8, 24u8, 101u8, 107u8, 91u8, 228u8, 135u8, 12u8, 86u8,
                        ],
                    )
                }
                #[doc = " The next session keys for a validator."]
                pub fn next_keys_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_keys::NextKeys,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "NextKeys",
                        (),
                        [
                            123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8,
                            99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8,
                            99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8,
                        ],
                    )
                }
                #[doc = " The next session keys for a validator."]
                pub fn next_keys(
                    &self,
                    _0: types::next_keys::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::next_keys::Param0,
                    >,
                    types::next_keys::NextKeys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "NextKeys",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8,
                            99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8,
                            99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8,
                        ],
                    )
                }
                #[doc = " The owner of a key. The key is the `KeyTypeId` + the encoded key."]
                pub fn key_owner_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::key_owner::KeyOwner,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "KeyOwner",
                        (),
                        [
                            217u8, 204u8, 21u8, 114u8, 247u8, 129u8, 32u8, 242u8, 93u8, 91u8,
                            253u8, 253u8, 248u8, 90u8, 12u8, 202u8, 195u8, 25u8, 18u8, 100u8,
                            253u8, 109u8, 88u8, 77u8, 217u8, 140u8, 51u8, 40u8, 118u8, 35u8, 107u8,
                            206u8,
                        ],
                    )
                }
                #[doc = " The owner of a key. The key is the `KeyTypeId` + the encoded key."]
                pub fn key_owner(
                    &self,
                    _0: types::key_owner::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::key_owner::Param0,
                    >,
                    types::key_owner::KeyOwner,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Session",
                        "KeyOwner",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            217u8, 204u8, 21u8, 114u8, 247u8, 129u8, 32u8, 242u8, 93u8, 91u8,
                            253u8, 253u8, 248u8, 90u8, 12u8, 202u8, 195u8, 25u8, 18u8, 100u8,
                            253u8, 109u8, 88u8, 77u8, 217u8, 140u8, 51u8, 40u8, 118u8, 35u8, 107u8,
                            206u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The amount to be held when setting keys."]
                pub fn key_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Session",
                        "KeyDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod grandpa {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_grandpa::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_grandpa::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                pub struct ReportEquivocation {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_equivocation::EquivocationProof,
                    >,
                    pub key_owner_proof: report_equivocation::KeyOwnerProof,
                }
                pub mod report_equivocation {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_grandpa::EquivocationProof<
                            ::subxt::ext::subxt_core::utils::H256,
                            ::core::primitive::u32,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation {
                    const PALLET: &'static str = "Grandpa";
                    const CALL: &'static str = "report_equivocation";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub struct ReportEquivocationUnsigned {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_equivocation_unsigned::EquivocationProof,
                    >,
                    pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof,
                }
                pub mod report_equivocation_unsigned {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_grandpa::EquivocationProof<
                            ::subxt::ext::subxt_core::utils::H256,
                            ::core::primitive::u32,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned {
                    const PALLET: &'static str = "Grandpa";
                    const CALL: &'static str = "report_equivocation_unsigned";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."]
                #[doc = ""]
                #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"]
                #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"]
                #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."]
                #[doc = "The block production rate (which may be slowed down because of finality lagging) should"]
                #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"]
                #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"]
                #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"]
                #[doc = "block of all validators of the new authority set."]
                #[doc = ""]
                #[doc = "Only callable by root."]
                pub struct NoteStalled {
                    pub delay: note_stalled::Delay,
                    pub best_finalized_block_number: note_stalled::BestFinalizedBlockNumber,
                }
                pub mod note_stalled {
                    use super::runtime_types;
                    pub type Delay = ::core::primitive::u32;
                    pub type BestFinalizedBlockNumber = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for NoteStalled {
                    const PALLET: &'static str = "Grandpa";
                    const CALL: &'static str = "note_stalled";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                pub fn report_equivocation(
                    &self,
                    equivocation_proof: types::report_equivocation::EquivocationProof,
                    key_owner_proof: types::report_equivocation::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReportEquivocation>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Grandpa",
                        "report_equivocation",
                        types::ReportEquivocation {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            197u8, 206u8, 246u8, 26u8, 171u8, 25u8, 214u8, 211u8, 138u8, 132u8,
                            148u8, 48u8, 66u8, 12u8, 92u8, 17u8, 190u8, 155u8, 121u8, 222u8, 226u8,
                            171u8, 208u8, 123u8, 253u8, 247u8, 253u8, 191u8, 90u8, 4u8, 224u8,
                            104u8,
                        ],
                    )
                }
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub fn report_equivocation_unsigned(
                    &self,
                    equivocation_proof: types::report_equivocation_unsigned::EquivocationProof,
                    key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportEquivocationUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Grandpa",
                        "report_equivocation_unsigned",
                        types::ReportEquivocationUnsigned {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            109u8, 97u8, 251u8, 184u8, 77u8, 61u8, 95u8, 187u8, 132u8, 146u8, 18u8,
                            105u8, 109u8, 124u8, 181u8, 74u8, 143u8, 171u8, 248u8, 188u8, 69u8,
                            63u8, 65u8, 92u8, 64u8, 42u8, 104u8, 131u8, 67u8, 202u8, 172u8, 73u8,
                        ],
                    )
                }
                #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."]
                #[doc = ""]
                #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"]
                #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"]
                #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."]
                #[doc = "The block production rate (which may be slowed down because of finality lagging) should"]
                #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"]
                #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"]
                #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"]
                #[doc = "block of all validators of the new authority set."]
                #[doc = ""]
                #[doc = "Only callable by root."]
                pub fn note_stalled(
                    &self,
                    delay: types::note_stalled::Delay,
                    best_finalized_block_number: types::note_stalled::BestFinalizedBlockNumber,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::NoteStalled>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Grandpa",
                        "note_stalled",
                        types::NoteStalled {
                            delay,
                            best_finalized_block_number,
                        },
                        [
                            158u8, 25u8, 64u8, 114u8, 131u8, 139u8, 227u8, 132u8, 42u8, 107u8,
                            40u8, 249u8, 18u8, 93u8, 254u8, 86u8, 37u8, 67u8, 250u8, 35u8, 241u8,
                            194u8, 209u8, 20u8, 39u8, 75u8, 186u8, 21u8, 48u8, 124u8, 151u8, 31u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_grandpa::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "New authority set has been applied."]
            pub struct NewAuthorities {
                pub authority_set: new_authorities::AuthoritySet,
            }
            pub mod new_authorities {
                use super::runtime_types;
                pub type AuthoritySet = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                    runtime_types::sp_consensus_grandpa::app::Public,
                    ::core::primitive::u64,
                )>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewAuthorities {
                const PALLET: &'static str = "Grandpa";
                const EVENT: &'static str = "NewAuthorities";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Current authority set has been paused."]
            pub struct Paused;
            impl ::subxt::ext::subxt_core::events::StaticEvent for Paused {
                const PALLET: &'static str = "Grandpa";
                const EVENT: &'static str = "Paused";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Current authority set has been resumed."]
            pub struct Resumed;
            impl ::subxt::ext::subxt_core::events::StaticEvent for Resumed {
                const PALLET: &'static str = "Grandpa";
                const EVENT: &'static str = "Resumed";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod state {
                    use super::runtime_types;
                    pub type State =
                        runtime_types::pallet_grandpa::StoredState<::core::primitive::u32>;
                }
                pub mod pending_change {
                    use super::runtime_types;
                    pub type PendingChange =
                        runtime_types::pallet_grandpa::StoredPendingChange<::core::primitive::u32>;
                }
                pub mod next_forced {
                    use super::runtime_types;
                    pub type NextForced = ::core::primitive::u32;
                }
                pub mod stalled {
                    use super::runtime_types;
                    pub type Stalled = (::core::primitive::u32, ::core::primitive::u32);
                }
                pub mod current_set_id {
                    use super::runtime_types;
                    pub type CurrentSetId = ::core::primitive::u64;
                }
                pub mod set_id_session {
                    use super::runtime_types;
                    pub type SetIdSession = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u64;
                }
                pub mod authorities {
                    use super::runtime_types;
                    pub type Authorities =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<(
                            runtime_types::sp_consensus_grandpa::app::Public,
                            ::core::primitive::u64,
                        )>;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " State of the current authority set."]
                pub fn state(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::state::State,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "State",
                        (),
                        [
                            73u8, 71u8, 112u8, 83u8, 238u8, 75u8, 44u8, 9u8, 180u8, 33u8, 30u8,
                            121u8, 98u8, 96u8, 61u8, 133u8, 16u8, 70u8, 30u8, 249u8, 34u8, 148u8,
                            15u8, 239u8, 164u8, 157u8, 52u8, 27u8, 144u8, 52u8, 223u8, 109u8,
                        ],
                    )
                }
                #[doc = " Pending change: (signaled at, scheduled change)."]
                pub fn pending_change(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pending_change::PendingChange,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "PendingChange",
                        (),
                        [
                            32u8, 165u8, 141u8, 100u8, 109u8, 66u8, 58u8, 22u8, 118u8, 84u8, 92u8,
                            164u8, 119u8, 130u8, 104u8, 25u8, 244u8, 111u8, 223u8, 54u8, 184u8,
                            95u8, 196u8, 30u8, 244u8, 129u8, 110u8, 127u8, 200u8, 66u8, 226u8,
                            26u8,
                        ],
                    )
                }
                #[doc = " next block number where we can force a change."]
                pub fn next_forced(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_forced::NextForced,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "NextForced",
                        (),
                        [
                            3u8, 231u8, 56u8, 18u8, 87u8, 112u8, 227u8, 126u8, 180u8, 131u8, 255u8,
                            141u8, 82u8, 34u8, 61u8, 47u8, 234u8, 37u8, 95u8, 62u8, 33u8, 235u8,
                            231u8, 122u8, 125u8, 8u8, 223u8, 95u8, 255u8, 204u8, 40u8, 97u8,
                        ],
                    )
                }
                #[doc = " `true` if we are currently stalled."]
                pub fn stalled(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::stalled::Stalled,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "Stalled",
                        (),
                        [
                            6u8, 81u8, 205u8, 142u8, 195u8, 48u8, 0u8, 247u8, 108u8, 170u8, 10u8,
                            249u8, 72u8, 206u8, 32u8, 103u8, 109u8, 57u8, 51u8, 21u8, 144u8, 204u8,
                            79u8, 8u8, 191u8, 185u8, 38u8, 34u8, 118u8, 223u8, 75u8, 241u8,
                        ],
                    )
                }
                #[doc = " The number of changes (both in terms of keys and underlying economic responsibilities)"]
                #[doc = " in the \"set\" of Grandpa validators from genesis."]
                pub fn current_set_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_set_id::CurrentSetId,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "CurrentSetId",
                        (),
                        [
                            234u8, 215u8, 218u8, 42u8, 30u8, 76u8, 129u8, 40u8, 125u8, 137u8,
                            207u8, 47u8, 46u8, 213u8, 159u8, 50u8, 175u8, 81u8, 155u8, 123u8,
                            246u8, 175u8, 156u8, 68u8, 22u8, 113u8, 135u8, 137u8, 163u8, 18u8,
                            115u8, 73u8,
                        ],
                    )
                }
                #[doc = " A mapping from grandpa set ID to the index of the *most recent* session for which its"]
                #[doc = " members were responsible."]
                #[doc = ""]
                #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"]
                #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"]
                #[doc = " together sessions and GRANDPA set ids, i.e. we need to validate that a validator"]
                #[doc = " was the owner of a given key on a given session, and what the active set ID was"]
                #[doc = " during that session."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: `SetId` is not under user control."]
                pub fn set_id_session_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::set_id_session::SetIdSession,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "SetIdSession",
                        (),
                        [
                            47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8,
                            65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8,
                            238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8,
                        ],
                    )
                }
                #[doc = " A mapping from grandpa set ID to the index of the *most recent* session for which its"]
                #[doc = " members were responsible."]
                #[doc = ""]
                #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"]
                #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"]
                #[doc = " together sessions and GRANDPA set ids, i.e. we need to validate that a validator"]
                #[doc = " was the owner of a given key on a given session, and what the active set ID was"]
                #[doc = " during that session."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: `SetId` is not under user control."]
                pub fn set_id_session(
                    &self,
                    _0: types::set_id_session::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::set_id_session::Param0,
                    >,
                    types::set_id_session::SetIdSession,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "SetIdSession",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8,
                            65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8,
                            238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8,
                        ],
                    )
                }
                #[doc = " The current list of authorities."]
                pub fn authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorities::Authorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Grandpa",
                        "Authorities",
                        (),
                        [
                            192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8,
                            247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8,
                            104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8,
                            134u8, 44u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " Max Authorities in use"]
                pub fn max_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Grandpa",
                        "MaxAuthorities",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of nominators for each validator."]
                pub fn max_nominators(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Grandpa",
                        "MaxNominators",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of entries to keep in the set id to session index mapping."]
                #[doc = ""]
                #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"]
                #[doc = " value should relate to the bonding duration of whatever staking system is"]
                #[doc = " being used (if any). If equivocation handling is not enabled then this value"]
                #[doc = " can be zero."]
                pub fn max_set_id_session_entries(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Grandpa",
                        "MaxSetIdSessionEntries",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod authority_discovery {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod keys {
                    use super::runtime_types;
                    pub type Keys =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<
                            runtime_types::sp_authority_discovery::app::Public,
                        >;
                }
                pub mod next_keys {
                    use super::runtime_types;
                    pub type NextKeys =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<
                            runtime_types::sp_authority_discovery::app::Public,
                        >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Keys of the current authority set."]
                pub fn keys(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::keys::Keys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AuthorityDiscovery",
                        "Keys",
                        (),
                        [
                            35u8, 71u8, 73u8, 255u8, 160u8, 250u8, 38u8, 205u8, 32u8, 139u8, 236u8,
                            83u8, 194u8, 12u8, 20u8, 221u8, 114u8, 94u8, 196u8, 246u8, 136u8,
                            175u8, 70u8, 98u8, 91u8, 50u8, 236u8, 131u8, 131u8, 146u8, 150u8,
                            192u8,
                        ],
                    )
                }
                #[doc = " Keys of the next authority set."]
                pub fn next_keys(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_keys::NextKeys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AuthorityDiscovery",
                        "NextKeys",
                        (),
                        [
                            54u8, 44u8, 61u8, 196u8, 2u8, 249u8, 185u8, 199u8, 245u8, 154u8, 178u8,
                            109u8, 237u8, 147u8, 72u8, 209u8, 72u8, 196u8, 31u8, 192u8, 217u8,
                            231u8, 71u8, 28u8, 148u8, 138u8, 29u8, 115u8, 247u8, 95u8, 185u8,
                            189u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod treasury {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Error for the treasury pallet."]
        pub type Error = runtime_types::pallet_treasury::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_treasury::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose and approve a spend of treasury funds."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."]
                #[doc = ""]
                #[doc = "### Details"]
                #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"]
                #[doc = "beneficiary."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                #[doc = "- `beneficiary`: The destination account for the transfer."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::SpendApproved`] if successful."]
                pub struct SpendLocal {
                    #[codec(compact)]
                    pub amount: spend_local::Amount,
                    pub beneficiary: spend_local::Beneficiary,
                }
                pub mod spend_local {
                    use super::runtime_types;
                    pub type Amount = ::core::primitive::u128;
                    pub type Beneficiary = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SpendLocal {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "spend_local";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force a previously approved proposal to be removed from the approval queue."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::RejectOrigin`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "The original deposit will no longer be returned."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `proposal_id`: The index of a proposal"]
                #[doc = ""]
                #[doc = "### Complexity"]
                #[doc = "- O(A) where `A` is the number of approvals"]
                #[doc = ""]
                #[doc = "### Errors"]
                #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"]
                #[doc = "  approval queue, i.e., the proposal has not been approved. This could also mean the"]
                #[doc = "  proposal does not exist altogether, thus there is no way it would have been approved"]
                #[doc = "  in the first place."]
                pub struct RemoveApproval {
                    #[codec(compact)]
                    pub proposal_id: remove_approval::ProposalId,
                }
                pub mod remove_approval {
                    use super::runtime_types;
                    pub type ProposalId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveApproval {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "remove_approval";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose and approve a spend of treasury funds."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"]
                #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"]
                #[doc = "for assertion using the [`Config::BalanceConverter`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"]
                #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"]
                #[doc = "the [`Config::PayoutPeriod`]."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."]
                #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                #[doc = "- `beneficiary`: The beneficiary of the spend."]
                #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"]
                #[doc = "  the past if the resulting spend has not yet expired according to the"]
                #[doc = "  [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"]
                #[doc = "  approval."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::AssetSpendApproved`] if successful."]
                pub struct Spend {
                    pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<spend::AssetKind>,
                    #[codec(compact)]
                    pub amount: spend::Amount,
                    pub beneficiary:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<spend::Beneficiary>,
                    pub valid_from: spend::ValidFrom,
                }
                pub mod spend {
                    use super::runtime_types;
                    pub type AssetKind =
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                    pub type Amount = ::core::primitive::u128;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type ValidFrom = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Spend {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "spend";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Claim a spend."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be signed"]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"]
                #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."]
                #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"]
                #[doc = "dispatchable before retrying with the current function."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::Paid`] if successful."]
                pub struct Payout {
                    pub index: payout::Index,
                }
                pub mod payout {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Payout {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "payout";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Check the status of the spend and remove it from the storage if processed."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be signed."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "The status check is a prerequisite for retrying a failed payout."]
                #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"]
                #[doc = "function. In such instances, transaction fees are refunded."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."]
                #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."]
                pub struct CheckStatus {
                    pub index: check_status::Index,
                }
                pub mod check_status {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CheckStatus {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "check_status";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Void previously approved spend."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::RejectOrigin`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "A spend void is only possible if the payout has not been attempted yet."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::AssetSpendVoided`] if successful."]
                pub struct VoidSpend {
                    pub index: void_spend::Index,
                }
                pub mod void_spend {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for VoidSpend {
                    const PALLET: &'static str = "Treasury";
                    const CALL: &'static str = "void_spend";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Propose and approve a spend of treasury funds."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."]
                #[doc = ""]
                #[doc = "### Details"]
                #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"]
                #[doc = "beneficiary."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                #[doc = "- `beneficiary`: The destination account for the transfer."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::SpendApproved`] if successful."]
                pub fn spend_local(
                    &self,
                    amount: types::spend_local::Amount,
                    beneficiary: types::spend_local::Beneficiary,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SpendLocal>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "spend_local",
                        types::SpendLocal {
                            amount,
                            beneficiary,
                        },
                        [
                            137u8, 171u8, 83u8, 247u8, 245u8, 212u8, 152u8, 127u8, 210u8, 71u8,
                            254u8, 134u8, 189u8, 26u8, 249u8, 41u8, 214u8, 175u8, 24u8, 64u8, 33u8,
                            90u8, 23u8, 134u8, 44u8, 110u8, 63u8, 46u8, 46u8, 146u8, 222u8, 79u8,
                        ],
                    )
                }
                #[doc = "Force a previously approved proposal to be removed from the approval queue."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::RejectOrigin`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "The original deposit will no longer be returned."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `proposal_id`: The index of a proposal"]
                #[doc = ""]
                #[doc = "### Complexity"]
                #[doc = "- O(A) where `A` is the number of approvals"]
                #[doc = ""]
                #[doc = "### Errors"]
                #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"]
                #[doc = "  approval queue, i.e., the proposal has not been approved. This could also mean the"]
                #[doc = "  proposal does not exist altogether, thus there is no way it would have been approved"]
                #[doc = "  in the first place."]
                pub fn remove_approval(
                    &self,
                    proposal_id: types::remove_approval::ProposalId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveApproval>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "remove_approval",
                        types::RemoveApproval { proposal_id },
                        [
                            180u8, 20u8, 39u8, 227u8, 29u8, 228u8, 234u8, 36u8, 155u8, 114u8,
                            197u8, 135u8, 185u8, 31u8, 56u8, 247u8, 224u8, 168u8, 254u8, 233u8,
                            250u8, 134u8, 186u8, 155u8, 108u8, 84u8, 94u8, 226u8, 207u8, 130u8,
                            196u8, 100u8,
                        ],
                    )
                }
                #[doc = "Propose and approve a spend of treasury funds."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"]
                #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"]
                #[doc = "for assertion using the [`Config::BalanceConverter`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"]
                #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"]
                #[doc = "the [`Config::PayoutPeriod`]."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."]
                #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                #[doc = "- `beneficiary`: The beneficiary of the spend."]
                #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"]
                #[doc = "  the past if the resulting spend has not yet expired according to the"]
                #[doc = "  [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"]
                #[doc = "  approval."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::AssetSpendApproved`] if successful."]
                pub fn spend(
                    &self,
                    asset_kind: types::spend::AssetKind,
                    amount: types::spend::Amount,
                    beneficiary: types::spend::Beneficiary,
                    valid_from: types::spend::ValidFrom,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Spend>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "spend",
                        types::Spend {
                            asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                asset_kind,
                            ),
                            amount,
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            valid_from,
                        },
                        [
                            137u8, 73u8, 150u8, 96u8, 128u8, 170u8, 125u8, 117u8, 152u8, 83u8,
                            169u8, 159u8, 126u8, 173u8, 62u8, 236u8, 156u8, 244u8, 70u8, 123u8,
                            18u8, 104u8, 120u8, 8u8, 39u8, 51u8, 98u8, 241u8, 132u8, 145u8, 69u8,
                            250u8,
                        ],
                    )
                }
                #[doc = "Claim a spend."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be signed"]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"]
                #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."]
                #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"]
                #[doc = "dispatchable before retrying with the current function."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::Paid`] if successful."]
                pub fn payout(
                    &self,
                    index: types::payout::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Payout>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "payout",
                        types::Payout { index },
                        [
                            179u8, 254u8, 82u8, 94u8, 248u8, 26u8, 6u8, 34u8, 93u8, 244u8, 186u8,
                            199u8, 163u8, 32u8, 110u8, 220u8, 78u8, 11u8, 168u8, 182u8, 169u8,
                            56u8, 53u8, 194u8, 168u8, 218u8, 131u8, 38u8, 46u8, 156u8, 93u8, 234u8,
                        ],
                    )
                }
                #[doc = "Check the status of the spend and remove it from the storage if processed."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be signed."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "The status check is a prerequisite for retrying a failed payout."]
                #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"]
                #[doc = "function. In such instances, transaction fees are refunded."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."]
                #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."]
                pub fn check_status(
                    &self,
                    index: types::check_status::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CheckStatus>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "check_status",
                        types::CheckStatus { index },
                        [
                            164u8, 111u8, 10u8, 11u8, 104u8, 237u8, 112u8, 240u8, 104u8, 130u8,
                            179u8, 221u8, 54u8, 18u8, 8u8, 172u8, 148u8, 245u8, 110u8, 174u8, 75u8,
                            38u8, 46u8, 143u8, 101u8, 232u8, 65u8, 252u8, 36u8, 152u8, 29u8, 209u8,
                        ],
                    )
                }
                #[doc = "Void previously approved spend."]
                #[doc = ""]
                #[doc = "## Dispatch Origin"]
                #[doc = ""]
                #[doc = "Must be [`Config::RejectOrigin`]."]
                #[doc = ""]
                #[doc = "## Details"]
                #[doc = ""]
                #[doc = "A spend void is only possible if the payout has not been attempted yet."]
                #[doc = ""]
                #[doc = "### Parameters"]
                #[doc = "- `index`: The spend index."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = ""]
                #[doc = "Emits [`Event::AssetSpendVoided`] if successful."]
                pub fn void_spend(
                    &self,
                    index: types::void_spend::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::VoidSpend>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Treasury",
                        "void_spend",
                        types::VoidSpend { index },
                        [
                            9u8, 212u8, 174u8, 92u8, 43u8, 102u8, 224u8, 124u8, 247u8, 239u8,
                            196u8, 68u8, 132u8, 171u8, 116u8, 206u8, 52u8, 23u8, 92u8, 31u8, 156u8,
                            160u8, 25u8, 16u8, 125u8, 60u8, 9u8, 109u8, 145u8, 139u8, 102u8, 224u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_treasury::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "We have ended a spend period and will now allocate funds."]
            pub struct Spending {
                pub budget_remaining: spending::BudgetRemaining,
            }
            pub mod spending {
                use super::runtime_types;
                pub type BudgetRemaining = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Spending {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Spending";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some funds have been allocated."]
            pub struct Awarded {
                pub proposal_index: awarded::ProposalIndex,
                pub award: awarded::Award,
                pub account: awarded::Account,
            }
            pub mod awarded {
                use super::runtime_types;
                pub type ProposalIndex = ::core::primitive::u32;
                pub type Award = ::core::primitive::u128;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Awarded {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Awarded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some of our funds have been burnt."]
            pub struct Burnt {
                pub burnt_funds: burnt::BurntFunds,
            }
            pub mod burnt {
                use super::runtime_types;
                pub type BurntFunds = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Burnt {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Burnt";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Spending has finished; this is the amount that rolls over until next spend."]
            pub struct Rollover {
                pub rollover_balance: rollover::RolloverBalance,
            }
            pub mod rollover {
                use super::runtime_types;
                pub type RolloverBalance = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Rollover {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Rollover";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some funds have been deposited."]
            pub struct Deposit {
                pub value: deposit::Value,
            }
            pub mod deposit {
                use super::runtime_types;
                pub type Value = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Deposit {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Deposit";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new spend proposal has been approved."]
            pub struct SpendApproved {
                pub proposal_index: spend_approved::ProposalIndex,
                pub amount: spend_approved::Amount,
                pub beneficiary: spend_approved::Beneficiary,
            }
            pub mod spend_approved {
                use super::runtime_types;
                pub type ProposalIndex = ::core::primitive::u32;
                pub type Amount = ::core::primitive::u128;
                pub type Beneficiary = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SpendApproved {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "SpendApproved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The inactive funds of the pallet have been updated."]
            pub struct UpdatedInactive {
                pub reactivated: updated_inactive::Reactivated,
                pub deactivated: updated_inactive::Deactivated,
            }
            pub mod updated_inactive {
                use super::runtime_types;
                pub type Reactivated = ::core::primitive::u128;
                pub type Deactivated = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpdatedInactive {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "UpdatedInactive";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new asset spend proposal has been approved."]
            pub struct AssetSpendApproved {
                pub index: asset_spend_approved::Index,
                pub asset_kind: asset_spend_approved::AssetKind,
                pub amount: asset_spend_approved::Amount,
                pub beneficiary: asset_spend_approved::Beneficiary,
                pub valid_from: asset_spend_approved::ValidFrom,
                pub expire_at: asset_spend_approved::ExpireAt,
            }
            pub mod asset_spend_approved {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type AssetKind =
                    runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                pub type Amount = ::core::primitive::u128;
                pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                pub type ValidFrom = ::core::primitive::u32;
                pub type ExpireAt = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetSpendApproved {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "AssetSpendApproved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An approved spend was voided."]
            pub struct AssetSpendVoided {
                pub index: asset_spend_voided::Index,
            }
            pub mod asset_spend_voided {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetSpendVoided {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "AssetSpendVoided";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A payment happened."]
            pub struct Paid {
                pub index: paid::Index,
                pub payment_id: paid::PaymentId,
            }
            pub mod paid {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type PaymentId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Paid {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "Paid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A payment failed and can be retried."]
            pub struct PaymentFailed {
                pub index: payment_failed::Index,
                pub payment_id: payment_failed::PaymentId,
            }
            pub mod payment_failed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type PaymentId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PaymentFailed {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "PaymentFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A spend was processed and removed from the storage. It might have been successfully"]
            #[doc = "paid or it may have expired."]
            pub struct SpendProcessed {
                pub index: spend_processed::Index,
            }
            pub mod spend_processed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SpendProcessed {
                const PALLET: &'static str = "Treasury";
                const EVENT: &'static str = "SpendProcessed";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod proposal_count {
                    use super::runtime_types;
                    pub type ProposalCount = ::core::primitive::u32;
                }
                pub mod proposals {
                    use super::runtime_types;
                    pub type Proposals = runtime_types::pallet_treasury::Proposal<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod deactivated {
                    use super::runtime_types;
                    pub type Deactivated = ::core::primitive::u128;
                }
                pub mod approvals {
                    use super::runtime_types;
                    pub type Approvals =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u32,
                        >;
                }
                pub mod spend_count {
                    use super::runtime_types;
                    pub type SpendCount = ::core::primitive::u32;
                }
                pub mod spends {
                    use super::runtime_types;
                    pub type Spends = runtime_types::pallet_treasury::SpendStatus<
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        ::core::primitive::u128,
                        runtime_types::xcm::VersionedLocation,
                        ::core::primitive::u32,
                        ::core::primitive::u64,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod last_spend_period {
                    use super::runtime_types;
                    pub type LastSpendPeriod = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."]
                #[doc = " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`."]
                #[doc = ""]
                #[doc = " Number of proposals that have been made."]
                pub fn proposal_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::proposal_count::ProposalCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "ProposalCount",
                        (),
                        [
                            91u8, 238u8, 246u8, 106u8, 95u8, 66u8, 83u8, 134u8, 1u8, 225u8, 164u8,
                            216u8, 113u8, 101u8, 203u8, 200u8, 113u8, 97u8, 246u8, 228u8, 140u8,
                            29u8, 29u8, 48u8, 176u8, 137u8, 93u8, 230u8, 56u8, 75u8, 51u8, 149u8,
                        ],
                    )
                }
                #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."]
                #[doc = " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`."]
                #[doc = ""]
                #[doc = " Proposals that have been made."]
                pub fn proposals_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::proposals::Proposals,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Proposals",
                        (),
                        [
                            207u8, 135u8, 145u8, 146u8, 48u8, 10u8, 252u8, 40u8, 20u8, 115u8,
                            205u8, 41u8, 173u8, 83u8, 115u8, 46u8, 106u8, 40u8, 130u8, 157u8,
                            213u8, 87u8, 45u8, 23u8, 14u8, 167u8, 99u8, 208u8, 153u8, 163u8, 141u8,
                            55u8,
                        ],
                    )
                }
                #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."]
                #[doc = " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`."]
                #[doc = ""]
                #[doc = " Proposals that have been made."]
                pub fn proposals(
                    &self,
                    _0: types::proposals::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::proposals::Param0,
                    >,
                    types::proposals::Proposals,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Proposals",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            207u8, 135u8, 145u8, 146u8, 48u8, 10u8, 252u8, 40u8, 20u8, 115u8,
                            205u8, 41u8, 173u8, 83u8, 115u8, 46u8, 106u8, 40u8, 130u8, 157u8,
                            213u8, 87u8, 45u8, 23u8, 14u8, 167u8, 99u8, 208u8, 153u8, 163u8, 141u8,
                            55u8,
                        ],
                    )
                }
                #[doc = " The amount which has been reported as inactive to Currency."]
                pub fn deactivated(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::deactivated::Deactivated,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Deactivated",
                        (),
                        [
                            120u8, 221u8, 159u8, 56u8, 161u8, 44u8, 54u8, 233u8, 47u8, 114u8,
                            170u8, 150u8, 52u8, 24u8, 137u8, 212u8, 122u8, 247u8, 40u8, 17u8,
                            208u8, 130u8, 42u8, 154u8, 33u8, 222u8, 59u8, 116u8, 0u8, 15u8, 79u8,
                            123u8,
                        ],
                    )
                }
                #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."]
                #[doc = " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`."]
                #[doc = ""]
                #[doc = " Proposal indices that have been approved but not yet awarded."]
                pub fn approvals(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::approvals::Approvals,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Approvals",
                        (),
                        [
                            78u8, 147u8, 186u8, 235u8, 17u8, 40u8, 247u8, 235u8, 67u8, 222u8, 3u8,
                            14u8, 248u8, 17u8, 67u8, 180u8, 93u8, 161u8, 64u8, 35u8, 119u8, 194u8,
                            187u8, 226u8, 135u8, 162u8, 147u8, 174u8, 139u8, 72u8, 99u8, 212u8,
                        ],
                    )
                }
                #[doc = " The count of spends that have been made."]
                pub fn spend_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::spend_count::SpendCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "SpendCount",
                        (),
                        [
                            220u8, 74u8, 248u8, 52u8, 243u8, 209u8, 42u8, 236u8, 27u8, 98u8, 76u8,
                            153u8, 129u8, 176u8, 34u8, 177u8, 33u8, 132u8, 21u8, 71u8, 206u8,
                            146u8, 222u8, 44u8, 232u8, 246u8, 205u8, 92u8, 240u8, 136u8, 182u8,
                            30u8,
                        ],
                    )
                }
                #[doc = " Spends that have been approved and being processed."]
                pub fn spends_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::spends::Spends,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Spends",
                        (),
                        [
                            19u8, 242u8, 70u8, 81u8, 218u8, 158u8, 21u8, 93u8, 185u8, 202u8, 241u8,
                            52u8, 246u8, 236u8, 186u8, 250u8, 247u8, 166u8, 123u8, 45u8, 201u8,
                            101u8, 254u8, 12u8, 77u8, 229u8, 167u8, 3u8, 75u8, 112u8, 112u8, 55u8,
                        ],
                    )
                }
                #[doc = " Spends that have been approved and being processed."]
                pub fn spends(
                    &self,
                    _0: types::spends::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::spends::Param0,
                    >,
                    types::spends::Spends,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "Spends",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            19u8, 242u8, 70u8, 81u8, 218u8, 158u8, 21u8, 93u8, 185u8, 202u8, 241u8,
                            52u8, 246u8, 236u8, 186u8, 250u8, 247u8, 166u8, 123u8, 45u8, 201u8,
                            101u8, 254u8, 12u8, 77u8, 229u8, 167u8, 3u8, 75u8, 112u8, 112u8, 55u8,
                        ],
                    )
                }
                #[doc = " The blocknumber for the last triggered spend period."]
                pub fn last_spend_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::last_spend_period::LastSpendPeriod,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Treasury",
                        "LastSpendPeriod",
                        (),
                        [
                            6u8, 200u8, 107u8, 132u8, 60u8, 31u8, 24u8, 196u8, 108u8, 227u8, 5u8,
                            63u8, 249u8, 139u8, 82u8, 140u8, 169u8, 242u8, 118u8, 93u8, 83u8,
                            155u8, 120u8, 175u8, 224u8, 227u8, 39u8, 39u8, 255u8, 247u8, 79u8,
                            30u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " Period between successive spends."]
                pub fn spend_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "SpendPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Percentage of spare funds (if any) that are burnt per spend period."]
                pub fn burn(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_arithmetic::per_things::Permill,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "Burn",
                        [
                            65u8, 93u8, 120u8, 165u8, 204u8, 81u8, 159u8, 163u8, 93u8, 135u8,
                            114u8, 121u8, 147u8, 35u8, 215u8, 213u8, 4u8, 223u8, 83u8, 37u8, 225u8,
                            200u8, 189u8, 156u8, 140u8, 36u8, 58u8, 46u8, 42u8, 232u8, 155u8, 0u8,
                        ],
                    )
                }
                #[doc = " The treasury's pallet id, used for deriving its sovereign account ID."]
                pub fn pallet_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_support::PalletId,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "PalletId",
                        [
                            56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8,
                            161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8,
                            129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8,
                        ],
                    )
                }
                #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."]
                #[doc = " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`."]
                #[doc = ""]
                #[doc = " The maximum number of approvals that can wait in the spending queue."]
                #[doc = ""]
                #[doc = " NOTE: This parameter is also used within the Bounties Pallet extension if enabled."]
                pub fn max_approvals(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "MaxApprovals",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The period during which an approved treasury spend has to be claimed."]
                pub fn payout_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "PayoutPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Gets this pallet's derived pot account."]
                pub fn pot_account(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::subxt::ext::subxt_core::utils::AccountId32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Treasury",
                        "pot_account",
                        [
                            115u8, 233u8, 13u8, 223u8, 88u8, 20u8, 202u8, 139u8, 153u8, 28u8,
                            155u8, 157u8, 224u8, 66u8, 3u8, 250u8, 23u8, 53u8, 88u8, 168u8, 211u8,
                            204u8, 122u8, 166u8, 248u8, 23u8, 174u8, 225u8, 99u8, 108u8, 89u8,
                            135u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod conviction_voting {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_conviction_voting::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_conviction_voting::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"]
                #[doc = "otherwise it is a vote to keep the status quo."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `poll_index`: The index of the poll to vote for."]
                #[doc = "- `vote`: The vote configuration."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."]
                pub struct Vote {
                    #[codec(compact)]
                    pub poll_index: vote::PollIndex,
                    pub vote: vote::Vote,
                }
                pub mod vote {
                    use super::runtime_types;
                    pub type PollIndex = ::core::primitive::u32;
                    pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote<
                        ::core::primitive::u128,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vote {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "vote";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"]
                #[doc = "particular class of polls."]
                #[doc = ""]
                #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"]
                #[doc = "time appropriate for the conviction's lock period."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"]
                #[doc = "  - be delegating already; or"]
                #[doc = "  - have no voting activity (if there is, then it will need to be removed through"]
                #[doc = "    `remove_vote`)."]
                #[doc = ""]
                #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."]
                #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"]
                #[doc = "  to this function are required."]
                #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"]
                #[doc = "  account is undelegated, the funds will be locked for the corresponding period."]
                #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"]
                #[doc = "  be more than the account's current balance."]
                #[doc = ""]
                #[doc = "Emits `Delegated`."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                pub struct Delegate {
                    pub class: delegate::Class,
                    pub to: delegate::To,
                    pub conviction: delegate::Conviction,
                    pub balance: delegate::Balance,
                }
                pub mod delegate {
                    use super::runtime_types;
                    pub type Class = ::core::primitive::u16;
                    pub type To = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Conviction =
                        runtime_types::pallet_conviction_voting::conviction::Conviction;
                    pub type Balance = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Delegate {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "delegate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Undelegate the voting power of the sending account for a particular class of polls."]
                #[doc = ""]
                #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"]
                #[doc = "of the conviction with which the delegation was issued has passed."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"]
                #[doc = "currently delegating."]
                #[doc = ""]
                #[doc = "- `class`: The class of polls to remove the delegation from."]
                #[doc = ""]
                #[doc = "Emits `Undelegated`."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                pub struct Undelegate {
                    pub class: undelegate::Class,
                }
                pub mod undelegate {
                    use super::runtime_types;
                    pub type Class = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Undelegate {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "undelegate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"]
                #[doc = "class."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `class`: The class of polls to unlock."]
                #[doc = "- `target`: The account to remove the lock on."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` with R number of vote of target."]
                pub struct Unlock {
                    pub class: unlock::Class,
                    pub target: unlock::Target,
                }
                pub mod unlock {
                    use super::runtime_types;
                    pub type Class = ::core::primitive::u16;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unlock {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "unlock";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a vote for a poll."]
                #[doc = ""]
                #[doc = "If:"]
                #[doc = "- the poll was cancelled, or"]
                #[doc = "- the poll is ongoing, or"]
                #[doc = "- the poll has ended such that"]
                #[doc = "  - the vote of the account was in opposition to the result; or"]
                #[doc = "  - there was no conviction to the account's vote; or"]
                #[doc = "  - the account made a split vote"]
                #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"]
                #[doc = "funds being available."]
                #[doc = ""]
                #[doc = "If, however, the poll has ended and:"]
                #[doc = "- it finished corresponding to the vote of the account, and"]
                #[doc = "- the account made a standard vote with conviction, and"]
                #[doc = "- the lock period of the conviction is not over"]
                #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"]
                #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"]
                #[doc = "of both the amount locked and the time is it locked for)."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"]
                #[doc = "registered for poll `index`."]
                #[doc = ""]
                #[doc = "- `index`: The index of poll of the vote to be removed."]
                #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"]
                #[doc = "  which have finished or are cancelled, this must be `Some`."]
                #[doc = ""]
                #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                #[doc = "  Weight is calculated for the maximum number of vote."]
                pub struct RemoveVote {
                    pub class: remove_vote::Class,
                    pub index: remove_vote::Index,
                }
                pub mod remove_vote {
                    use super::runtime_types;
                    pub type Class = ::core::option::Option<::core::primitive::u16>;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveVote {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "remove_vote";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a vote for a poll."]
                #[doc = ""]
                #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"]
                #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"]
                #[doc = "either because the poll was cancelled, because the voter lost the poll or"]
                #[doc = "because the conviction period is over."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"]
                #[doc = "  `index`."]
                #[doc = "- `index`: The index of poll of the vote to be removed."]
                #[doc = "- `class`: The class of the poll."]
                #[doc = ""]
                #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                #[doc = "  Weight is calculated for the maximum number of vote."]
                pub struct RemoveOtherVote {
                    pub target: remove_other_vote::Target,
                    pub class: remove_other_vote::Class,
                    pub index: remove_other_vote::Index,
                }
                pub mod remove_other_vote {
                    use super::runtime_types;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Class = ::core::primitive::u16;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveOtherVote {
                    const PALLET: &'static str = "ConvictionVoting";
                    const CALL: &'static str = "remove_other_vote";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"]
                #[doc = "otherwise it is a vote to keep the status quo."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `poll_index`: The index of the poll to vote for."]
                #[doc = "- `vote`: The vote configuration."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."]
                pub fn vote(
                    &self,
                    poll_index: types::vote::PollIndex,
                    vote: types::vote::Vote,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Vote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "vote",
                        types::Vote { poll_index, vote },
                        [
                            57u8, 170u8, 177u8, 168u8, 158u8, 43u8, 87u8, 242u8, 176u8, 85u8,
                            230u8, 64u8, 103u8, 239u8, 190u8, 6u8, 228u8, 165u8, 248u8, 77u8,
                            231u8, 221u8, 186u8, 107u8, 249u8, 201u8, 226u8, 52u8, 129u8, 90u8,
                            142u8, 159u8,
                        ],
                    )
                }
                #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"]
                #[doc = "particular class of polls."]
                #[doc = ""]
                #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"]
                #[doc = "time appropriate for the conviction's lock period."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"]
                #[doc = "  - be delegating already; or"]
                #[doc = "  - have no voting activity (if there is, then it will need to be removed through"]
                #[doc = "    `remove_vote`)."]
                #[doc = ""]
                #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."]
                #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"]
                #[doc = "  to this function are required."]
                #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"]
                #[doc = "  account is undelegated, the funds will be locked for the corresponding period."]
                #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"]
                #[doc = "  be more than the account's current balance."]
                #[doc = ""]
                #[doc = "Emits `Delegated`."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                pub fn delegate(
                    &self,
                    class: types::delegate::Class,
                    to: types::delegate::To,
                    conviction: types::delegate::Conviction,
                    balance: types::delegate::Balance,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Delegate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "delegate",
                        types::Delegate {
                            class,
                            to,
                            conviction,
                            balance,
                        },
                        [
                            223u8, 143u8, 33u8, 94u8, 32u8, 156u8, 43u8, 40u8, 142u8, 134u8, 209u8,
                            134u8, 255u8, 179u8, 97u8, 46u8, 8u8, 140u8, 5u8, 29u8, 76u8, 22u8,
                            36u8, 7u8, 108u8, 190u8, 220u8, 151u8, 10u8, 47u8, 89u8, 55u8,
                        ],
                    )
                }
                #[doc = "Undelegate the voting power of the sending account for a particular class of polls."]
                #[doc = ""]
                #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"]
                #[doc = "of the conviction with which the delegation was issued has passed."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"]
                #[doc = "currently delegating."]
                #[doc = ""]
                #[doc = "- `class`: The class of polls to remove the delegation from."]
                #[doc = ""]
                #[doc = "Emits `Undelegated`."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                pub fn undelegate(
                    &self,
                    class: types::undelegate::Class,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Undelegate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "undelegate",
                        types::Undelegate { class },
                        [
                            140u8, 232u8, 6u8, 53u8, 228u8, 8u8, 131u8, 144u8, 65u8, 66u8, 245u8,
                            247u8, 147u8, 135u8, 198u8, 57u8, 82u8, 212u8, 89u8, 46u8, 236u8,
                            168u8, 200u8, 220u8, 93u8, 168u8, 101u8, 29u8, 110u8, 76u8, 67u8,
                            181u8,
                        ],
                    )
                }
                #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"]
                #[doc = "class."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `class`: The class of polls to unlock."]
                #[doc = "- `target`: The account to remove the lock on."]
                #[doc = ""]
                #[doc = "Weight: `O(R)` with R number of vote of target."]
                pub fn unlock(
                    &self,
                    class: types::unlock::Class,
                    target: types::unlock::Target,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Unlock>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "unlock",
                        types::Unlock { class, target },
                        [
                            79u8, 5u8, 252u8, 237u8, 109u8, 238u8, 157u8, 237u8, 125u8, 171u8,
                            65u8, 160u8, 102u8, 192u8, 5u8, 141u8, 179u8, 249u8, 253u8, 213u8,
                            105u8, 251u8, 241u8, 145u8, 186u8, 177u8, 244u8, 139u8, 71u8, 140u8,
                            173u8, 108u8,
                        ],
                    )
                }
                #[doc = "Remove a vote for a poll."]
                #[doc = ""]
                #[doc = "If:"]
                #[doc = "- the poll was cancelled, or"]
                #[doc = "- the poll is ongoing, or"]
                #[doc = "- the poll has ended such that"]
                #[doc = "  - the vote of the account was in opposition to the result; or"]
                #[doc = "  - there was no conviction to the account's vote; or"]
                #[doc = "  - the account made a split vote"]
                #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"]
                #[doc = "funds being available."]
                #[doc = ""]
                #[doc = "If, however, the poll has ended and:"]
                #[doc = "- it finished corresponding to the vote of the account, and"]
                #[doc = "- the account made a standard vote with conviction, and"]
                #[doc = "- the lock period of the conviction is not over"]
                #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"]
                #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"]
                #[doc = "of both the amount locked and the time is it locked for)."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"]
                #[doc = "registered for poll `index`."]
                #[doc = ""]
                #[doc = "- `index`: The index of poll of the vote to be removed."]
                #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"]
                #[doc = "  which have finished or are cancelled, this must be `Some`."]
                #[doc = ""]
                #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                #[doc = "  Weight is calculated for the maximum number of vote."]
                pub fn remove_vote(
                    &self,
                    class: types::remove_vote::Class,
                    index: types::remove_vote::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveVote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "remove_vote",
                        types::RemoveVote { class, index },
                        [
                            255u8, 108u8, 211u8, 146u8, 168u8, 231u8, 207u8, 44u8, 76u8, 24u8,
                            235u8, 60u8, 23u8, 79u8, 192u8, 192u8, 46u8, 40u8, 134u8, 27u8, 125u8,
                            114u8, 125u8, 247u8, 85u8, 102u8, 76u8, 159u8, 34u8, 167u8, 152u8,
                            148u8,
                        ],
                    )
                }
                #[doc = "Remove a vote for a poll."]
                #[doc = ""]
                #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"]
                #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"]
                #[doc = "either because the poll was cancelled, because the voter lost the poll or"]
                #[doc = "because the conviction period is over."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"]
                #[doc = "  `index`."]
                #[doc = "- `index`: The index of poll of the vote to be removed."]
                #[doc = "- `class`: The class of the poll."]
                #[doc = ""]
                #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                #[doc = "  Weight is calculated for the maximum number of vote."]
                pub fn remove_other_vote(
                    &self,
                    target: types::remove_other_vote::Target,
                    class: types::remove_other_vote::Class,
                    index: types::remove_other_vote::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveOtherVote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ConvictionVoting",
                        "remove_other_vote",
                        types::RemoveOtherVote {
                            target,
                            class,
                            index,
                        },
                        [
                            165u8, 26u8, 166u8, 37u8, 10u8, 174u8, 243u8, 10u8, 73u8, 93u8, 213u8,
                            69u8, 200u8, 16u8, 48u8, 146u8, 160u8, 92u8, 28u8, 26u8, 158u8, 55u8,
                            6u8, 251u8, 36u8, 132u8, 46u8, 195u8, 107u8, 34u8, 0u8, 100u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_conviction_voting::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account has delegated their vote to another account. \\[who, target\\]"]
            pub struct Delegated(pub delegated::Field0, pub delegated::Field1);
            pub mod delegated {
                use super::runtime_types;
                pub type Field0 = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Field1 = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Delegated {
                const PALLET: &'static str = "ConvictionVoting";
                const EVENT: &'static str = "Delegated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An \\[account\\] has cancelled a previous delegation operation."]
            pub struct Undelegated(pub undelegated::Field0);
            pub mod undelegated {
                use super::runtime_types;
                pub type Field0 = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Undelegated {
                const PALLET: &'static str = "ConvictionVoting";
                const EVENT: &'static str = "Undelegated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account has voted"]
            pub struct Voted {
                pub who: voted::Who,
                pub vote: voted::Vote,
            }
            pub mod voted {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote<
                    ::core::primitive::u128,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Voted {
                const PALLET: &'static str = "ConvictionVoting";
                const EVENT: &'static str = "Voted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A vote has been removed"]
            pub struct VoteRemoved {
                pub who: vote_removed::Who,
                pub vote: vote_removed::Vote,
            }
            pub mod vote_removed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote<
                    ::core::primitive::u128,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VoteRemoved {
                const PALLET: &'static str = "ConvictionVoting";
                const EVENT: &'static str = "VoteRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The lockup period of a conviction vote expired, and the funds have been unlocked."]
            pub struct VoteUnlocked {
                pub who: vote_unlocked::Who,
                pub class: vote_unlocked::Class,
            }
            pub mod vote_unlocked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Class = ::core::primitive::u16;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VoteUnlocked {
                const PALLET: &'static str = "ConvictionVoting";
                const EVENT: &'static str = "VoteUnlocked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod voting_for {
                    use super::runtime_types;
                    pub type VotingFor = runtime_types::pallet_conviction_voting::vote::Voting<
                        ::core::primitive::u128,
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u32,
                        ::core::primitive::u32,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param1 = ::core::primitive::u16;
                }
                pub mod class_locks_for {
                    use super::runtime_types;
                    pub type ClassLocksFor =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u16,
                            ::core::primitive::u128,
                        )>;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " All voting for a particular voter in a particular voting class. We store the balance for the"]
                #[doc = " number of votes that we have recorded."]
                pub fn voting_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::voting_for::VotingFor,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "VotingFor",
                        (),
                        [
                            76u8, 63u8, 153u8, 193u8, 39u8, 137u8, 186u8, 29u8, 202u8, 56u8, 169u8,
                            56u8, 103u8, 138u8, 192u8, 18u8, 179u8, 114u8, 56u8, 121u8, 197u8,
                            12u8, 29u8, 239u8, 220u8, 231u8, 24u8, 46u8, 134u8, 99u8, 53u8, 206u8,
                        ],
                    )
                }
                #[doc = " All voting for a particular voter in a particular voting class. We store the balance for the"]
                #[doc = " number of votes that we have recorded."]
                pub fn voting_for_iter1(
                    &self,
                    _0: types::voting_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::voting_for::Param0,
                    >,
                    types::voting_for::VotingFor,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "VotingFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            76u8, 63u8, 153u8, 193u8, 39u8, 137u8, 186u8, 29u8, 202u8, 56u8, 169u8,
                            56u8, 103u8, 138u8, 192u8, 18u8, 179u8, 114u8, 56u8, 121u8, 197u8,
                            12u8, 29u8, 239u8, 220u8, 231u8, 24u8, 46u8, 134u8, 99u8, 53u8, 206u8,
                        ],
                    )
                }
                #[doc = " All voting for a particular voter in a particular voting class. We store the balance for the"]
                #[doc = " number of votes that we have recorded."]
                pub fn voting_for(
                    &self,
                    _0: types::voting_for::Param0,
                    _1: types::voting_for::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::voting_for::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::voting_for::Param1,
                        >,
                    ),
                    types::voting_for::VotingFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "VotingFor",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            76u8, 63u8, 153u8, 193u8, 39u8, 137u8, 186u8, 29u8, 202u8, 56u8, 169u8,
                            56u8, 103u8, 138u8, 192u8, 18u8, 179u8, 114u8, 56u8, 121u8, 197u8,
                            12u8, 29u8, 239u8, 220u8, 231u8, 24u8, 46u8, 134u8, 99u8, 53u8, 206u8,
                        ],
                    )
                }
                #[doc = " The voting classes which have a non-zero lock requirement and the lock amounts which they"]
                #[doc = " require. The actual amount locked on behalf of this pallet should always be the maximum of"]
                #[doc = " this list."]
                pub fn class_locks_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::class_locks_for::ClassLocksFor,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "ClassLocksFor",
                        (),
                        [
                            74u8, 74u8, 8u8, 82u8, 215u8, 61u8, 13u8, 9u8, 44u8, 222u8, 33u8,
                            245u8, 195u8, 124u8, 6u8, 174u8, 65u8, 245u8, 71u8, 42u8, 47u8, 46u8,
                            164u8, 231u8, 11u8, 245u8, 115u8, 207u8, 209u8, 137u8, 90u8, 6u8,
                        ],
                    )
                }
                #[doc = " The voting classes which have a non-zero lock requirement and the lock amounts which they"]
                #[doc = " require. The actual amount locked on behalf of this pallet should always be the maximum of"]
                #[doc = " this list."]
                pub fn class_locks_for(
                    &self,
                    _0: types::class_locks_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::class_locks_for::Param0,
                    >,
                    types::class_locks_for::ClassLocksFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "ClassLocksFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            74u8, 74u8, 8u8, 82u8, 215u8, 61u8, 13u8, 9u8, 44u8, 222u8, 33u8,
                            245u8, 195u8, 124u8, 6u8, 174u8, 65u8, 245u8, 71u8, 42u8, 47u8, 46u8,
                            164u8, 231u8, 11u8, 245u8, 115u8, 207u8, 209u8, 137u8, 90u8, 6u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The maximum number of concurrent votes an account may have."]
                #[doc = ""]
                #[doc = " Also used to compute weight, an overly large value can lead to extrinsics with large"]
                #[doc = " weight estimation: see `delegate` for instance."]
                pub fn max_votes(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "MaxVotes",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The minimum period of vote locking."]
                #[doc = ""]
                #[doc = " It should be no shorter than enactment period to ensure that in the case of an approval,"]
                #[doc = " those successful voters are locked into the consequences that their votes entail."]
                pub fn vote_locking_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "ConvictionVoting",
                        "VoteLockingPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod referenda {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_referenda::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_referenda::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose a referendum on a privileged action."]
                #[doc = ""]
                #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"]
                #[doc = "  available."]
                #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."]
                #[doc = "- `proposal`: The proposal."]
                #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."]
                #[doc = ""]
                #[doc = "Emits `Submitted`."]
                pub struct Submit {
                    pub proposal_origin:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<submit::ProposalOrigin>,
                    pub proposal: submit::Proposal,
                    pub enactment_moment: submit::EnactmentMoment,
                }
                pub mod submit {
                    use super::runtime_types;
                    pub type ProposalOrigin = runtime_types::rococo_runtime::OriginCaller;
                    pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                        runtime_types::rococo_runtime::RuntimeCall,
                        runtime_types::sp_runtime::traits::BlakeTwo256,
                    >;
                    pub type EnactmentMoment =
                        runtime_types::frame_support::traits::schedule::DispatchTime<
                            ::core::primitive::u32,
                        >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Submit {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "submit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Post the Decision Deposit for a referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"]
                #[doc = "  referendum's track's Decision Deposit."]
                #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"]
                #[doc = "  posted."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositPlaced`."]
                pub struct PlaceDecisionDeposit {
                    pub index: place_decision_deposit::Index,
                }
                pub mod place_decision_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceDecisionDeposit {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "place_decision_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositRefunded`."]
                pub struct RefundDecisionDeposit {
                    pub index: refund_decision_deposit::Index,
                }
                pub mod refund_decision_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RefundDecisionDeposit {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "refund_decision_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an ongoing referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `CancelOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Cancelled`."]
                pub struct Cancel {
                    pub index: cancel::Index,
                }
                pub mod cancel {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Cancel {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "cancel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an ongoing referendum and slash the deposits."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `KillOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Killed` and `DepositSlashed`."]
                pub struct Kill {
                    pub index: kill::Index,
                }
                pub mod kill {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Kill {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "kill";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Advance a referendum onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `index`: the referendum to be advanced."]
                pub struct NudgeReferendum {
                    pub index: nudge_referendum::Index,
                }
                pub mod nudge_referendum {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for NudgeReferendum {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "nudge_referendum";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Advance a track onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `track`: the track to be advanced."]
                #[doc = ""]
                #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"]
                #[doc = "`DecidingCount` is not yet updated. This means that we should either:"]
                #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"]
                #[doc = "- decrement `DecidingCount`."]
                pub struct OneFewerDeciding {
                    pub track: one_fewer_deciding::Track,
                }
                pub mod one_fewer_deciding {
                    use super::runtime_types;
                    pub type Track = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for OneFewerDeciding {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "one_fewer_deciding";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `SubmissionDepositRefunded`."]
                pub struct RefundSubmissionDeposit {
                    pub index: refund_submission_deposit::Index,
                }
                pub mod refund_submission_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RefundSubmissionDeposit {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "refund_submission_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set or clear metadata of a referendum."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"]
                #[doc = "  metadata of a finished referendum."]
                #[doc = "- `index`:  The index of a referendum to set or clear metadata for."]
                #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."]
                pub struct SetMetadata {
                    pub index: set_metadata::Index,
                    pub maybe_hash: set_metadata::MaybeHash,
                }
                pub mod set_metadata {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type MaybeHash =
                        ::core::option::Option<::subxt::ext::subxt_core::utils::H256>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMetadata {
                    const PALLET: &'static str = "Referenda";
                    const CALL: &'static str = "set_metadata";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Propose a referendum on a privileged action."]
                #[doc = ""]
                #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"]
                #[doc = "  available."]
                #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."]
                #[doc = "- `proposal`: The proposal."]
                #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."]
                #[doc = ""]
                #[doc = "Emits `Submitted`."]
                pub fn submit(
                    &self,
                    proposal_origin: types::submit::ProposalOrigin,
                    proposal: types::submit::Proposal,
                    enactment_moment: types::submit::EnactmentMoment,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Submit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "submit",
                        types::Submit {
                            proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                proposal_origin,
                            ),
                            proposal,
                            enactment_moment,
                        },
                        [
                            86u8, 84u8, 96u8, 114u8, 247u8, 25u8, 6u8, 101u8, 96u8, 162u8, 250u8,
                            43u8, 112u8, 243u8, 41u8, 89u8, 137u8, 193u8, 155u8, 47u8, 105u8,
                            195u8, 219u8, 139u8, 202u8, 232u8, 181u8, 48u8, 72u8, 230u8, 24u8,
                            154u8,
                        ],
                    )
                }
                #[doc = "Post the Decision Deposit for a referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"]
                #[doc = "  referendum's track's Decision Deposit."]
                #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"]
                #[doc = "  posted."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositPlaced`."]
                pub fn place_decision_deposit(
                    &self,
                    index: types::place_decision_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlaceDecisionDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "place_decision_deposit",
                        types::PlaceDecisionDeposit { index },
                        [
                            247u8, 158u8, 55u8, 191u8, 188u8, 200u8, 3u8, 47u8, 20u8, 175u8, 86u8,
                            203u8, 52u8, 253u8, 91u8, 131u8, 21u8, 213u8, 56u8, 68u8, 40u8, 84u8,
                            184u8, 30u8, 9u8, 193u8, 63u8, 182u8, 178u8, 241u8, 247u8, 220u8,
                        ],
                    )
                }
                #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositRefunded`."]
                pub fn refund_decision_deposit(
                    &self,
                    index: types::refund_decision_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RefundDecisionDeposit,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "refund_decision_deposit",
                        types::RefundDecisionDeposit { index },
                        [
                            159u8, 19u8, 35u8, 216u8, 114u8, 105u8, 18u8, 42u8, 148u8, 151u8,
                            136u8, 92u8, 117u8, 30u8, 29u8, 41u8, 238u8, 58u8, 195u8, 91u8, 115u8,
                            135u8, 96u8, 99u8, 154u8, 233u8, 8u8, 249u8, 145u8, 165u8, 77u8, 164u8,
                        ],
                    )
                }
                #[doc = "Cancel an ongoing referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `CancelOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Cancelled`."]
                pub fn cancel(
                    &self,
                    index: types::cancel::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Cancel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "cancel",
                        types::Cancel { index },
                        [
                            55u8, 206u8, 119u8, 156u8, 238u8, 165u8, 193u8, 73u8, 242u8, 13u8,
                            212u8, 75u8, 136u8, 156u8, 151u8, 14u8, 35u8, 41u8, 156u8, 107u8, 60u8,
                            190u8, 39u8, 216u8, 8u8, 74u8, 213u8, 130u8, 160u8, 131u8, 237u8,
                            122u8,
                        ],
                    )
                }
                #[doc = "Cancel an ongoing referendum and slash the deposits."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `KillOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Killed` and `DepositSlashed`."]
                pub fn kill(
                    &self,
                    index: types::kill::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Kill>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "kill",
                        types::Kill { index },
                        [
                            50u8, 89u8, 57u8, 0u8, 87u8, 129u8, 113u8, 140u8, 179u8, 178u8, 126u8,
                            198u8, 92u8, 92u8, 189u8, 64u8, 123u8, 232u8, 57u8, 227u8, 223u8,
                            219u8, 73u8, 217u8, 179u8, 44u8, 210u8, 125u8, 180u8, 10u8, 143u8,
                            48u8,
                        ],
                    )
                }
                #[doc = "Advance a referendum onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `index`: the referendum to be advanced."]
                pub fn nudge_referendum(
                    &self,
                    index: types::nudge_referendum::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::NudgeReferendum>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "nudge_referendum",
                        types::NudgeReferendum { index },
                        [
                            75u8, 99u8, 172u8, 30u8, 170u8, 150u8, 211u8, 229u8, 249u8, 128u8,
                            194u8, 246u8, 100u8, 142u8, 193u8, 184u8, 232u8, 81u8, 29u8, 17u8,
                            99u8, 91u8, 236u8, 85u8, 230u8, 226u8, 57u8, 115u8, 45u8, 170u8, 54u8,
                            213u8,
                        ],
                    )
                }
                #[doc = "Advance a track onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `track`: the track to be advanced."]
                #[doc = ""]
                #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"]
                #[doc = "`DecidingCount` is not yet updated. This means that we should either:"]
                #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"]
                #[doc = "- decrement `DecidingCount`."]
                pub fn one_fewer_deciding(
                    &self,
                    track: types::one_fewer_deciding::Track,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::OneFewerDeciding>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "one_fewer_deciding",
                        types::OneFewerDeciding { track },
                        [
                            15u8, 84u8, 79u8, 231u8, 21u8, 239u8, 244u8, 143u8, 183u8, 215u8,
                            181u8, 25u8, 225u8, 195u8, 95u8, 171u8, 17u8, 156u8, 182u8, 128u8,
                            111u8, 40u8, 151u8, 102u8, 196u8, 55u8, 36u8, 212u8, 89u8, 190u8,
                            131u8, 167u8,
                        ],
                    )
                }
                #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `SubmissionDepositRefunded`."]
                pub fn refund_submission_deposit(
                    &self,
                    index: types::refund_submission_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RefundSubmissionDeposit,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "refund_submission_deposit",
                        types::RefundSubmissionDeposit { index },
                        [
                            20u8, 217u8, 115u8, 6u8, 1u8, 60u8, 54u8, 136u8, 35u8, 41u8, 38u8,
                            23u8, 85u8, 100u8, 141u8, 126u8, 30u8, 160u8, 61u8, 46u8, 134u8, 98u8,
                            82u8, 38u8, 211u8, 124u8, 208u8, 222u8, 210u8, 10u8, 155u8, 122u8,
                        ],
                    )
                }
                #[doc = "Set or clear metadata of a referendum."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"]
                #[doc = "  metadata of a finished referendum."]
                #[doc = "- `index`:  The index of a referendum to set or clear metadata for."]
                #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."]
                pub fn set_metadata(
                    &self,
                    index: types::set_metadata::Index,
                    maybe_hash: types::set_metadata::MaybeHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMetadata>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Referenda",
                        "set_metadata",
                        types::SetMetadata { index, maybe_hash },
                        [
                            207u8, 29u8, 146u8, 233u8, 219u8, 205u8, 88u8, 118u8, 106u8, 61u8,
                            124u8, 101u8, 2u8, 41u8, 169u8, 70u8, 114u8, 189u8, 162u8, 118u8, 1u8,
                            108u8, 234u8, 98u8, 245u8, 245u8, 183u8, 126u8, 89u8, 13u8, 112u8,
                            88u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_referenda::pallet::Event1;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been submitted."]
            pub struct Submitted {
                pub index: submitted::Index,
                pub track: submitted::Track,
                pub proposal: submitted::Proposal,
            }
            pub mod submitted {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Track = ::core::primitive::u16;
                pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                    runtime_types::rococo_runtime::RuntimeCall,
                    runtime_types::sp_runtime::traits::BlakeTwo256,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Submitted {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Submitted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The decision deposit has been placed."]
            pub struct DecisionDepositPlaced {
                pub index: decision_deposit_placed::Index,
                pub who: decision_deposit_placed::Who,
                pub amount: decision_deposit_placed::Amount,
            }
            pub mod decision_deposit_placed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionDepositPlaced {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "DecisionDepositPlaced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The decision deposit has been refunded."]
            pub struct DecisionDepositRefunded {
                pub index: decision_deposit_refunded::Index,
                pub who: decision_deposit_refunded::Who,
                pub amount: decision_deposit_refunded::Amount,
            }
            pub mod decision_deposit_refunded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionDepositRefunded {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "DecisionDepositRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit has been slashed."]
            pub struct DepositSlashed {
                pub who: deposit_slashed::Who,
                pub amount: deposit_slashed::Amount,
            }
            pub mod deposit_slashed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositSlashed {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "DepositSlashed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has moved into the deciding phase."]
            pub struct DecisionStarted {
                pub index: decision_started::Index,
                pub track: decision_started::Track,
                pub proposal: decision_started::Proposal,
                pub tally: decision_started::Tally,
            }
            pub mod decision_started {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Track = ::core::primitive::u16;
                pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                    runtime_types::rococo_runtime::RuntimeCall,
                    runtime_types::sp_runtime::traits::BlakeTwo256,
                >;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionStarted {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "DecisionStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ConfirmStarted {
                pub index: confirm_started::Index,
            }
            pub mod confirm_started {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ConfirmStarted {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "ConfirmStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ConfirmAborted {
                pub index: confirm_aborted::Index,
            }
            pub mod confirm_aborted {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ConfirmAborted {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "ConfirmAborted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has ended its confirmation phase and is ready for approval."]
            pub struct Confirmed {
                pub index: confirmed::Index,
                pub tally: confirmed::Tally,
            }
            pub mod confirmed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Confirmed {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Confirmed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been approved and its proposal has been scheduled."]
            pub struct Approved {
                pub index: approved::Index,
            }
            pub mod approved {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Approved {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Approved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A proposal has been rejected by referendum."]
            pub struct Rejected {
                pub index: rejected::Index,
                pub tally: rejected::Tally,
            }
            pub mod rejected {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Rejected {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Rejected";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been timed out without being decided."]
            pub struct TimedOut {
                pub index: timed_out::Index,
                pub tally: timed_out::Tally,
            }
            pub mod timed_out {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TimedOut {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "TimedOut";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been cancelled."]
            pub struct Cancelled {
                pub index: cancelled::Index,
                pub tally: cancelled::Tally,
            }
            pub mod cancelled {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Cancelled {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Cancelled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been killed."]
            pub struct Killed {
                pub index: killed::Index,
                pub tally: killed::Tally,
            }
            pub mod killed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally =
                    runtime_types::pallet_conviction_voting::types::Tally<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Killed {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "Killed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The submission deposit has been refunded."]
            pub struct SubmissionDepositRefunded {
                pub index: submission_deposit_refunded::Index,
                pub who: submission_deposit_refunded::Who,
                pub amount: submission_deposit_refunded::Amount,
            }
            pub mod submission_deposit_refunded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubmissionDepositRefunded {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "SubmissionDepositRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Metadata for a referendum has been set."]
            pub struct MetadataSet {
                pub index: metadata_set::Index,
                pub hash: metadata_set::Hash,
            }
            pub mod metadata_set {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MetadataSet {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "MetadataSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Metadata for a referendum has been cleared."]
            pub struct MetadataCleared {
                pub index: metadata_cleared::Index,
                pub hash: metadata_cleared::Hash,
            }
            pub mod metadata_cleared {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MetadataCleared {
                const PALLET: &'static str = "Referenda";
                const EVENT: &'static str = "MetadataCleared";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod referendum_count {
                    use super::runtime_types;
                    pub type ReferendumCount = ::core::primitive::u32;
                }
                pub mod referendum_info_for {
                    use super::runtime_types;
                    pub type ReferendumInfoFor =
                        runtime_types::pallet_referenda::types::ReferendumInfo<
                            ::core::primitive::u16,
                            runtime_types::rococo_runtime::OriginCaller,
                            ::core::primitive::u32,
                            runtime_types::frame_support::traits::preimages::Bounded<
                                runtime_types::rococo_runtime::RuntimeCall,
                                runtime_types::sp_runtime::traits::BlakeTwo256,
                            >,
                            ::core::primitive::u128,
                            runtime_types::pallet_conviction_voting::types::Tally<
                                ::core::primitive::u128,
                            >,
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (::core::primitive::u32, ::core::primitive::u32),
                        >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod track_queue {
                    use super::runtime_types;
                    pub type TrackQueue =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u32,
                            ::core::primitive::u128,
                        )>;
                    pub type Param0 = ::core::primitive::u16;
                }
                pub mod deciding_count {
                    use super::runtime_types;
                    pub type DecidingCount = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u16;
                }
                pub mod metadata_of {
                    use super::runtime_types;
                    pub type MetadataOf = ::subxt::ext::subxt_core::utils::H256;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The next free referendum index, aka the number of referenda started so far."]
                pub fn referendum_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::referendum_count::ReferendumCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "ReferendumCount",
                        (),
                        [
                            64u8, 145u8, 232u8, 153u8, 121u8, 87u8, 128u8, 253u8, 170u8, 192u8,
                            139u8, 18u8, 0u8, 33u8, 243u8, 11u8, 238u8, 222u8, 244u8, 5u8, 247u8,
                            198u8, 149u8, 31u8, 122u8, 208u8, 86u8, 179u8, 166u8, 167u8, 93u8,
                            67u8,
                        ],
                    )
                }
                #[doc = " Information concerning any given referendum."]
                pub fn referendum_info_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::referendum_info_for::ReferendumInfoFor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "ReferendumInfoFor",
                        (),
                        [
                            123u8, 87u8, 188u8, 82u8, 34u8, 134u8, 67u8, 91u8, 100u8, 213u8, 39u8,
                            126u8, 205u8, 149u8, 10u8, 60u8, 57u8, 243u8, 173u8, 17u8, 27u8, 99u8,
                            95u8, 52u8, 20u8, 108u8, 209u8, 15u8, 49u8, 192u8, 249u8, 23u8,
                        ],
                    )
                }
                #[doc = " Information concerning any given referendum."]
                pub fn referendum_info_for(
                    &self,
                    _0: types::referendum_info_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::referendum_info_for::Param0,
                    >,
                    types::referendum_info_for::ReferendumInfoFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "ReferendumInfoFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            123u8, 87u8, 188u8, 82u8, 34u8, 134u8, 67u8, 91u8, 100u8, 213u8, 39u8,
                            126u8, 205u8, 149u8, 10u8, 60u8, 57u8, 243u8, 173u8, 17u8, 27u8, 99u8,
                            95u8, 52u8, 20u8, 108u8, 209u8, 15u8, 49u8, 192u8, 249u8, 23u8,
                        ],
                    )
                }
                #[doc = " The sorted list of referenda ready to be decided but not yet being decided, ordered by"]
                #[doc = " conviction-weighted approvals."]
                #[doc = ""]
                #[doc = " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`."]
                pub fn track_queue_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::track_queue::TrackQueue,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "TrackQueue",
                        (),
                        [
                            125u8, 59u8, 111u8, 68u8, 27u8, 236u8, 82u8, 55u8, 83u8, 159u8, 105u8,
                            20u8, 241u8, 118u8, 58u8, 141u8, 103u8, 60u8, 246u8, 49u8, 121u8,
                            183u8, 7u8, 203u8, 225u8, 67u8, 132u8, 79u8, 150u8, 107u8, 71u8, 89u8,
                        ],
                    )
                }
                #[doc = " The sorted list of referenda ready to be decided but not yet being decided, ordered by"]
                #[doc = " conviction-weighted approvals."]
                #[doc = ""]
                #[doc = " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`."]
                pub fn track_queue(
                    &self,
                    _0: types::track_queue::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::track_queue::Param0,
                    >,
                    types::track_queue::TrackQueue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "TrackQueue",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            125u8, 59u8, 111u8, 68u8, 27u8, 236u8, 82u8, 55u8, 83u8, 159u8, 105u8,
                            20u8, 241u8, 118u8, 58u8, 141u8, 103u8, 60u8, 246u8, 49u8, 121u8,
                            183u8, 7u8, 203u8, 225u8, 67u8, 132u8, 79u8, 150u8, 107u8, 71u8, 89u8,
                        ],
                    )
                }
                #[doc = " The number of referenda being decided currently."]
                pub fn deciding_count_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::deciding_count::DecidingCount,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "DecidingCount",
                        (),
                        [
                            203u8, 89u8, 158u8, 179u8, 194u8, 82u8, 248u8, 162u8, 93u8, 140u8,
                            146u8, 51u8, 110u8, 232u8, 51u8, 1u8, 128u8, 212u8, 199u8, 14u8, 182u8,
                            103u8, 47u8, 252u8, 126u8, 108u8, 166u8, 69u8, 252u8, 179u8, 126u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " The number of referenda being decided currently."]
                pub fn deciding_count(
                    &self,
                    _0: types::deciding_count::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::deciding_count::Param0,
                    >,
                    types::deciding_count::DecidingCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "DecidingCount",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            203u8, 89u8, 158u8, 179u8, 194u8, 82u8, 248u8, 162u8, 93u8, 140u8,
                            146u8, 51u8, 110u8, 232u8, 51u8, 1u8, 128u8, 212u8, 199u8, 14u8, 182u8,
                            103u8, 47u8, 252u8, 126u8, 108u8, 166u8, 69u8, 252u8, 179u8, 126u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " The metadata is a general information concerning the referendum."]
                #[doc = " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON"]
                #[doc = " dump or IPFS hash of a JSON file."]
                #[doc = ""]
                #[doc = " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)"]
                #[doc = " large preimages."]
                pub fn metadata_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::metadata_of::MetadataOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "MetadataOf",
                        (),
                        [
                            159u8, 250u8, 56u8, 189u8, 247u8, 165u8, 206u8, 166u8, 91u8, 139u8,
                            124u8, 164u8, 25u8, 246u8, 199u8, 36u8, 159u8, 56u8, 227u8, 136u8, 4u8,
                            45u8, 193u8, 72u8, 200u8, 164u8, 39u8, 207u8, 224u8, 124u8, 191u8,
                            110u8,
                        ],
                    )
                }
                #[doc = " The metadata is a general information concerning the referendum."]
                #[doc = " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON"]
                #[doc = " dump or IPFS hash of a JSON file."]
                #[doc = ""]
                #[doc = " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)"]
                #[doc = " large preimages."]
                pub fn metadata_of(
                    &self,
                    _0: types::metadata_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::metadata_of::Param0,
                    >,
                    types::metadata_of::MetadataOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Referenda",
                        "MetadataOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            159u8, 250u8, 56u8, 189u8, 247u8, 165u8, 206u8, 166u8, 91u8, 139u8,
                            124u8, 164u8, 25u8, 246u8, 199u8, 36u8, 159u8, 56u8, 227u8, 136u8, 4u8,
                            45u8, 193u8, 72u8, 200u8, 164u8, 39u8, 207u8, 224u8, 124u8, 191u8,
                            110u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum amount to be used as a deposit for a public referendum proposal."]
                pub fn submission_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Referenda",
                        "SubmissionDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " Maximum size of the referendum queue for a single track."]
                pub fn max_queued(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Referenda",
                        "MaxQueued",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks after submission that a referendum must begin being decided by."]
                #[doc = " Once this passes, then anyone may cancel the referendum."]
                pub fn undeciding_timeout(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Referenda",
                        "UndecidingTimeout",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Quantization level for the referendum wakeup scheduler. A higher number will result in"]
                #[doc = " fewer storage reads/writes needed for smaller voters, but also result in delays to the"]
                #[doc = " automatic referendum status changes. Explicit servicing instructions are unaffected."]
                pub fn alarm_interval(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Referenda",
                        "AlarmInterval",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " A list of tracks."]
                #[doc = ""]
                #[doc = " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate."]
                pub fn tracks(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::core::primitive::u16,
                        runtime_types::pallet_referenda::types::TrackDetails<
                            ::core::primitive::u128,
                            ::core::primitive::u32,
                            ::subxt::ext::subxt_core::alloc::string::String,
                        >,
                    )>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Referenda",
                        "Tracks",
                        [
                            35u8, 226u8, 207u8, 234u8, 184u8, 139u8, 187u8, 184u8, 128u8, 199u8,
                            227u8, 15u8, 31u8, 196u8, 5u8, 207u8, 138u8, 174u8, 130u8, 201u8,
                            200u8, 113u8, 86u8, 93u8, 221u8, 243u8, 229u8, 24u8, 18u8, 150u8, 56u8,
                            159u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod fellowship_collective {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_ranked_collective::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_ranked_collective::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Introduce a new member."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `AddOrigin`."]
                #[doc = "- `who`: Account of non-member which will become a member."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`"]
                pub struct AddMember {
                    pub who: add_member::Who,
                }
                pub mod add_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddMember {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "add_member";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Increment the rank of an existing member by one."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `PromoteOrigin`."]
                #[doc = "- `who`: Account of existing member."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`"]
                pub struct PromoteMember {
                    pub who: promote_member::Who,
                }
                pub mod promote_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PromoteMember {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "promote_member";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"]
                #[doc = "then they are removed entirely."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `DemoteOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."]
                pub struct DemoteMember {
                    pub who: demote_member::Who,
                }
                pub mod demote_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DemoteMember {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "demote_member";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the member entirely."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `RemoveOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero."]
                #[doc = "- `min_rank`: The rank of the member or greater."]
                #[doc = ""]
                #[doc = "Weight: `O(min_rank)`."]
                pub struct RemoveMember {
                    pub who: remove_member::Who,
                    pub min_rank: remove_member::MinRank,
                }
                pub mod remove_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type MinRank = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveMember {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "remove_member";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add an aye or nay vote for the sender to the given proposal."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed` by a member account."]
                #[doc = "- `poll`: Index of a poll which is ongoing."]
                #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."]
                #[doc = ""]
                #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"]
                #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"]
                #[doc = "fee."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."]
                pub struct Vote {
                    pub poll: vote::Poll,
                    pub aye: vote::Aye,
                }
                pub mod vote {
                    use super::runtime_types;
                    pub type Poll = ::core::primitive::u32;
                    pub type Aye = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vote {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "vote";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove votes from the given poll. It must have ended."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed` by any account."]
                #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"]
                #[doc = "  exist."]
                #[doc = "- `max`: Maximum number of vote items from remove in this call."]
                #[doc = ""]
                #[doc = "Transaction fees are waived if the operation is successful."]
                #[doc = ""]
                #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."]
                pub struct CleanupPoll {
                    pub poll_index: cleanup_poll::PollIndex,
                    pub max: cleanup_poll::Max,
                }
                pub mod cleanup_poll {
                    use super::runtime_types;
                    pub type PollIndex = ::core::primitive::u32;
                    pub type Max = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CleanupPoll {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "cleanup_poll";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Exchanges a member with a new account and the same existing rank."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `ExchangeOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."]
                #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."]
                pub struct ExchangeMember {
                    pub who: exchange_member::Who,
                    pub new_who: exchange_member::NewWho,
                }
                pub mod exchange_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type NewWho = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ExchangeMember {
                    const PALLET: &'static str = "FellowshipCollective";
                    const CALL: &'static str = "exchange_member";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Introduce a new member."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `AddOrigin`."]
                #[doc = "- `who`: Account of non-member which will become a member."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`"]
                pub fn add_member(
                    &self,
                    who: types::add_member::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "add_member",
                        types::AddMember { who },
                        [
                            2u8, 131u8, 37u8, 217u8, 112u8, 46u8, 86u8, 165u8, 248u8, 244u8, 33u8,
                            236u8, 155u8, 28u8, 163u8, 169u8, 213u8, 32u8, 70u8, 217u8, 97u8,
                            194u8, 138u8, 77u8, 133u8, 97u8, 188u8, 49u8, 49u8, 31u8, 177u8, 206u8,
                        ],
                    )
                }
                #[doc = "Increment the rank of an existing member by one."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `PromoteOrigin`."]
                #[doc = "- `who`: Account of existing member."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`"]
                pub fn promote_member(
                    &self,
                    who: types::promote_member::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PromoteMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "promote_member",
                        types::PromoteMember { who },
                        [
                            169u8, 155u8, 9u8, 50u8, 144u8, 133u8, 230u8, 60u8, 216u8, 147u8, 3u8,
                            236u8, 94u8, 185u8, 106u8, 139u8, 235u8, 143u8, 189u8, 135u8, 208u8,
                            176u8, 126u8, 124u8, 85u8, 140u8, 189u8, 125u8, 87u8, 56u8, 57u8,
                            246u8,
                        ],
                    )
                }
                #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"]
                #[doc = "then they are removed entirely."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `DemoteOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."]
                pub fn demote_member(
                    &self,
                    who: types::demote_member::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DemoteMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "demote_member",
                        types::DemoteMember { who },
                        [
                            21u8, 185u8, 71u8, 166u8, 106u8, 88u8, 74u8, 251u8, 78u8, 28u8, 205u8,
                            171u8, 199u8, 195u8, 97u8, 149u8, 175u8, 229u8, 25u8, 113u8, 96u8,
                            25u8, 240u8, 64u8, 109u8, 246u8, 203u8, 45u8, 110u8, 205u8, 115u8,
                            178u8,
                        ],
                    )
                }
                #[doc = "Remove the member entirely."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `RemoveOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero."]
                #[doc = "- `min_rank`: The rank of the member or greater."]
                #[doc = ""]
                #[doc = "Weight: `O(min_rank)`."]
                pub fn remove_member(
                    &self,
                    who: types::remove_member::Who,
                    min_rank: types::remove_member::MinRank,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "remove_member",
                        types::RemoveMember { who, min_rank },
                        [
                            23u8, 156u8, 32u8, 64u8, 158u8, 50u8, 64u8, 199u8, 108u8, 67u8, 133u8,
                            128u8, 138u8, 241u8, 14u8, 238u8, 192u8, 173u8, 250u8, 11u8, 124u8,
                            119u8, 177u8, 190u8, 152u8, 116u8, 134u8, 42u8, 216u8, 49u8, 113u8,
                            49u8,
                        ],
                    )
                }
                #[doc = "Add an aye or nay vote for the sender to the given proposal."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed` by a member account."]
                #[doc = "- `poll`: Index of a poll which is ongoing."]
                #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."]
                #[doc = ""]
                #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"]
                #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"]
                #[doc = "fee."]
                #[doc = ""]
                #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."]
                pub fn vote(
                    &self,
                    poll: types::vote::Poll,
                    aye: types::vote::Aye,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Vote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "vote",
                        types::Vote { poll, aye },
                        [
                            54u8, 116u8, 81u8, 239u8, 223u8, 35u8, 11u8, 244u8, 245u8, 94u8, 23u8,
                            241u8, 125u8, 231u8, 56u8, 150u8, 105u8, 125u8, 100u8, 171u8, 182u8,
                            186u8, 134u8, 40u8, 4u8, 121u8, 119u8, 11u8, 93u8, 158u8, 59u8, 209u8,
                        ],
                    )
                }
                #[doc = "Remove votes from the given poll. It must have ended."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed` by any account."]
                #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"]
                #[doc = "  exist."]
                #[doc = "- `max`: Maximum number of vote items from remove in this call."]
                #[doc = ""]
                #[doc = "Transaction fees are waived if the operation is successful."]
                #[doc = ""]
                #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."]
                pub fn cleanup_poll(
                    &self,
                    poll_index: types::cleanup_poll::PollIndex,
                    max: types::cleanup_poll::Max,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CleanupPoll>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "cleanup_poll",
                        types::CleanupPoll { poll_index, max },
                        [
                            157u8, 109u8, 86u8, 253u8, 62u8, 107u8, 235u8, 255u8, 171u8, 68u8,
                            103u8, 92u8, 245u8, 25u8, 252u8, 158u8, 174u8, 137u8, 77u8, 251u8,
                            105u8, 113u8, 165u8, 46u8, 39u8, 55u8, 166u8, 79u8, 103u8, 81u8, 121u8,
                            37u8,
                        ],
                    )
                }
                #[doc = "Exchanges a member with a new account and the same existing rank."]
                #[doc = ""]
                #[doc = "- `origin`: Must be the `ExchangeOrigin`."]
                #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."]
                #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."]
                pub fn exchange_member(
                    &self,
                    who: types::exchange_member::Who,
                    new_who: types::exchange_member::NewWho,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ExchangeMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipCollective",
                        "exchange_member",
                        types::ExchangeMember { who, new_who },
                        [
                            240u8, 208u8, 76u8, 147u8, 117u8, 23u8, 91u8, 37u8, 22u8, 101u8, 53u8,
                            247u8, 161u8, 94u8, 109u8, 233u8, 104u8, 129u8, 67u8, 31u8, 223u8,
                            182u8, 50u8, 233u8, 120u8, 129u8, 224u8, 135u8, 52u8, 162u8, 26u8,
                            189u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_ranked_collective::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A member `who` has been added."]
            pub struct MemberAdded {
                pub who: member_added::Who,
            }
            pub mod member_added {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MemberAdded {
                const PALLET: &'static str = "FellowshipCollective";
                const EVENT: &'static str = "MemberAdded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The member `who`se rank has been changed to the given `rank`."]
            pub struct RankChanged {
                pub who: rank_changed::Who,
                pub rank: rank_changed::Rank,
            }
            pub mod rank_changed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Rank = ::core::primitive::u16;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RankChanged {
                const PALLET: &'static str = "FellowshipCollective";
                const EVENT: &'static str = "RankChanged";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The member `who` of given `rank` has been removed from the collective."]
            pub struct MemberRemoved {
                pub who: member_removed::Who,
                pub rank: member_removed::Rank,
            }
            pub mod member_removed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Rank = ::core::primitive::u16;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MemberRemoved {
                const PALLET: &'static str = "FellowshipCollective";
                const EVENT: &'static str = "MemberRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The member `who` has voted for the `poll` with the given `vote` leading to an updated"]
            #[doc = "`tally`."]
            pub struct Voted {
                pub who: voted::Who,
                pub poll: voted::Poll,
                pub vote: voted::Vote,
                pub tally: voted::Tally,
            }
            pub mod voted {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Poll = ::core::primitive::u32;
                pub type Vote = runtime_types::pallet_ranked_collective::VoteRecord;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Voted {
                const PALLET: &'static str = "FellowshipCollective";
                const EVENT: &'static str = "Voted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The member `who` had their `AccountId` changed to `new_who`."]
            pub struct MemberExchanged {
                pub who: member_exchanged::Who,
                pub new_who: member_exchanged::NewWho,
            }
            pub mod member_exchanged {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type NewWho = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MemberExchanged {
                const PALLET: &'static str = "FellowshipCollective";
                const EVENT: &'static str = "MemberExchanged";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod member_count {
                    use super::runtime_types;
                    pub type MemberCount = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u16;
                }
                pub mod members {
                    use super::runtime_types;
                    pub type Members = runtime_types::pallet_ranked_collective::MemberRecord;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod id_to_index {
                    use super::runtime_types;
                    pub type IdToIndex = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u16;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod index_to_id {
                    use super::runtime_types;
                    pub type IndexToId = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param0 = ::core::primitive::u16;
                    pub type Param1 = ::core::primitive::u32;
                }
                pub mod voting {
                    use super::runtime_types;
                    pub type Voting = runtime_types::pallet_ranked_collective::VoteRecord;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod voting_cleanup {
                    use super::runtime_types;
                    pub type VotingCleanup =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The number of members in the collective who have at least the rank according to the index"]
                #[doc = " of the vec."]
                pub fn member_count_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::member_count::MemberCount,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "MemberCount",
                        (),
                        [
                            0u8, 141u8, 66u8, 91u8, 155u8, 74u8, 17u8, 191u8, 143u8, 41u8, 231u8,
                            56u8, 123u8, 219u8, 145u8, 27u8, 197u8, 62u8, 118u8, 237u8, 30u8, 7u8,
                            107u8, 96u8, 95u8, 17u8, 242u8, 206u8, 246u8, 79u8, 53u8, 214u8,
                        ],
                    )
                }
                #[doc = " The number of members in the collective who have at least the rank according to the index"]
                #[doc = " of the vec."]
                pub fn member_count(
                    &self,
                    _0: types::member_count::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::member_count::Param0,
                    >,
                    types::member_count::MemberCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "MemberCount",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            0u8, 141u8, 66u8, 91u8, 155u8, 74u8, 17u8, 191u8, 143u8, 41u8, 231u8,
                            56u8, 123u8, 219u8, 145u8, 27u8, 197u8, 62u8, 118u8, 237u8, 30u8, 7u8,
                            107u8, 96u8, 95u8, 17u8, 242u8, 206u8, 246u8, 79u8, 53u8, 214u8,
                        ],
                    )
                }
                #[doc = " The current members of the collective."]
                pub fn members_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::members::Members,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "Members",
                        (),
                        [
                            101u8, 183u8, 36u8, 241u8, 67u8, 8u8, 252u8, 116u8, 110u8, 153u8,
                            117u8, 210u8, 128u8, 80u8, 130u8, 163u8, 38u8, 76u8, 230u8, 107u8,
                            112u8, 90u8, 102u8, 24u8, 217u8, 2u8, 244u8, 197u8, 103u8, 215u8,
                            247u8, 133u8,
                        ],
                    )
                }
                #[doc = " The current members of the collective."]
                pub fn members(
                    &self,
                    _0: types::members::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::members::Param0,
                    >,
                    types::members::Members,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "Members",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            101u8, 183u8, 36u8, 241u8, 67u8, 8u8, 252u8, 116u8, 110u8, 153u8,
                            117u8, 210u8, 128u8, 80u8, 130u8, 163u8, 38u8, 76u8, 230u8, 107u8,
                            112u8, 90u8, 102u8, 24u8, 217u8, 2u8, 244u8, 197u8, 103u8, 215u8,
                            247u8, 133u8,
                        ],
                    )
                }
                #[doc = " The index of each ranks's member into the group of members who have at least that rank."]
                pub fn id_to_index_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::id_to_index::IdToIndex,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IdToIndex",
                        (),
                        [
                            121u8, 225u8, 69u8, 131u8, 194u8, 3u8, 82u8, 27u8, 129u8, 152u8, 157u8,
                            45u8, 39u8, 47u8, 166u8, 28u8, 42u8, 92u8, 217u8, 189u8, 160u8, 102u8,
                            153u8, 196u8, 94u8, 48u8, 248u8, 113u8, 164u8, 111u8, 27u8, 9u8,
                        ],
                    )
                }
                #[doc = " The index of each ranks's member into the group of members who have at least that rank."]
                pub fn id_to_index_iter1(
                    &self,
                    _0: types::id_to_index::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::id_to_index::Param0,
                    >,
                    types::id_to_index::IdToIndex,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IdToIndex",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            121u8, 225u8, 69u8, 131u8, 194u8, 3u8, 82u8, 27u8, 129u8, 152u8, 157u8,
                            45u8, 39u8, 47u8, 166u8, 28u8, 42u8, 92u8, 217u8, 189u8, 160u8, 102u8,
                            153u8, 196u8, 94u8, 48u8, 248u8, 113u8, 164u8, 111u8, 27u8, 9u8,
                        ],
                    )
                }
                #[doc = " The index of each ranks's member into the group of members who have at least that rank."]
                pub fn id_to_index(
                    &self,
                    _0: types::id_to_index::Param0,
                    _1: types::id_to_index::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::id_to_index::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::id_to_index::Param1,
                        >,
                    ),
                    types::id_to_index::IdToIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IdToIndex",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            121u8, 225u8, 69u8, 131u8, 194u8, 3u8, 82u8, 27u8, 129u8, 152u8, 157u8,
                            45u8, 39u8, 47u8, 166u8, 28u8, 42u8, 92u8, 217u8, 189u8, 160u8, 102u8,
                            153u8, 196u8, 94u8, 48u8, 248u8, 113u8, 164u8, 111u8, 27u8, 9u8,
                        ],
                    )
                }
                #[doc = " The members in the collective by index. All indices in the range `0..MemberCount` will"]
                #[doc = " return `Some`, however a member's index is not guaranteed to remain unchanged over time."]
                pub fn index_to_id_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::index_to_id::IndexToId,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IndexToId",
                        (),
                        [
                            110u8, 48u8, 214u8, 224u8, 56u8, 195u8, 186u8, 24u8, 111u8, 37u8, 15u8,
                            153u8, 245u8, 101u8, 229u8, 149u8, 216u8, 185u8, 7u8, 242u8, 196u8,
                            29u8, 205u8, 243u8, 162u8, 92u8, 71u8, 253u8, 102u8, 152u8, 137u8,
                            70u8,
                        ],
                    )
                }
                #[doc = " The members in the collective by index. All indices in the range `0..MemberCount` will"]
                #[doc = " return `Some`, however a member's index is not guaranteed to remain unchanged over time."]
                pub fn index_to_id_iter1(
                    &self,
                    _0: types::index_to_id::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::index_to_id::Param0,
                    >,
                    types::index_to_id::IndexToId,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IndexToId",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            110u8, 48u8, 214u8, 224u8, 56u8, 195u8, 186u8, 24u8, 111u8, 37u8, 15u8,
                            153u8, 245u8, 101u8, 229u8, 149u8, 216u8, 185u8, 7u8, 242u8, 196u8,
                            29u8, 205u8, 243u8, 162u8, 92u8, 71u8, 253u8, 102u8, 152u8, 137u8,
                            70u8,
                        ],
                    )
                }
                #[doc = " The members in the collective by index. All indices in the range `0..MemberCount` will"]
                #[doc = " return `Some`, however a member's index is not guaranteed to remain unchanged over time."]
                pub fn index_to_id(
                    &self,
                    _0: types::index_to_id::Param0,
                    _1: types::index_to_id::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::index_to_id::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::index_to_id::Param1,
                        >,
                    ),
                    types::index_to_id::IndexToId,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "IndexToId",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            110u8, 48u8, 214u8, 224u8, 56u8, 195u8, 186u8, 24u8, 111u8, 37u8, 15u8,
                            153u8, 245u8, 101u8, 229u8, 149u8, 216u8, 185u8, 7u8, 242u8, 196u8,
                            29u8, 205u8, 243u8, 162u8, 92u8, 71u8, 253u8, 102u8, 152u8, 137u8,
                            70u8,
                        ],
                    )
                }
                #[doc = " Votes on a given proposal, if it is ongoing."]
                pub fn voting_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::voting::Voting,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "Voting",
                        (),
                        [
                            180u8, 146u8, 236u8, 178u8, 30u8, 50u8, 161u8, 50u8, 140u8, 110u8,
                            220u8, 1u8, 109u8, 209u8, 17u8, 94u8, 234u8, 223u8, 222u8, 177u8,
                            243u8, 194u8, 246u8, 48u8, 178u8, 86u8, 30u8, 185u8, 56u8, 206u8,
                            175u8, 18u8,
                        ],
                    )
                }
                #[doc = " Votes on a given proposal, if it is ongoing."]
                pub fn voting_iter1(
                    &self,
                    _0: types::voting::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::voting::Param0,
                    >,
                    types::voting::Voting,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "Voting",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            180u8, 146u8, 236u8, 178u8, 30u8, 50u8, 161u8, 50u8, 140u8, 110u8,
                            220u8, 1u8, 109u8, 209u8, 17u8, 94u8, 234u8, 223u8, 222u8, 177u8,
                            243u8, 194u8, 246u8, 48u8, 178u8, 86u8, 30u8, 185u8, 56u8, 206u8,
                            175u8, 18u8,
                        ],
                    )
                }
                #[doc = " Votes on a given proposal, if it is ongoing."]
                pub fn voting(
                    &self,
                    _0: types::voting::Param0,
                    _1: types::voting::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::voting::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::voting::Param1,
                        >,
                    ),
                    types::voting::Voting,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "Voting",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            180u8, 146u8, 236u8, 178u8, 30u8, 50u8, 161u8, 50u8, 140u8, 110u8,
                            220u8, 1u8, 109u8, 209u8, 17u8, 94u8, 234u8, 223u8, 222u8, 177u8,
                            243u8, 194u8, 246u8, 48u8, 178u8, 86u8, 30u8, 185u8, 56u8, 206u8,
                            175u8, 18u8,
                        ],
                    )
                }
                pub fn voting_cleanup_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::voting_cleanup::VotingCleanup,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "VotingCleanup",
                        (),
                        [
                            223u8, 130u8, 79u8, 104u8, 94u8, 221u8, 222u8, 72u8, 187u8, 95u8,
                            231u8, 59u8, 28u8, 119u8, 191u8, 63u8, 40u8, 186u8, 58u8, 254u8, 14u8,
                            233u8, 152u8, 36u8, 2u8, 231u8, 120u8, 13u8, 120u8, 211u8, 232u8, 11u8,
                        ],
                    )
                }
                pub fn voting_cleanup(
                    &self,
                    _0: types::voting_cleanup::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::voting_cleanup::Param0,
                    >,
                    types::voting_cleanup::VotingCleanup,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipCollective",
                        "VotingCleanup",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            223u8, 130u8, 79u8, 104u8, 94u8, 221u8, 222u8, 72u8, 187u8, 95u8,
                            231u8, 59u8, 28u8, 119u8, 191u8, 63u8, 40u8, 186u8, 58u8, 254u8, 14u8,
                            233u8, 152u8, 36u8, 2u8, 231u8, 120u8, 13u8, 120u8, 211u8, 232u8, 11u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod fellowship_referenda {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_referenda::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_referenda::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose a referendum on a privileged action."]
                #[doc = ""]
                #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"]
                #[doc = "  available."]
                #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."]
                #[doc = "- `proposal`: The proposal."]
                #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."]
                #[doc = ""]
                #[doc = "Emits `Submitted`."]
                pub struct Submit {
                    pub proposal_origin:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<submit::ProposalOrigin>,
                    pub proposal: submit::Proposal,
                    pub enactment_moment: submit::EnactmentMoment,
                }
                pub mod submit {
                    use super::runtime_types;
                    pub type ProposalOrigin = runtime_types::rococo_runtime::OriginCaller;
                    pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                        runtime_types::rococo_runtime::RuntimeCall,
                        runtime_types::sp_runtime::traits::BlakeTwo256,
                    >;
                    pub type EnactmentMoment =
                        runtime_types::frame_support::traits::schedule::DispatchTime<
                            ::core::primitive::u32,
                        >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Submit {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "submit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Post the Decision Deposit for a referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"]
                #[doc = "  referendum's track's Decision Deposit."]
                #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"]
                #[doc = "  posted."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositPlaced`."]
                pub struct PlaceDecisionDeposit {
                    pub index: place_decision_deposit::Index,
                }
                pub mod place_decision_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceDecisionDeposit {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "place_decision_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositRefunded`."]
                pub struct RefundDecisionDeposit {
                    pub index: refund_decision_deposit::Index,
                }
                pub mod refund_decision_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RefundDecisionDeposit {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "refund_decision_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an ongoing referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `CancelOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Cancelled`."]
                pub struct Cancel {
                    pub index: cancel::Index,
                }
                pub mod cancel {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Cancel {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "cancel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an ongoing referendum and slash the deposits."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `KillOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Killed` and `DepositSlashed`."]
                pub struct Kill {
                    pub index: kill::Index,
                }
                pub mod kill {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Kill {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "kill";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Advance a referendum onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `index`: the referendum to be advanced."]
                pub struct NudgeReferendum {
                    pub index: nudge_referendum::Index,
                }
                pub mod nudge_referendum {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for NudgeReferendum {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "nudge_referendum";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Advance a track onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `track`: the track to be advanced."]
                #[doc = ""]
                #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"]
                #[doc = "`DecidingCount` is not yet updated. This means that we should either:"]
                #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"]
                #[doc = "- decrement `DecidingCount`."]
                pub struct OneFewerDeciding {
                    pub track: one_fewer_deciding::Track,
                }
                pub mod one_fewer_deciding {
                    use super::runtime_types;
                    pub type Track = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for OneFewerDeciding {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "one_fewer_deciding";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `SubmissionDepositRefunded`."]
                pub struct RefundSubmissionDeposit {
                    pub index: refund_submission_deposit::Index,
                }
                pub mod refund_submission_deposit {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RefundSubmissionDeposit {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "refund_submission_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set or clear metadata of a referendum."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"]
                #[doc = "  metadata of a finished referendum."]
                #[doc = "- `index`:  The index of a referendum to set or clear metadata for."]
                #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."]
                pub struct SetMetadata {
                    pub index: set_metadata::Index,
                    pub maybe_hash: set_metadata::MaybeHash,
                }
                pub mod set_metadata {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type MaybeHash =
                        ::core::option::Option<::subxt::ext::subxt_core::utils::H256>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMetadata {
                    const PALLET: &'static str = "FellowshipReferenda";
                    const CALL: &'static str = "set_metadata";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Propose a referendum on a privileged action."]
                #[doc = ""]
                #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"]
                #[doc = "  available."]
                #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."]
                #[doc = "- `proposal`: The proposal."]
                #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."]
                #[doc = ""]
                #[doc = "Emits `Submitted`."]
                pub fn submit(
                    &self,
                    proposal_origin: types::submit::ProposalOrigin,
                    proposal: types::submit::Proposal,
                    enactment_moment: types::submit::EnactmentMoment,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Submit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "submit",
                        types::Submit {
                            proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                proposal_origin,
                            ),
                            proposal,
                            enactment_moment,
                        },
                        [
                            86u8, 84u8, 96u8, 114u8, 247u8, 25u8, 6u8, 101u8, 96u8, 162u8, 250u8,
                            43u8, 112u8, 243u8, 41u8, 89u8, 137u8, 193u8, 155u8, 47u8, 105u8,
                            195u8, 219u8, 139u8, 202u8, 232u8, 181u8, 48u8, 72u8, 230u8, 24u8,
                            154u8,
                        ],
                    )
                }
                #[doc = "Post the Decision Deposit for a referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"]
                #[doc = "  referendum's track's Decision Deposit."]
                #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"]
                #[doc = "  posted."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositPlaced`."]
                pub fn place_decision_deposit(
                    &self,
                    index: types::place_decision_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlaceDecisionDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "place_decision_deposit",
                        types::PlaceDecisionDeposit { index },
                        [
                            247u8, 158u8, 55u8, 191u8, 188u8, 200u8, 3u8, 47u8, 20u8, 175u8, 86u8,
                            203u8, 52u8, 253u8, 91u8, 131u8, 21u8, 213u8, 56u8, 68u8, 40u8, 84u8,
                            184u8, 30u8, 9u8, 193u8, 63u8, 182u8, 178u8, 241u8, 247u8, 220u8,
                        ],
                    )
                }
                #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `DecisionDepositRefunded`."]
                pub fn refund_decision_deposit(
                    &self,
                    index: types::refund_decision_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RefundDecisionDeposit,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "refund_decision_deposit",
                        types::RefundDecisionDeposit { index },
                        [
                            159u8, 19u8, 35u8, 216u8, 114u8, 105u8, 18u8, 42u8, 148u8, 151u8,
                            136u8, 92u8, 117u8, 30u8, 29u8, 41u8, 238u8, 58u8, 195u8, 91u8, 115u8,
                            135u8, 96u8, 99u8, 154u8, 233u8, 8u8, 249u8, 145u8, 165u8, 77u8, 164u8,
                        ],
                    )
                }
                #[doc = "Cancel an ongoing referendum."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `CancelOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Cancelled`."]
                pub fn cancel(
                    &self,
                    index: types::cancel::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Cancel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "cancel",
                        types::Cancel { index },
                        [
                            55u8, 206u8, 119u8, 156u8, 238u8, 165u8, 193u8, 73u8, 242u8, 13u8,
                            212u8, 75u8, 136u8, 156u8, 151u8, 14u8, 35u8, 41u8, 156u8, 107u8, 60u8,
                            190u8, 39u8, 216u8, 8u8, 74u8, 213u8, 130u8, 160u8, 131u8, 237u8,
                            122u8,
                        ],
                    )
                }
                #[doc = "Cancel an ongoing referendum and slash the deposits."]
                #[doc = ""]
                #[doc = "- `origin`: must be the `KillOrigin`."]
                #[doc = "- `index`: The index of the referendum to be cancelled."]
                #[doc = ""]
                #[doc = "Emits `Killed` and `DepositSlashed`."]
                pub fn kill(
                    &self,
                    index: types::kill::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Kill>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "kill",
                        types::Kill { index },
                        [
                            50u8, 89u8, 57u8, 0u8, 87u8, 129u8, 113u8, 140u8, 179u8, 178u8, 126u8,
                            198u8, 92u8, 92u8, 189u8, 64u8, 123u8, 232u8, 57u8, 227u8, 223u8,
                            219u8, 73u8, 217u8, 179u8, 44u8, 210u8, 125u8, 180u8, 10u8, 143u8,
                            48u8,
                        ],
                    )
                }
                #[doc = "Advance a referendum onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `index`: the referendum to be advanced."]
                pub fn nudge_referendum(
                    &self,
                    index: types::nudge_referendum::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::NudgeReferendum>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "nudge_referendum",
                        types::NudgeReferendum { index },
                        [
                            75u8, 99u8, 172u8, 30u8, 170u8, 150u8, 211u8, 229u8, 249u8, 128u8,
                            194u8, 246u8, 100u8, 142u8, 193u8, 184u8, 232u8, 81u8, 29u8, 17u8,
                            99u8, 91u8, 236u8, 85u8, 230u8, 226u8, 57u8, 115u8, 45u8, 170u8, 54u8,
                            213u8,
                        ],
                    )
                }
                #[doc = "Advance a track onto its next logical state. Only used internally."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Root`."]
                #[doc = "- `track`: the track to be advanced."]
                #[doc = ""]
                #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"]
                #[doc = "`DecidingCount` is not yet updated. This means that we should either:"]
                #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"]
                #[doc = "- decrement `DecidingCount`."]
                pub fn one_fewer_deciding(
                    &self,
                    track: types::one_fewer_deciding::Track,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::OneFewerDeciding>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "one_fewer_deciding",
                        types::OneFewerDeciding { track },
                        [
                            15u8, 84u8, 79u8, 231u8, 21u8, 239u8, 244u8, 143u8, 183u8, 215u8,
                            181u8, 25u8, 225u8, 195u8, 95u8, 171u8, 17u8, 156u8, 182u8, 128u8,
                            111u8, 40u8, 151u8, 102u8, 196u8, 55u8, 36u8, 212u8, 89u8, 190u8,
                            131u8, 167u8,
                        ],
                    )
                }
                #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."]
                #[doc = ""]
                #[doc = "- `origin`: must be `Signed` or `Root`."]
                #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"]
                #[doc = "  refunded."]
                #[doc = ""]
                #[doc = "Emits `SubmissionDepositRefunded`."]
                pub fn refund_submission_deposit(
                    &self,
                    index: types::refund_submission_deposit::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RefundSubmissionDeposit,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "refund_submission_deposit",
                        types::RefundSubmissionDeposit { index },
                        [
                            20u8, 217u8, 115u8, 6u8, 1u8, 60u8, 54u8, 136u8, 35u8, 41u8, 38u8,
                            23u8, 85u8, 100u8, 141u8, 126u8, 30u8, 160u8, 61u8, 46u8, 134u8, 98u8,
                            82u8, 38u8, 211u8, 124u8, 208u8, 222u8, 210u8, 10u8, 155u8, 122u8,
                        ],
                    )
                }
                #[doc = "Set or clear metadata of a referendum."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"]
                #[doc = "  metadata of a finished referendum."]
                #[doc = "- `index`:  The index of a referendum to set or clear metadata for."]
                #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."]
                pub fn set_metadata(
                    &self,
                    index: types::set_metadata::Index,
                    maybe_hash: types::set_metadata::MaybeHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMetadata>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "FellowshipReferenda",
                        "set_metadata",
                        types::SetMetadata { index, maybe_hash },
                        [
                            207u8, 29u8, 146u8, 233u8, 219u8, 205u8, 88u8, 118u8, 106u8, 61u8,
                            124u8, 101u8, 2u8, 41u8, 169u8, 70u8, 114u8, 189u8, 162u8, 118u8, 1u8,
                            108u8, 234u8, 98u8, 245u8, 245u8, 183u8, 126u8, 89u8, 13u8, 112u8,
                            88u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_referenda::pallet::Event2;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been submitted."]
            pub struct Submitted {
                pub index: submitted::Index,
                pub track: submitted::Track,
                pub proposal: submitted::Proposal,
            }
            pub mod submitted {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Track = ::core::primitive::u16;
                pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                    runtime_types::rococo_runtime::RuntimeCall,
                    runtime_types::sp_runtime::traits::BlakeTwo256,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Submitted {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Submitted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The decision deposit has been placed."]
            pub struct DecisionDepositPlaced {
                pub index: decision_deposit_placed::Index,
                pub who: decision_deposit_placed::Who,
                pub amount: decision_deposit_placed::Amount,
            }
            pub mod decision_deposit_placed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionDepositPlaced {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "DecisionDepositPlaced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The decision deposit has been refunded."]
            pub struct DecisionDepositRefunded {
                pub index: decision_deposit_refunded::Index,
                pub who: decision_deposit_refunded::Who,
                pub amount: decision_deposit_refunded::Amount,
            }
            pub mod decision_deposit_refunded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionDepositRefunded {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "DecisionDepositRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit has been slashed."]
            pub struct DepositSlashed {
                pub who: deposit_slashed::Who,
                pub amount: deposit_slashed::Amount,
            }
            pub mod deposit_slashed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositSlashed {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "DepositSlashed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has moved into the deciding phase."]
            pub struct DecisionStarted {
                pub index: decision_started::Index,
                pub track: decision_started::Track,
                pub proposal: decision_started::Proposal,
                pub tally: decision_started::Tally,
            }
            pub mod decision_started {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Track = ::core::primitive::u16;
                pub type Proposal = runtime_types::frame_support::traits::preimages::Bounded<
                    runtime_types::rococo_runtime::RuntimeCall,
                    runtime_types::sp_runtime::traits::BlakeTwo256,
                >;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DecisionStarted {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "DecisionStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ConfirmStarted {
                pub index: confirm_started::Index,
            }
            pub mod confirm_started {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ConfirmStarted {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "ConfirmStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ConfirmAborted {
                pub index: confirm_aborted::Index,
            }
            pub mod confirm_aborted {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ConfirmAborted {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "ConfirmAborted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has ended its confirmation phase and is ready for approval."]
            pub struct Confirmed {
                pub index: confirmed::Index,
                pub tally: confirmed::Tally,
            }
            pub mod confirmed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Confirmed {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Confirmed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been approved and its proposal has been scheduled."]
            pub struct Approved {
                pub index: approved::Index,
            }
            pub mod approved {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Approved {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Approved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A proposal has been rejected by referendum."]
            pub struct Rejected {
                pub index: rejected::Index,
                pub tally: rejected::Tally,
            }
            pub mod rejected {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Rejected {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Rejected";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been timed out without being decided."]
            pub struct TimedOut {
                pub index: timed_out::Index,
                pub tally: timed_out::Tally,
            }
            pub mod timed_out {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TimedOut {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "TimedOut";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been cancelled."]
            pub struct Cancelled {
                pub index: cancelled::Index,
                pub tally: cancelled::Tally,
            }
            pub mod cancelled {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Cancelled {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Cancelled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A referendum has been killed."]
            pub struct Killed {
                pub index: killed::Index,
                pub tally: killed::Tally,
            }
            pub mod killed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Tally = runtime_types::pallet_ranked_collective::Tally;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Killed {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "Killed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The submission deposit has been refunded."]
            pub struct SubmissionDepositRefunded {
                pub index: submission_deposit_refunded::Index,
                pub who: submission_deposit_refunded::Who,
                pub amount: submission_deposit_refunded::Amount,
            }
            pub mod submission_deposit_refunded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubmissionDepositRefunded {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "SubmissionDepositRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Metadata for a referendum has been set."]
            pub struct MetadataSet {
                pub index: metadata_set::Index,
                pub hash: metadata_set::Hash,
            }
            pub mod metadata_set {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MetadataSet {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "MetadataSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Metadata for a referendum has been cleared."]
            pub struct MetadataCleared {
                pub index: metadata_cleared::Index,
                pub hash: metadata_cleared::Hash,
            }
            pub mod metadata_cleared {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MetadataCleared {
                const PALLET: &'static str = "FellowshipReferenda";
                const EVENT: &'static str = "MetadataCleared";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod referendum_count {
                    use super::runtime_types;
                    pub type ReferendumCount = ::core::primitive::u32;
                }
                pub mod referendum_info_for {
                    use super::runtime_types;
                    pub type ReferendumInfoFor =
                        runtime_types::pallet_referenda::types::ReferendumInfo<
                            ::core::primitive::u16,
                            runtime_types::rococo_runtime::OriginCaller,
                            ::core::primitive::u32,
                            runtime_types::frame_support::traits::preimages::Bounded<
                                runtime_types::rococo_runtime::RuntimeCall,
                                runtime_types::sp_runtime::traits::BlakeTwo256,
                            >,
                            ::core::primitive::u128,
                            runtime_types::pallet_ranked_collective::Tally,
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (::core::primitive::u32, ::core::primitive::u32),
                        >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod track_queue {
                    use super::runtime_types;
                    pub type TrackQueue =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u32,
                            ::core::primitive::u32,
                        )>;
                    pub type Param0 = ::core::primitive::u16;
                }
                pub mod deciding_count {
                    use super::runtime_types;
                    pub type DecidingCount = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u16;
                }
                pub mod metadata_of {
                    use super::runtime_types;
                    pub type MetadataOf = ::subxt::ext::subxt_core::utils::H256;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The next free referendum index, aka the number of referenda started so far."]
                pub fn referendum_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::referendum_count::ReferendumCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "ReferendumCount",
                        (),
                        [
                            64u8, 145u8, 232u8, 153u8, 121u8, 87u8, 128u8, 253u8, 170u8, 192u8,
                            139u8, 18u8, 0u8, 33u8, 243u8, 11u8, 238u8, 222u8, 244u8, 5u8, 247u8,
                            198u8, 149u8, 31u8, 122u8, 208u8, 86u8, 179u8, 166u8, 167u8, 93u8,
                            67u8,
                        ],
                    )
                }
                #[doc = " Information concerning any given referendum."]
                pub fn referendum_info_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::referendum_info_for::ReferendumInfoFor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "ReferendumInfoFor",
                        (),
                        [
                            100u8, 38u8, 100u8, 224u8, 1u8, 49u8, 248u8, 77u8, 107u8, 120u8, 117u8,
                            239u8, 75u8, 87u8, 27u8, 160u8, 174u8, 225u8, 219u8, 216u8, 166u8,
                            213u8, 47u8, 135u8, 28u8, 159u8, 28u8, 139u8, 84u8, 249u8, 223u8, 27u8,
                        ],
                    )
                }
                #[doc = " Information concerning any given referendum."]
                pub fn referendum_info_for(
                    &self,
                    _0: types::referendum_info_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::referendum_info_for::Param0,
                    >,
                    types::referendum_info_for::ReferendumInfoFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "ReferendumInfoFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            100u8, 38u8, 100u8, 224u8, 1u8, 49u8, 248u8, 77u8, 107u8, 120u8, 117u8,
                            239u8, 75u8, 87u8, 27u8, 160u8, 174u8, 225u8, 219u8, 216u8, 166u8,
                            213u8, 47u8, 135u8, 28u8, 159u8, 28u8, 139u8, 84u8, 249u8, 223u8, 27u8,
                        ],
                    )
                }
                #[doc = " The sorted list of referenda ready to be decided but not yet being decided, ordered by"]
                #[doc = " conviction-weighted approvals."]
                #[doc = ""]
                #[doc = " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`."]
                pub fn track_queue_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::track_queue::TrackQueue,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "TrackQueue",
                        (),
                        [
                            187u8, 113u8, 225u8, 99u8, 159u8, 207u8, 182u8, 41u8, 116u8, 136u8,
                            119u8, 196u8, 152u8, 50u8, 192u8, 22u8, 171u8, 182u8, 237u8, 228u8,
                            80u8, 255u8, 227u8, 141u8, 155u8, 83u8, 71u8, 131u8, 118u8, 109u8,
                            186u8, 65u8,
                        ],
                    )
                }
                #[doc = " The sorted list of referenda ready to be decided but not yet being decided, ordered by"]
                #[doc = " conviction-weighted approvals."]
                #[doc = ""]
                #[doc = " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`."]
                pub fn track_queue(
                    &self,
                    _0: types::track_queue::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::track_queue::Param0,
                    >,
                    types::track_queue::TrackQueue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "TrackQueue",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            187u8, 113u8, 225u8, 99u8, 159u8, 207u8, 182u8, 41u8, 116u8, 136u8,
                            119u8, 196u8, 152u8, 50u8, 192u8, 22u8, 171u8, 182u8, 237u8, 228u8,
                            80u8, 255u8, 227u8, 141u8, 155u8, 83u8, 71u8, 131u8, 118u8, 109u8,
                            186u8, 65u8,
                        ],
                    )
                }
                #[doc = " The number of referenda being decided currently."]
                pub fn deciding_count_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::deciding_count::DecidingCount,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "DecidingCount",
                        (),
                        [
                            203u8, 89u8, 158u8, 179u8, 194u8, 82u8, 248u8, 162u8, 93u8, 140u8,
                            146u8, 51u8, 110u8, 232u8, 51u8, 1u8, 128u8, 212u8, 199u8, 14u8, 182u8,
                            103u8, 47u8, 252u8, 126u8, 108u8, 166u8, 69u8, 252u8, 179u8, 126u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " The number of referenda being decided currently."]
                pub fn deciding_count(
                    &self,
                    _0: types::deciding_count::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::deciding_count::Param0,
                    >,
                    types::deciding_count::DecidingCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "DecidingCount",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            203u8, 89u8, 158u8, 179u8, 194u8, 82u8, 248u8, 162u8, 93u8, 140u8,
                            146u8, 51u8, 110u8, 232u8, 51u8, 1u8, 128u8, 212u8, 199u8, 14u8, 182u8,
                            103u8, 47u8, 252u8, 126u8, 108u8, 166u8, 69u8, 252u8, 179u8, 126u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " The metadata is a general information concerning the referendum."]
                #[doc = " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON"]
                #[doc = " dump or IPFS hash of a JSON file."]
                #[doc = ""]
                #[doc = " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)"]
                #[doc = " large preimages."]
                pub fn metadata_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::metadata_of::MetadataOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "MetadataOf",
                        (),
                        [
                            159u8, 250u8, 56u8, 189u8, 247u8, 165u8, 206u8, 166u8, 91u8, 139u8,
                            124u8, 164u8, 25u8, 246u8, 199u8, 36u8, 159u8, 56u8, 227u8, 136u8, 4u8,
                            45u8, 193u8, 72u8, 200u8, 164u8, 39u8, 207u8, 224u8, 124u8, 191u8,
                            110u8,
                        ],
                    )
                }
                #[doc = " The metadata is a general information concerning the referendum."]
                #[doc = " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON"]
                #[doc = " dump or IPFS hash of a JSON file."]
                #[doc = ""]
                #[doc = " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)"]
                #[doc = " large preimages."]
                pub fn metadata_of(
                    &self,
                    _0: types::metadata_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::metadata_of::Param0,
                    >,
                    types::metadata_of::MetadataOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "MetadataOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            159u8, 250u8, 56u8, 189u8, 247u8, 165u8, 206u8, 166u8, 91u8, 139u8,
                            124u8, 164u8, 25u8, 246u8, 199u8, 36u8, 159u8, 56u8, 227u8, 136u8, 4u8,
                            45u8, 193u8, 72u8, 200u8, 164u8, 39u8, 207u8, 224u8, 124u8, 191u8,
                            110u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum amount to be used as a deposit for a public referendum proposal."]
                pub fn submission_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "SubmissionDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " Maximum size of the referendum queue for a single track."]
                pub fn max_queued(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "MaxQueued",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks after submission that a referendum must begin being decided by."]
                #[doc = " Once this passes, then anyone may cancel the referendum."]
                pub fn undeciding_timeout(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "UndecidingTimeout",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Quantization level for the referendum wakeup scheduler. A higher number will result in"]
                #[doc = " fewer storage reads/writes needed for smaller voters, but also result in delays to the"]
                #[doc = " automatic referendum status changes. Explicit servicing instructions are unaffected."]
                pub fn alarm_interval(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "AlarmInterval",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " A list of tracks."]
                #[doc = ""]
                #[doc = " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate."]
                pub fn tracks(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::core::primitive::u16,
                        runtime_types::pallet_referenda::types::TrackDetails<
                            ::core::primitive::u128,
                            ::core::primitive::u32,
                            ::subxt::ext::subxt_core::alloc::string::String,
                        >,
                    )>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "FellowshipReferenda",
                        "Tracks",
                        [
                            35u8, 226u8, 207u8, 234u8, 184u8, 139u8, 187u8, 184u8, 128u8, 199u8,
                            227u8, 15u8, 31u8, 196u8, 5u8, 207u8, 138u8, 174u8, 130u8, 201u8,
                            200u8, 113u8, 86u8, 93u8, 221u8, 243u8, 229u8, 24u8, 18u8, 150u8, 56u8,
                            159u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod origins {
        use super::root_mod;
        use super::runtime_types;
    }
    pub mod whitelist {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_whitelist::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_whitelist::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct WhitelistCall {
                    pub call_hash: whitelist_call::CallHash,
                }
                pub mod whitelist_call {
                    use super::runtime_types;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for WhitelistCall {
                    const PALLET: &'static str = "Whitelist";
                    const CALL: &'static str = "whitelist_call";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct RemoveWhitelistedCall {
                    pub call_hash: remove_whitelisted_call::CallHash,
                }
                pub mod remove_whitelisted_call {
                    use super::runtime_types;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveWhitelistedCall {
                    const PALLET: &'static str = "Whitelist";
                    const CALL: &'static str = "remove_whitelisted_call";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DispatchWhitelistedCall {
                    pub call_hash: dispatch_whitelisted_call::CallHash,
                    pub call_encoded_len: dispatch_whitelisted_call::CallEncodedLen,
                    pub call_weight_witness: dispatch_whitelisted_call::CallWeightWitness,
                }
                pub mod dispatch_whitelisted_call {
                    use super::runtime_types;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                    pub type CallEncodedLen = ::core::primitive::u32;
                    pub type CallWeightWitness = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DispatchWhitelistedCall {
                    const PALLET: &'static str = "Whitelist";
                    const CALL: &'static str = "dispatch_whitelisted_call";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DispatchWhitelistedCallWithPreimage {
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        dispatch_whitelisted_call_with_preimage::Call,
                    >,
                }
                pub mod dispatch_whitelisted_call_with_preimage {
                    use super::runtime_types;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DispatchWhitelistedCallWithPreimage {
                    const PALLET: &'static str = "Whitelist";
                    const CALL: &'static str = "dispatch_whitelisted_call_with_preimage";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                pub fn whitelist_call(
                    &self,
                    call_hash: types::whitelist_call::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::WhitelistCall>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Whitelist",
                        "whitelist_call",
                        types::WhitelistCall { call_hash },
                        [
                            121u8, 165u8, 49u8, 37u8, 127u8, 38u8, 126u8, 213u8, 115u8, 148u8,
                            122u8, 211u8, 24u8, 91u8, 147u8, 27u8, 87u8, 210u8, 84u8, 104u8, 229u8,
                            155u8, 133u8, 30u8, 34u8, 249u8, 107u8, 110u8, 31u8, 191u8, 128u8,
                            28u8,
                        ],
                    )
                }
                pub fn remove_whitelisted_call(
                    &self,
                    call_hash: types::remove_whitelisted_call::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveWhitelistedCall,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Whitelist",
                        "remove_whitelisted_call",
                        types::RemoveWhitelistedCall { call_hash },
                        [
                            30u8, 47u8, 13u8, 231u8, 165u8, 219u8, 246u8, 210u8, 11u8, 38u8, 219u8,
                            218u8, 151u8, 226u8, 101u8, 175u8, 0u8, 239u8, 35u8, 46u8, 156u8,
                            104u8, 145u8, 173u8, 105u8, 100u8, 21u8, 189u8, 123u8, 227u8, 196u8,
                            40u8,
                        ],
                    )
                }
                pub fn dispatch_whitelisted_call(
                    &self,
                    call_hash: types::dispatch_whitelisted_call::CallHash,
                    call_encoded_len: types::dispatch_whitelisted_call::CallEncodedLen,
                    call_weight_witness: types::dispatch_whitelisted_call::CallWeightWitness,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::DispatchWhitelistedCall,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Whitelist",
                        "dispatch_whitelisted_call",
                        types::DispatchWhitelistedCall {
                            call_hash,
                            call_encoded_len,
                            call_weight_witness,
                        },
                        [
                            112u8, 67u8, 72u8, 26u8, 3u8, 214u8, 86u8, 102u8, 29u8, 96u8, 222u8,
                            24u8, 115u8, 15u8, 124u8, 160u8, 148u8, 184u8, 56u8, 162u8, 188u8,
                            123u8, 213u8, 234u8, 208u8, 123u8, 133u8, 253u8, 43u8, 226u8, 66u8,
                            116u8,
                        ],
                    )
                }
                pub fn dispatch_whitelisted_call_with_preimage(
                    &self,
                    call: types::dispatch_whitelisted_call_with_preimage::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::DispatchWhitelistedCallWithPreimage,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Whitelist",
                        "dispatch_whitelisted_call_with_preimage",
                        types::DispatchWhitelistedCallWithPreimage {
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            208u8, 102u8, 29u8, 215u8, 97u8, 242u8, 46u8, 249u8, 223u8, 99u8, 33u8,
                            17u8, 75u8, 120u8, 133u8, 204u8, 19u8, 191u8, 117u8, 244u8, 215u8,
                            208u8, 72u8, 194u8, 7u8, 8u8, 166u8, 216u8, 52u8, 242u8, 207u8, 50u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_whitelist::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct CallWhitelisted {
                pub call_hash: call_whitelisted::CallHash,
            }
            pub mod call_whitelisted {
                use super::runtime_types;
                pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CallWhitelisted {
                const PALLET: &'static str = "Whitelist";
                const EVENT: &'static str = "CallWhitelisted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct WhitelistedCallRemoved {
                pub call_hash: whitelisted_call_removed::CallHash,
            }
            pub mod whitelisted_call_removed {
                use super::runtime_types;
                pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for WhitelistedCallRemoved {
                const PALLET: &'static str = "Whitelist";
                const EVENT: &'static str = "WhitelistedCallRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct WhitelistedCallDispatched {
                pub call_hash: whitelisted_call_dispatched::CallHash,
                pub result: whitelisted_call_dispatched::Result,
            }
            pub mod whitelisted_call_dispatched {
                use super::runtime_types;
                pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                pub type Result = ::core::result::Result<
                    runtime_types::frame_support::dispatch::PostDispatchInfo,
                    runtime_types::sp_runtime::DispatchErrorWithPostInfo<
                        runtime_types::frame_support::dispatch::PostDispatchInfo,
                    >,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for WhitelistedCallDispatched {
                const PALLET: &'static str = "Whitelist";
                const EVENT: &'static str = "WhitelistedCallDispatched";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod whitelisted_call {
                    use super::runtime_types;
                    pub type WhitelistedCall = ();
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                pub fn whitelisted_call_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::whitelisted_call::WhitelistedCall,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Whitelist",
                        "WhitelistedCall",
                        (),
                        [
                            82u8, 208u8, 214u8, 72u8, 225u8, 35u8, 51u8, 212u8, 25u8, 138u8, 30u8,
                            87u8, 54u8, 232u8, 72u8, 132u8, 4u8, 9u8, 28u8, 143u8, 251u8, 106u8,
                            167u8, 218u8, 130u8, 185u8, 253u8, 185u8, 113u8, 154u8, 202u8, 66u8,
                        ],
                    )
                }
                pub fn whitelisted_call(
                    &self,
                    _0: types::whitelisted_call::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::whitelisted_call::Param0,
                    >,
                    types::whitelisted_call::WhitelistedCall,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Whitelist",
                        "WhitelistedCall",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            82u8, 208u8, 214u8, 72u8, 225u8, 35u8, 51u8, 212u8, 25u8, 138u8, 30u8,
                            87u8, 54u8, 232u8, 72u8, 132u8, 4u8, 9u8, 28u8, 143u8, 251u8, 106u8,
                            167u8, 218u8, 130u8, 185u8, 253u8, 185u8, 113u8, 154u8, 202u8, 66u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod claims {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::claims::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::claims::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make a claim to collect your DOTs."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to claim is deemed valid if the signature provided matches"]
                #[doc = "the expected signed message of:"]
                #[doc = ""]
                #[doc = "> Ethereum Signed Message:"]
                #[doc = "> (configured prefix string)(address)"]
                #[doc = ""]
                #[doc = "and `address` matches the `dest` account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `dest`: The destination account to payout the claim."]
                #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                #[doc = "  described above."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to validate unsigned `claim` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub struct Claim {
                    pub dest: claim::Dest,
                    pub ethereum_signature: claim::EthereumSignature,
                }
                pub mod claim {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type EthereumSignature =
                        runtime_types::polkadot_runtime_common::claims::EcdsaSignature;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Claim {
                    const PALLET: &'static str = "Claims";
                    const CALL: &'static str = "claim";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Mint a new claim to collect DOTs."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who`: The Ethereum address allowed to collect this claim."]
                #[doc = "- `value`: The number of DOTs that will be claimed."]
                #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "We assume worst case that both vesting and statement is being inserted."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub struct MintClaim {
                    pub who: mint_claim::Who,
                    pub value: mint_claim::Value,
                    pub vesting_schedule: mint_claim::VestingSchedule,
                    pub statement: mint_claim::Statement,
                }
                pub mod mint_claim {
                    use super::runtime_types;
                    pub type Who = runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                    pub type Value = ::core::primitive::u128;
                    pub type VestingSchedule = ::core::option::Option<(
                        ::core::primitive::u128,
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    )>;
                    pub type Statement = ::core::option::Option<
                        runtime_types::polkadot_runtime_common::claims::StatementKind,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for MintClaim {
                    const PALLET: &'static str = "Claims";
                    const CALL: &'static str = "mint_claim";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make a claim to collect your DOTs by signing a statement."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"]
                #[doc = "the expected signed message of:"]
                #[doc = ""]
                #[doc = "> Ethereum Signed Message:"]
                #[doc = "> (configured prefix string)(address)(statement)"]
                #[doc = ""]
                #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"]
                #[doc = "expected according to your purchase arrangement."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `dest`: The destination account to payout the claim."]
                #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                #[doc = "  described above."]
                #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                #[doc = "  signature."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to validate unsigned `claim_attest` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub struct ClaimAttest {
                    pub dest: claim_attest::Dest,
                    pub ethereum_signature: claim_attest::EthereumSignature,
                    pub statement: claim_attest::Statement,
                }
                pub mod claim_attest {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type EthereumSignature =
                        runtime_types::polkadot_runtime_common::claims::EcdsaSignature;
                    pub type Statement =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimAttest {
                    const PALLET: &'static str = "Claims";
                    const CALL: &'static str = "claim_attest";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Attest to a statement, needed to finalize the claims process."]
                #[doc = ""]
                #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"]
                #[doc = "`TransactionExtension`."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"]
                #[doc = "and provides a `statement` which is expected for the account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                #[doc = "  signature."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to do pre-validation on `attest` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub struct Attest {
                    pub statement: attest::Statement,
                }
                pub mod attest {
                    use super::runtime_types;
                    pub type Statement =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Attest {
                    const PALLET: &'static str = "Claims";
                    const CALL: &'static str = "attest";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MoveClaim {
                    pub old: move_claim::Old,
                    pub new: move_claim::New,
                    pub maybe_preclaim: move_claim::MaybePreclaim,
                }
                pub mod move_claim {
                    use super::runtime_types;
                    pub type Old = runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                    pub type New = runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                    pub type MaybePreclaim =
                        ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for MoveClaim {
                    const PALLET: &'static str = "Claims";
                    const CALL: &'static str = "move_claim";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Make a claim to collect your DOTs."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to claim is deemed valid if the signature provided matches"]
                #[doc = "the expected signed message of:"]
                #[doc = ""]
                #[doc = "> Ethereum Signed Message:"]
                #[doc = "> (configured prefix string)(address)"]
                #[doc = ""]
                #[doc = "and `address` matches the `dest` account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `dest`: The destination account to payout the claim."]
                #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                #[doc = "  described above."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to validate unsigned `claim` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub fn claim(
                    &self,
                    dest: types::claim::Dest,
                    ethereum_signature: types::claim::EthereumSignature,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Claim>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Claims",
                        "claim",
                        types::Claim {
                            dest,
                            ethereum_signature,
                        },
                        [
                            218u8, 236u8, 60u8, 12u8, 231u8, 72u8, 155u8, 30u8, 116u8, 126u8,
                            145u8, 166u8, 135u8, 118u8, 22u8, 112u8, 212u8, 140u8, 129u8, 97u8,
                            9u8, 241u8, 159u8, 140u8, 252u8, 128u8, 4u8, 175u8, 180u8, 133u8, 70u8,
                            55u8,
                        ],
                    )
                }
                #[doc = "Mint a new claim to collect DOTs."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who`: The Ethereum address allowed to collect this claim."]
                #[doc = "- `value`: The number of DOTs that will be claimed."]
                #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "We assume worst case that both vesting and statement is being inserted."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub fn mint_claim(
                    &self,
                    who: types::mint_claim::Who,
                    value: types::mint_claim::Value,
                    vesting_schedule: types::mint_claim::VestingSchedule,
                    statement: types::mint_claim::Statement,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::MintClaim>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Claims",
                        "mint_claim",
                        types::MintClaim {
                            who,
                            value,
                            vesting_schedule,
                            statement,
                        },
                        [
                            59u8, 71u8, 27u8, 16u8, 177u8, 189u8, 53u8, 54u8, 86u8, 157u8, 122u8,
                            182u8, 246u8, 113u8, 225u8, 10u8, 31u8, 253u8, 15u8, 48u8, 182u8,
                            198u8, 38u8, 211u8, 90u8, 75u8, 10u8, 68u8, 70u8, 152u8, 141u8, 222u8,
                        ],
                    )
                }
                #[doc = "Make a claim to collect your DOTs by signing a statement."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _None_."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"]
                #[doc = "the expected signed message of:"]
                #[doc = ""]
                #[doc = "> Ethereum Signed Message:"]
                #[doc = "> (configured prefix string)(address)(statement)"]
                #[doc = ""]
                #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"]
                #[doc = "expected according to your purchase arrangement."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `dest`: The destination account to payout the claim."]
                #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                #[doc = "  described above."]
                #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                #[doc = "  signature."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to validate unsigned `claim_attest` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub fn claim_attest(
                    &self,
                    dest: types::claim_attest::Dest,
                    ethereum_signature: types::claim_attest::EthereumSignature,
                    statement: types::claim_attest::Statement,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimAttest>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Claims",
                        "claim_attest",
                        types::ClaimAttest {
                            dest,
                            ethereum_signature,
                            statement,
                        },
                        [
                            61u8, 16u8, 39u8, 50u8, 23u8, 249u8, 217u8, 155u8, 138u8, 128u8, 247u8,
                            214u8, 185u8, 7u8, 87u8, 108u8, 15u8, 43u8, 44u8, 224u8, 204u8, 39u8,
                            219u8, 188u8, 197u8, 104u8, 120u8, 144u8, 152u8, 161u8, 244u8, 37u8,
                        ],
                    )
                }
                #[doc = "Attest to a statement, needed to finalize the claims process."]
                #[doc = ""]
                #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"]
                #[doc = "`TransactionExtension`."]
                #[doc = ""]
                #[doc = "Unsigned Validation:"]
                #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"]
                #[doc = "and provides a `statement` which is expected for the account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                #[doc = "  signature."]
                #[doc = ""]
                #[doc = "<weight>"]
                #[doc = "The weight of this call is invariant over the input parameters."]
                #[doc = "Weight includes logic to do pre-validation on `attest` call."]
                #[doc = ""]
                #[doc = "Total Complexity: O(1)"]
                #[doc = "</weight>"]
                pub fn attest(
                    &self,
                    statement: types::attest::Statement,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Attest>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Claims",
                        "attest",
                        types::Attest { statement },
                        [
                            254u8, 56u8, 140u8, 129u8, 227u8, 155u8, 161u8, 107u8, 167u8, 148u8,
                            167u8, 104u8, 139u8, 174u8, 204u8, 124u8, 126u8, 198u8, 165u8, 61u8,
                            83u8, 197u8, 242u8, 13u8, 70u8, 153u8, 14u8, 62u8, 214u8, 129u8, 64u8,
                            93u8,
                        ],
                    )
                }
                pub fn move_claim(
                    &self,
                    old: types::move_claim::Old,
                    new: types::move_claim::New,
                    maybe_preclaim: types::move_claim::MaybePreclaim,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::MoveClaim>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Claims",
                        "move_claim",
                        types::MoveClaim {
                            old,
                            new,
                            maybe_preclaim,
                        },
                        [
                            187u8, 200u8, 222u8, 83u8, 110u8, 49u8, 60u8, 134u8, 91u8, 215u8, 67u8,
                            18u8, 187u8, 241u8, 191u8, 127u8, 222u8, 171u8, 151u8, 245u8, 161u8,
                            196u8, 123u8, 99u8, 206u8, 110u8, 55u8, 82u8, 210u8, 151u8, 116u8,
                            230u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::claims::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Someone claimed some DOTs."]
            pub struct Claimed {
                pub who: claimed::Who,
                pub ethereum_address: claimed::EthereumAddress,
                pub amount: claimed::Amount,
            }
            pub mod claimed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type EthereumAddress =
                    runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Claimed {
                const PALLET: &'static str = "Claims";
                const EVENT: &'static str = "Claimed";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod claims {
                    use super::runtime_types;
                    pub type Claims = ::core::primitive::u128;
                    pub type Param0 =
                        runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                }
                pub mod total {
                    use super::runtime_types;
                    pub type Total = ::core::primitive::u128;
                }
                pub mod vesting {
                    use super::runtime_types;
                    pub type Vesting = (
                        ::core::primitive::u128,
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    );
                    pub type Param0 =
                        runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                }
                pub mod signing {
                    use super::runtime_types;
                    pub type Signing =
                        runtime_types::polkadot_runtime_common::claims::StatementKind;
                    pub type Param0 =
                        runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                }
                pub mod preclaims {
                    use super::runtime_types;
                    pub type Preclaims =
                        runtime_types::polkadot_runtime_common::claims::EthereumAddress;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                pub fn claims_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::claims::Claims,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Claims",
                        (),
                        [
                            148u8, 115u8, 159u8, 169u8, 36u8, 116u8, 15u8, 108u8, 57u8, 195u8,
                            226u8, 180u8, 187u8, 112u8, 114u8, 63u8, 3u8, 205u8, 113u8, 141u8,
                            149u8, 149u8, 118u8, 246u8, 45u8, 245u8, 148u8, 108u8, 22u8, 184u8,
                            152u8, 132u8,
                        ],
                    )
                }
                pub fn claims(
                    &self,
                    _0: types::claims::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::claims::Param0,
                    >,
                    types::claims::Claims,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Claims",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            148u8, 115u8, 159u8, 169u8, 36u8, 116u8, 15u8, 108u8, 57u8, 195u8,
                            226u8, 180u8, 187u8, 112u8, 114u8, 63u8, 3u8, 205u8, 113u8, 141u8,
                            149u8, 149u8, 118u8, 246u8, 45u8, 245u8, 148u8, 108u8, 22u8, 184u8,
                            152u8, 132u8,
                        ],
                    )
                }
                pub fn total(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::total::Total,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Total",
                        (),
                        [
                            188u8, 31u8, 219u8, 189u8, 49u8, 213u8, 203u8, 89u8, 125u8, 58u8,
                            232u8, 159u8, 131u8, 155u8, 166u8, 113u8, 99u8, 24u8, 40u8, 242u8,
                            118u8, 183u8, 108u8, 230u8, 135u8, 150u8, 84u8, 86u8, 118u8, 91u8,
                            168u8, 62u8,
                        ],
                    )
                }
                #[doc = " Vesting schedule for a claim."]
                #[doc = " First balance is the total amount that should be held for vesting."]
                #[doc = " Second balance is how much should be unlocked per block."]
                #[doc = " The block number is when the vesting should start."]
                pub fn vesting_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::vesting::Vesting,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Vesting",
                        (),
                        [
                            206u8, 106u8, 195u8, 101u8, 55u8, 137u8, 50u8, 105u8, 137u8, 87u8,
                            230u8, 34u8, 255u8, 94u8, 210u8, 186u8, 179u8, 72u8, 24u8, 194u8,
                            209u8, 173u8, 115u8, 65u8, 227u8, 224u8, 58u8, 113u8, 200u8, 166u8,
                            108u8, 198u8,
                        ],
                    )
                }
                #[doc = " Vesting schedule for a claim."]
                #[doc = " First balance is the total amount that should be held for vesting."]
                #[doc = " Second balance is how much should be unlocked per block."]
                #[doc = " The block number is when the vesting should start."]
                pub fn vesting(
                    &self,
                    _0: types::vesting::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::vesting::Param0,
                    >,
                    types::vesting::Vesting,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Vesting",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            206u8, 106u8, 195u8, 101u8, 55u8, 137u8, 50u8, 105u8, 137u8, 87u8,
                            230u8, 34u8, 255u8, 94u8, 210u8, 186u8, 179u8, 72u8, 24u8, 194u8,
                            209u8, 173u8, 115u8, 65u8, 227u8, 224u8, 58u8, 113u8, 200u8, 166u8,
                            108u8, 198u8,
                        ],
                    )
                }
                #[doc = " The statement kind that must be signed, if any."]
                pub fn signing_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::signing::Signing,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Signing",
                        (),
                        [
                            111u8, 90u8, 178u8, 121u8, 241u8, 28u8, 169u8, 231u8, 61u8, 189u8,
                            113u8, 207u8, 26u8, 153u8, 189u8, 15u8, 192u8, 25u8, 22u8, 22u8, 124u8,
                            26u8, 191u8, 39u8, 130u8, 164u8, 34u8, 4u8, 44u8, 91u8, 82u8, 186u8,
                        ],
                    )
                }
                #[doc = " The statement kind that must be signed, if any."]
                pub fn signing(
                    &self,
                    _0: types::signing::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::signing::Param0,
                    >,
                    types::signing::Signing,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Signing",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            111u8, 90u8, 178u8, 121u8, 241u8, 28u8, 169u8, 231u8, 61u8, 189u8,
                            113u8, 207u8, 26u8, 153u8, 189u8, 15u8, 192u8, 25u8, 22u8, 22u8, 124u8,
                            26u8, 191u8, 39u8, 130u8, 164u8, 34u8, 4u8, 44u8, 91u8, 82u8, 186u8,
                        ],
                    )
                }
                #[doc = " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to."]
                pub fn preclaims_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::preclaims::Preclaims,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Preclaims",
                        (),
                        [
                            197u8, 114u8, 147u8, 235u8, 203u8, 255u8, 94u8, 113u8, 151u8, 119u8,
                            224u8, 147u8, 48u8, 246u8, 124u8, 38u8, 190u8, 237u8, 226u8, 65u8,
                            91u8, 163u8, 129u8, 40u8, 71u8, 137u8, 220u8, 242u8, 51u8, 75u8, 3u8,
                            204u8,
                        ],
                    )
                }
                #[doc = " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to."]
                pub fn preclaims(
                    &self,
                    _0: types::preclaims::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::preclaims::Param0,
                    >,
                    types::preclaims::Preclaims,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Claims",
                        "Preclaims",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            197u8, 114u8, 147u8, 235u8, 203u8, 255u8, 94u8, 113u8, 151u8, 119u8,
                            224u8, 147u8, 48u8, 246u8, 124u8, 38u8, 190u8, 237u8, 226u8, 65u8,
                            91u8, 163u8, 129u8, 40u8, 71u8, 137u8, 220u8, 242u8, 51u8, 75u8, 3u8,
                            204u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                pub fn prefix(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Claims",
                        "Prefix",
                        [
                            64u8, 190u8, 244u8, 122u8, 87u8, 182u8, 217u8, 16u8, 55u8, 223u8,
                            128u8, 6u8, 112u8, 30u8, 236u8, 222u8, 153u8, 53u8, 247u8, 102u8,
                            196u8, 31u8, 6u8, 186u8, 251u8, 209u8, 114u8, 125u8, 213u8, 222u8,
                            240u8, 8u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod utility {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_utility::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_utility::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a batch of dispatch calls."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                #[doc = ""]
                #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"]
                #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"]
                #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"]
                #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"]
                #[doc = "event is deposited."]
                pub struct Batch {
                    pub calls: batch::Calls,
                }
                pub mod batch {
                    use super::runtime_types;
                    pub type Calls = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::rococo_runtime::RuntimeCall,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Batch {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "batch";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a call through an indexed pseudonym of the sender."]
                #[doc = ""]
                #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"]
                #[doc = "use the same filter as the origin of this call."]
                #[doc = ""]
                #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."]
                #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"]
                #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"]
                #[doc = "in the Multisig pallet instead."]
                #[doc = ""]
                #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub struct AsDerivative {
                    pub index: as_derivative::Index,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<as_derivative::Call>,
                }
                pub mod as_derivative {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u16;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AsDerivative {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "as_derivative";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a batch of dispatch calls and atomically execute them."]
                #[doc = "The whole transaction will rollback and fail if any of the calls failed."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                pub struct BatchAll {
                    pub calls: batch_all::Calls,
                }
                pub mod batch_all {
                    use super::runtime_types;
                    pub type Calls = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::rococo_runtime::RuntimeCall,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for BatchAll {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "batch_all";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatches a function call with a provided origin."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct DispatchAs {
                    pub as_origin:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<dispatch_as::AsOrigin>,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<dispatch_as::Call>,
                }
                pub mod dispatch_as {
                    use super::runtime_types;
                    pub type AsOrigin = runtime_types::rococo_runtime::OriginCaller;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DispatchAs {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "dispatch_as";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a batch of dispatch calls."]
                #[doc = "Unlike `batch`, it allows errors and won't interrupt."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                pub struct ForceBatch {
                    pub calls: force_batch::Calls,
                }
                pub mod force_batch {
                    use super::runtime_types;
                    pub type Calls = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::rococo_runtime::RuntimeCall,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceBatch {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "force_batch";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatch a function call with a specified weight."]
                #[doc = ""]
                #[doc = "This function does not check the weight of the call, and instead allows the"]
                #[doc = "Root origin to specify the weight of the call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                pub struct WithWeight {
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<with_weight::Call>,
                    pub weight: with_weight::Weight,
                }
                pub mod with_weight {
                    use super::runtime_types;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                    pub type Weight = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for WithWeight {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "with_weight";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatch a fallback call in the event the main call fails to execute."]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "This function first attempts to dispatch the `main` call."]
                #[doc = "If the `main` call fails, the `fallback` is attemted."]
                #[doc = "if the fallback is successfully dispatched, the weights of both calls"]
                #[doc = "are accumulated and an event containing the main call error is deposited."]
                #[doc = ""]
                #[doc = "In the event of a fallback failure the whole call fails"]
                #[doc = "with the weights returned."]
                #[doc = ""]
                #[doc = "- `main`: The main call to be dispatched. This is the primary action to execute."]
                #[doc = "- `fallback`: The fallback call to be dispatched in case the `main` call fails."]
                #[doc = ""]
                #[doc = "## Dispatch Logic"]
                #[doc = "- If the origin is `root`, both the main and fallback calls are executed without"]
                #[doc = "  applying any origin filters."]
                #[doc = "- If the origin is not `root`, the origin filter is applied to both the `main` and"]
                #[doc = "  `fallback` calls."]
                #[doc = ""]
                #[doc = "## Use Case"]
                #[doc = "- Some use cases might involve submitting a `batch` type call in either main, fallback"]
                #[doc = "  or both."]
                pub struct IfElse {
                    pub main: ::subxt::ext::subxt_core::alloc::boxed::Box<if_else::Main>,
                    pub fallback: ::subxt::ext::subxt_core::alloc::boxed::Box<if_else::Fallback>,
                }
                pub mod if_else {
                    use super::runtime_types;
                    pub type Main = runtime_types::rococo_runtime::RuntimeCall;
                    pub type Fallback = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for IfElse {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "if_else";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatches a function call with a provided origin."]
                #[doc = ""]
                #[doc = "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                pub struct DispatchAsFallible {
                    pub as_origin:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<dispatch_as_fallible::AsOrigin>,
                    pub call:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<dispatch_as_fallible::Call>,
                }
                pub mod dispatch_as_fallible {
                    use super::runtime_types;
                    pub type AsOrigin = runtime_types::rococo_runtime::OriginCaller;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DispatchAsFallible {
                    const PALLET: &'static str = "Utility";
                    const CALL: &'static str = "dispatch_as_fallible";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Send a batch of dispatch calls."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                #[doc = ""]
                #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"]
                #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"]
                #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"]
                #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"]
                #[doc = "event is deposited."]
                pub fn batch(
                    &self,
                    calls: types::batch::Calls,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Batch>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "batch",
                        types::Batch { calls },
                        [
                            238u8, 143u8, 149u8, 119u8, 132u8, 112u8, 146u8, 246u8, 2u8, 201u8,
                            8u8, 116u8, 235u8, 206u8, 54u8, 201u8, 211u8, 142u8, 26u8, 174u8, 63u8,
                            168u8, 105u8, 40u8, 13u8, 209u8, 36u8, 162u8, 123u8, 224u8, 6u8, 181u8,
                        ],
                    )
                }
                #[doc = "Send a call through an indexed pseudonym of the sender."]
                #[doc = ""]
                #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"]
                #[doc = "use the same filter as the origin of this call."]
                #[doc = ""]
                #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."]
                #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"]
                #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"]
                #[doc = "in the Multisig pallet instead."]
                #[doc = ""]
                #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub fn as_derivative(
                    &self,
                    index: types::as_derivative::Index,
                    call: types::as_derivative::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AsDerivative>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "as_derivative",
                        types::AsDerivative {
                            index,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            63u8, 33u8, 47u8, 64u8, 238u8, 28u8, 74u8, 250u8, 244u8, 204u8, 213u8,
                            207u8, 159u8, 177u8, 106u8, 86u8, 242u8, 43u8, 206u8, 91u8, 32u8,
                            101u8, 154u8, 99u8, 15u8, 194u8, 177u8, 251u8, 160u8, 110u8, 224u8,
                            156u8,
                        ],
                    )
                }
                #[doc = "Send a batch of dispatch calls and atomically execute them."]
                #[doc = "The whole transaction will rollback and fail if any of the calls failed."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                pub fn batch_all(
                    &self,
                    calls: types::batch_all::Calls,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::BatchAll>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "batch_all",
                        types::BatchAll { calls },
                        [
                            134u8, 104u8, 86u8, 160u8, 49u8, 185u8, 29u8, 124u8, 125u8, 146u8,
                            47u8, 68u8, 177u8, 194u8, 102u8, 69u8, 6u8, 173u8, 117u8, 156u8, 139u8,
                            42u8, 31u8, 199u8, 215u8, 68u8, 177u8, 248u8, 181u8, 158u8, 157u8,
                            217u8,
                        ],
                    )
                }
                #[doc = "Dispatches a function call with a provided origin."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn dispatch_as(
                    &self,
                    as_origin: types::dispatch_as::AsOrigin,
                    call: types::dispatch_as::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DispatchAs>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "dispatch_as",
                        types::DispatchAs {
                            as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box::new(as_origin),
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            162u8, 111u8, 9u8, 93u8, 72u8, 171u8, 104u8, 172u8, 81u8, 143u8, 228u8,
                            75u8, 155u8, 30u8, 131u8, 203u8, 174u8, 87u8, 181u8, 91u8, 167u8,
                            158u8, 182u8, 61u8, 34u8, 120u8, 73u8, 143u8, 59u8, 66u8, 9u8, 13u8,
                        ],
                    )
                }
                #[doc = "Send a batch of dispatch calls."]
                #[doc = "Unlike `batch`, it allows errors and won't interrupt."]
                #[doc = ""]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                #[doc = ""]
                #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"]
                #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(C) where C is the number of calls to be batched."]
                pub fn force_batch(
                    &self,
                    calls: types::force_batch::Calls,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceBatch>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "force_batch",
                        types::ForceBatch { calls },
                        [
                            61u8, 138u8, 94u8, 134u8, 122u8, 68u8, 41u8, 246u8, 142u8, 201u8, 39u8,
                            235u8, 193u8, 95u8, 48u8, 71u8, 184u8, 137u8, 246u8, 178u8, 223u8,
                            50u8, 9u8, 35u8, 69u8, 168u8, 46u8, 152u8, 89u8, 167u8, 132u8, 7u8,
                        ],
                    )
                }
                #[doc = "Dispatch a function call with a specified weight."]
                #[doc = ""]
                #[doc = "This function does not check the weight of the call, and instead allows the"]
                #[doc = "Root origin to specify the weight of the call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                pub fn with_weight(
                    &self,
                    call: types::with_weight::Call,
                    weight: types::with_weight::Weight,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::WithWeight>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "with_weight",
                        types::WithWeight {
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                            weight,
                        },
                        [
                            234u8, 54u8, 154u8, 105u8, 247u8, 52u8, 86u8, 129u8, 46u8, 98u8, 254u8,
                            158u8, 52u8, 43u8, 31u8, 129u8, 190u8, 49u8, 166u8, 118u8, 160u8, 51u8,
                            1u8, 22u8, 118u8, 70u8, 101u8, 154u8, 78u8, 76u8, 58u8, 90u8,
                        ],
                    )
                }
                #[doc = "Dispatch a fallback call in the event the main call fails to execute."]
                #[doc = "May be called from any origin except `None`."]
                #[doc = ""]
                #[doc = "This function first attempts to dispatch the `main` call."]
                #[doc = "If the `main` call fails, the `fallback` is attemted."]
                #[doc = "if the fallback is successfully dispatched, the weights of both calls"]
                #[doc = "are accumulated and an event containing the main call error is deposited."]
                #[doc = ""]
                #[doc = "In the event of a fallback failure the whole call fails"]
                #[doc = "with the weights returned."]
                #[doc = ""]
                #[doc = "- `main`: The main call to be dispatched. This is the primary action to execute."]
                #[doc = "- `fallback`: The fallback call to be dispatched in case the `main` call fails."]
                #[doc = ""]
                #[doc = "## Dispatch Logic"]
                #[doc = "- If the origin is `root`, both the main and fallback calls are executed without"]
                #[doc = "  applying any origin filters."]
                #[doc = "- If the origin is not `root`, the origin filter is applied to both the `main` and"]
                #[doc = "  `fallback` calls."]
                #[doc = ""]
                #[doc = "## Use Case"]
                #[doc = "- Some use cases might involve submitting a `batch` type call in either main, fallback"]
                #[doc = "  or both."]
                pub fn if_else(
                    &self,
                    main: types::if_else::Main,
                    fallback: types::if_else::Fallback,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::IfElse>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "if_else",
                        types::IfElse {
                            main: ::subxt::ext::subxt_core::alloc::boxed::Box::new(main),
                            fallback: ::subxt::ext::subxt_core::alloc::boxed::Box::new(fallback),
                        },
                        [
                            211u8, 253u8, 150u8, 222u8, 9u8, 25u8, 249u8, 193u8, 101u8, 155u8,
                            167u8, 144u8, 245u8, 143u8, 11u8, 75u8, 77u8, 2u8, 157u8, 8u8, 59u8,
                            232u8, 185u8, 15u8, 216u8, 23u8, 214u8, 209u8, 192u8, 177u8, 252u8,
                            59u8,
                        ],
                    )
                }
                #[doc = "Dispatches a function call with a provided origin."]
                #[doc = ""]
                #[doc = "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                pub fn dispatch_as_fallible(
                    &self,
                    as_origin: types::dispatch_as_fallible::AsOrigin,
                    call: types::dispatch_as_fallible::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DispatchAsFallible>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Utility",
                        "dispatch_as_fallible",
                        types::DispatchAsFallible {
                            as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box::new(as_origin),
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            249u8, 51u8, 200u8, 150u8, 250u8, 202u8, 105u8, 206u8, 244u8, 152u8,
                            21u8, 166u8, 114u8, 93u8, 127u8, 50u8, 118u8, 109u8, 123u8, 32u8,
                            183u8, 253u8, 221u8, 122u8, 224u8, 129u8, 13u8, 40u8, 218u8, 64u8,
                            154u8, 116u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_utility::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Batch of dispatches did not complete fully. Index of first failing dispatch given, as"]
            #[doc = "well as the error."]
            pub struct BatchInterrupted {
                pub index: batch_interrupted::Index,
                pub error: batch_interrupted::Error,
            }
            pub mod batch_interrupted {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Error = runtime_types::sp_runtime::DispatchError;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BatchInterrupted {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "BatchInterrupted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Batch of dispatches completed fully with no error."]
            pub struct BatchCompleted;
            impl ::subxt::ext::subxt_core::events::StaticEvent for BatchCompleted {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "BatchCompleted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Batch of dispatches completed but has errors."]
            pub struct BatchCompletedWithErrors;
            impl ::subxt::ext::subxt_core::events::StaticEvent for BatchCompletedWithErrors {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "BatchCompletedWithErrors";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A single item within a Batch of dispatches has completed with no error."]
            pub struct ItemCompleted;
            impl ::subxt::ext::subxt_core::events::StaticEvent for ItemCompleted {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "ItemCompleted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A single item within a Batch of dispatches has completed with error."]
            pub struct ItemFailed {
                pub error: item_failed::Error,
            }
            pub mod item_failed {
                use super::runtime_types;
                pub type Error = runtime_types::sp_runtime::DispatchError;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ItemFailed {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "ItemFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A call was dispatched."]
            pub struct DispatchedAs {
                pub result: dispatched_as::Result,
            }
            pub mod dispatched_as {
                use super::runtime_types;
                pub type Result =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DispatchedAs {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "DispatchedAs";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Main call was dispatched."]
            pub struct IfElseMainSuccess;
            impl ::subxt::ext::subxt_core::events::StaticEvent for IfElseMainSuccess {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "IfElseMainSuccess";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The fallback call was dispatched."]
            pub struct IfElseFallbackCalled {
                pub main_error: if_else_fallback_called::MainError,
            }
            pub mod if_else_fallback_called {
                use super::runtime_types;
                pub type MainError = runtime_types::sp_runtime::DispatchError;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IfElseFallbackCalled {
                const PALLET: &'static str = "Utility";
                const EVENT: &'static str = "IfElseFallbackCalled";
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The limit on the number of batched calls."]
                pub fn batched_calls_limit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Utility",
                        "batched_calls_limit",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod identity {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_identity::pallet::Error;
        #[doc = "Identity pallet declaration."]
        pub type Call = runtime_types::pallet_identity::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add a registrar to the system."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."]
                #[doc = ""]
                #[doc = "- `account`: the account of the registrar."]
                #[doc = ""]
                #[doc = "Emits `RegistrarAdded` if successful."]
                pub struct AddRegistrar {
                    pub account: add_registrar::Account,
                }
                pub mod add_registrar {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddRegistrar {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "add_registrar";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set an account's identity information and reserve the appropriate deposit."]
                #[doc = ""]
                #[doc = "If the account already has identity information, the deposit is taken as part payment"]
                #[doc = "for the new deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `info`: The identity information."]
                #[doc = ""]
                #[doc = "Emits `IdentitySet` if successful."]
                pub struct SetIdentity {
                    pub info: ::subxt::ext::subxt_core::alloc::boxed::Box<set_identity::Info>,
                }
                pub mod set_identity {
                    use super::runtime_types;
                    pub type Info = runtime_types::pallet_identity::legacy::IdentityInfo;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetIdentity {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_identity";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the sub-accounts of the sender."]
                #[doc = ""]
                #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"]
                #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "identity."]
                #[doc = ""]
                #[doc = "- `subs`: The identity's (new) sub-accounts."]
                pub struct SetSubs {
                    pub subs: set_subs::Subs,
                }
                pub mod set_subs {
                    use super::runtime_types;
                    pub type Subs = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::pallet_identity::types::Data,
                    )>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSubs {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_subs";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."]
                #[doc = ""]
                #[doc = "Payment: All reserved balances on the account are returned."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "identity."]
                #[doc = ""]
                #[doc = "Emits `IdentityCleared` if successful."]
                pub struct ClearIdentity;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearIdentity {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "clear_identity";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Request a judgement from a registrar."]
                #[doc = ""]
                #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"]
                #[doc = "given."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                #[doc = "registered identity."]
                #[doc = ""]
                #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."]
                #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"]
                #[doc = ""]
                #[doc = "```nocompile"]
                #[doc = "Registrars::<T>::get().get(reg_index).unwrap().fee"]
                #[doc = "```"]
                #[doc = ""]
                #[doc = "Emits `JudgementRequested` if successful."]
                pub struct RequestJudgement {
                    #[codec(compact)]
                    pub reg_index: request_judgement::RegIndex,
                    #[codec(compact)]
                    pub max_fee: request_judgement::MaxFee,
                }
                pub mod request_judgement {
                    use super::runtime_types;
                    pub type RegIndex = ::core::primitive::u32;
                    pub type MaxFee = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestJudgement {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "request_judgement";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel a previous request."]
                #[doc = ""]
                #[doc = "Payment: A previously reserved deposit is returned on success."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                #[doc = "registered identity."]
                #[doc = ""]
                #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."]
                #[doc = ""]
                #[doc = "Emits `JudgementUnrequested` if successful."]
                pub struct CancelRequest {
                    pub reg_index: cancel_request::RegIndex,
                }
                pub mod cancel_request {
                    use super::runtime_types;
                    pub type RegIndex = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRequest {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "cancel_request";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the fee required for a judgement to be requested from a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `fee`: the new fee."]
                pub struct SetFee {
                    #[codec(compact)]
                    pub index: set_fee::Index,
                    #[codec(compact)]
                    pub fee: set_fee::Fee,
                }
                pub mod set_fee {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type Fee = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetFee {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_fee";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Change the account associated with a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `new`: the new account ID."]
                pub struct SetAccountId {
                    #[codec(compact)]
                    pub index: set_account_id::Index,
                    pub new: set_account_id::New,
                }
                pub mod set_account_id {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type New = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetAccountId {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_account_id";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the field information for a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `fields`: the fields that the registrar concerns themselves with."]
                pub struct SetFields {
                    #[codec(compact)]
                    pub index: set_fields::Index,
                    pub fields: set_fields::Fields,
                }
                pub mod set_fields {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type Fields = ::core::primitive::u64;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetFields {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_fields";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Provide a judgement for an account's identity."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `reg_index`."]
                #[doc = ""]
                #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."]
                #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                #[doc = "  with a registered identity."]
                #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."]
                #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"]
                #[doc = "  provided."]
                #[doc = ""]
                #[doc = "Note: Judgements do not apply to a username."]
                #[doc = ""]
                #[doc = "Emits `JudgementGiven` if successful."]
                pub struct ProvideJudgement {
                    #[codec(compact)]
                    pub reg_index: provide_judgement::RegIndex,
                    pub target: provide_judgement::Target,
                    pub judgement: provide_judgement::Judgement,
                    pub identity: provide_judgement::Identity,
                }
                pub mod provide_judgement {
                    use super::runtime_types;
                    pub type RegIndex = ::core::primitive::u32;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Judgement =
                        runtime_types::pallet_identity::types::Judgement<::core::primitive::u128>;
                    pub type Identity = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProvideJudgement {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "provide_judgement";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove an account's identity and sub-account information and slash the deposits."]
                #[doc = ""]
                #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"]
                #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"]
                #[doc = "manually using `cancel_request`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                #[doc = ""]
                #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                #[doc = "  with a registered identity."]
                #[doc = ""]
                #[doc = "Emits `IdentityKilled` if successful."]
                pub struct KillIdentity {
                    pub target: kill_identity::Target,
                }
                pub mod kill_identity {
                    use super::runtime_types;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillIdentity {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "kill_identity";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add the given account to the sender's subs."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub struct AddSub {
                    pub sub: add_sub::Sub,
                    pub data: add_sub::Data,
                }
                pub mod add_sub {
                    use super::runtime_types;
                    pub type Sub = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Data = runtime_types::pallet_identity::types::Data;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddSub {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "add_sub";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Alter the associated name of the given sub-account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub struct RenameSub {
                    pub sub: rename_sub::Sub,
                    pub data: rename_sub::Data,
                }
                pub mod rename_sub {
                    use super::runtime_types;
                    pub type Sub = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Data = runtime_types::pallet_identity::types::Data;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RenameSub {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "rename_sub";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the given account from the sender's subs."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub struct RemoveSub {
                    pub sub: remove_sub::Sub,
                }
                pub mod remove_sub {
                    use super::runtime_types;
                    pub type Sub = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveSub {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "remove_sub";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the sender as a sub-account."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender (*not* the original depositor)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "super-identity."]
                #[doc = ""]
                #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"]
                #[doc = "controller of an account is maliciously registered as a sub-account."]
                pub struct QuitSub;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for QuitSub {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "quit_sub";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."]
                #[doc = ""]
                #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"]
                #[doc = "change the account used to grant usernames, this call can be used with the updated"]
                #[doc = "parameters to overwrite the existing configuration."]
                pub struct AddUsernameAuthority {
                    pub authority: add_username_authority::Authority,
                    pub suffix: add_username_authority::Suffix,
                    pub allocation: add_username_authority::Allocation,
                }
                pub mod add_username_authority {
                    use super::runtime_types;
                    pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Suffix =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type Allocation = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddUsernameAuthority {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "add_username_authority";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove `authority` from the username authorities."]
                pub struct RemoveUsernameAuthority {
                    pub suffix: remove_username_authority::Suffix,
                    pub authority: remove_username_authority::Authority,
                }
                pub mod remove_username_authority {
                    use super::runtime_types;
                    pub type Suffix =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUsernameAuthority {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "remove_username_authority";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the username for `who`. Must be called by a username authority."]
                #[doc = ""]
                #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"]
                #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"]
                #[doc = "username."]
                #[doc = ""]
                #[doc = "Users can either pre-sign their usernames or"]
                #[doc = "accept them later."]
                #[doc = ""]
                #[doc = "Usernames must:"]
                #[doc = "  - Only contain lowercase ASCII characters or digits."]
                #[doc = "  - When combined with the suffix of the issuing authority be _less than_ the"]
                #[doc = "    `MaxUsernameLength`."]
                pub struct SetUsernameFor {
                    pub who: set_username_for::Who,
                    pub username: set_username_for::Username,
                    pub signature: set_username_for::Signature,
                    pub use_allocation: set_username_for::UseAllocation,
                }
                pub mod set_username_for {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Username =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type Signature =
                        ::core::option::Option<runtime_types::sp_runtime::MultiSignature>;
                    pub type UseAllocation = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetUsernameFor {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_username_for";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Accept a given username that an `authority` granted. The call must include the full"]
                #[doc = "username, as in `username.suffix`."]
                pub struct AcceptUsername {
                    pub username: accept_username::Username,
                }
                pub mod accept_username {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptUsername {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "accept_username";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove an expired username approval. The username was approved by an authority but never"]
                #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"]
                #[doc = "full username, as in `username.suffix`."]
                pub struct RemoveExpiredApproval {
                    pub username: remove_expired_approval::Username,
                }
                pub mod remove_expired_approval {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveExpiredApproval {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "remove_expired_approval";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set a given username as the primary. The username should include the suffix."]
                pub struct SetPrimaryUsername {
                    pub username: set_primary_username::Username,
                }
                pub mod set_primary_username {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetPrimaryUsername {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "set_primary_username";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."]
                #[doc = "Once the grace period has passed, the username can be deleted by calling"]
                #[doc = "[remove_username](crate::Call::remove_username)."]
                pub struct UnbindUsername {
                    pub username: unbind_username::Username,
                }
                pub mod unbind_username {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnbindUsername {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "unbind_username";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."]
                #[doc = "Caller is refunded the fee if the username expired and the removal was successful."]
                pub struct RemoveUsername {
                    pub username: remove_username::Username,
                }
                pub mod remove_username {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUsername {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "remove_username";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"]
                #[doc = "and slashes any deposit associated with it."]
                pub struct KillUsername {
                    pub username: kill_username::Username,
                }
                pub mod kill_username {
                    use super::runtime_types;
                    pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillUsername {
                    const PALLET: &'static str = "Identity";
                    const CALL: &'static str = "kill_username";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Add a registrar to the system."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."]
                #[doc = ""]
                #[doc = "- `account`: the account of the registrar."]
                #[doc = ""]
                #[doc = "Emits `RegistrarAdded` if successful."]
                pub fn add_registrar(
                    &self,
                    account: types::add_registrar::Account,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddRegistrar>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "add_registrar",
                        types::AddRegistrar { account },
                        [
                            6u8, 131u8, 82u8, 191u8, 37u8, 240u8, 158u8, 187u8, 247u8, 98u8, 175u8,
                            200u8, 147u8, 78u8, 88u8, 176u8, 227u8, 179u8, 184u8, 194u8, 91u8, 1u8,
                            1u8, 20u8, 121u8, 4u8, 96u8, 94u8, 103u8, 140u8, 247u8, 253u8,
                        ],
                    )
                }
                #[doc = "Set an account's identity information and reserve the appropriate deposit."]
                #[doc = ""]
                #[doc = "If the account already has identity information, the deposit is taken as part payment"]
                #[doc = "for the new deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `info`: The identity information."]
                #[doc = ""]
                #[doc = "Emits `IdentitySet` if successful."]
                pub fn set_identity(
                    &self,
                    info: types::set_identity::Info,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetIdentity>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_identity",
                        types::SetIdentity {
                            info: ::subxt::ext::subxt_core::alloc::boxed::Box::new(info),
                        },
                        [
                            18u8, 86u8, 67u8, 10u8, 116u8, 254u8, 94u8, 95u8, 166u8, 30u8, 204u8,
                            189u8, 174u8, 70u8, 191u8, 255u8, 149u8, 93u8, 156u8, 120u8, 105u8,
                            138u8, 199u8, 181u8, 43u8, 150u8, 143u8, 254u8, 182u8, 81u8, 86u8,
                            45u8,
                        ],
                    )
                }
                #[doc = "Set the sub-accounts of the sender."]
                #[doc = ""]
                #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"]
                #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "identity."]
                #[doc = ""]
                #[doc = "- `subs`: The identity's (new) sub-accounts."]
                pub fn set_subs(
                    &self,
                    subs: types::set_subs::Subs,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetSubs>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_subs",
                        types::SetSubs { subs },
                        [
                            34u8, 184u8, 18u8, 155u8, 112u8, 247u8, 235u8, 75u8, 209u8, 236u8,
                            21u8, 238u8, 43u8, 237u8, 223u8, 147u8, 48u8, 6u8, 39u8, 231u8, 174u8,
                            164u8, 243u8, 184u8, 220u8, 151u8, 165u8, 69u8, 219u8, 122u8, 234u8,
                            100u8,
                        ],
                    )
                }
                #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."]
                #[doc = ""]
                #[doc = "Payment: All reserved balances on the account are returned."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "identity."]
                #[doc = ""]
                #[doc = "Emits `IdentityCleared` if successful."]
                pub fn clear_identity(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClearIdentity>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "clear_identity",
                        types::ClearIdentity {},
                        [
                            43u8, 115u8, 205u8, 44u8, 24u8, 130u8, 220u8, 69u8, 247u8, 176u8,
                            200u8, 175u8, 67u8, 183u8, 36u8, 200u8, 162u8, 132u8, 242u8, 25u8,
                            21u8, 106u8, 197u8, 219u8, 141u8, 51u8, 204u8, 13u8, 191u8, 201u8,
                            31u8, 31u8,
                        ],
                    )
                }
                #[doc = "Request a judgement from a registrar."]
                #[doc = ""]
                #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"]
                #[doc = "given."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                #[doc = "registered identity."]
                #[doc = ""]
                #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."]
                #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"]
                #[doc = ""]
                #[doc = "```nocompile"]
                #[doc = "Registrars::<T>::get().get(reg_index).unwrap().fee"]
                #[doc = "```"]
                #[doc = ""]
                #[doc = "Emits `JudgementRequested` if successful."]
                pub fn request_judgement(
                    &self,
                    reg_index: types::request_judgement::RegIndex,
                    max_fee: types::request_judgement::MaxFee,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RequestJudgement>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "request_judgement",
                        types::RequestJudgement { reg_index, max_fee },
                        [
                            83u8, 85u8, 55u8, 184u8, 14u8, 54u8, 49u8, 212u8, 26u8, 148u8, 33u8,
                            147u8, 182u8, 54u8, 180u8, 12u8, 61u8, 179u8, 216u8, 157u8, 103u8,
                            52u8, 120u8, 252u8, 83u8, 203u8, 144u8, 65u8, 15u8, 3u8, 21u8, 33u8,
                        ],
                    )
                }
                #[doc = "Cancel a previous request."]
                #[doc = ""]
                #[doc = "Payment: A previously reserved deposit is returned on success."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                #[doc = "registered identity."]
                #[doc = ""]
                #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."]
                #[doc = ""]
                #[doc = "Emits `JudgementUnrequested` if successful."]
                pub fn cancel_request(
                    &self,
                    reg_index: types::cancel_request::RegIndex,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelRequest>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "cancel_request",
                        types::CancelRequest { reg_index },
                        [
                            81u8, 14u8, 133u8, 219u8, 43u8, 84u8, 163u8, 208u8, 21u8, 185u8, 75u8,
                            117u8, 126u8, 33u8, 210u8, 106u8, 122u8, 210u8, 35u8, 207u8, 104u8,
                            206u8, 41u8, 117u8, 247u8, 108u8, 56u8, 23u8, 123u8, 169u8, 169u8,
                            61u8,
                        ],
                    )
                }
                #[doc = "Set the fee required for a judgement to be requested from a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `fee`: the new fee."]
                pub fn set_fee(
                    &self,
                    index: types::set_fee::Index,
                    fee: types::set_fee::Fee,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetFee>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_fee",
                        types::SetFee { index, fee },
                        [
                            131u8, 20u8, 17u8, 127u8, 180u8, 65u8, 225u8, 144u8, 193u8, 60u8,
                            131u8, 241u8, 30u8, 149u8, 8u8, 76u8, 29u8, 52u8, 102u8, 108u8, 127u8,
                            130u8, 70u8, 18u8, 94u8, 145u8, 179u8, 109u8, 252u8, 219u8, 58u8,
                            163u8,
                        ],
                    )
                }
                #[doc = "Change the account associated with a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `new`: the new account ID."]
                pub fn set_account_id(
                    &self,
                    index: types::set_account_id::Index,
                    new: types::set_account_id::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetAccountId>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_account_id",
                        types::SetAccountId { index, new },
                        [
                            68u8, 57u8, 39u8, 134u8, 39u8, 82u8, 156u8, 107u8, 113u8, 99u8, 9u8,
                            163u8, 58u8, 249u8, 247u8, 208u8, 38u8, 203u8, 54u8, 153u8, 116u8,
                            143u8, 81u8, 46u8, 228u8, 149u8, 127u8, 115u8, 252u8, 83u8, 33u8,
                            101u8,
                        ],
                    )
                }
                #[doc = "Set the field information for a registrar."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `index`."]
                #[doc = ""]
                #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                #[doc = "- `fields`: the fields that the registrar concerns themselves with."]
                pub fn set_fields(
                    &self,
                    index: types::set_fields::Index,
                    fields: types::set_fields::Fields,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetFields>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_fields",
                        types::SetFields { index, fields },
                        [
                            75u8, 38u8, 58u8, 93u8, 92u8, 164u8, 146u8, 146u8, 183u8, 245u8, 135u8,
                            235u8, 12u8, 148u8, 37u8, 193u8, 58u8, 66u8, 173u8, 223u8, 166u8,
                            169u8, 54u8, 159u8, 141u8, 36u8, 25u8, 231u8, 190u8, 211u8, 254u8,
                            38u8,
                        ],
                    )
                }
                #[doc = "Provide a judgement for an account's identity."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                #[doc = "of the registrar whose index is `reg_index`."]
                #[doc = ""]
                #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."]
                #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                #[doc = "  with a registered identity."]
                #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."]
                #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"]
                #[doc = "  provided."]
                #[doc = ""]
                #[doc = "Note: Judgements do not apply to a username."]
                #[doc = ""]
                #[doc = "Emits `JudgementGiven` if successful."]
                pub fn provide_judgement(
                    &self,
                    reg_index: types::provide_judgement::RegIndex,
                    target: types::provide_judgement::Target,
                    judgement: types::provide_judgement::Judgement,
                    identity: types::provide_judgement::Identity,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ProvideJudgement>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "provide_judgement",
                        types::ProvideJudgement {
                            reg_index,
                            target,
                            judgement,
                            identity,
                        },
                        [
                            145u8, 188u8, 61u8, 236u8, 183u8, 49u8, 49u8, 149u8, 240u8, 184u8,
                            202u8, 75u8, 69u8, 0u8, 95u8, 103u8, 132u8, 24u8, 107u8, 221u8, 236u8,
                            75u8, 231u8, 125u8, 39u8, 189u8, 45u8, 202u8, 116u8, 123u8, 236u8,
                            96u8,
                        ],
                    )
                }
                #[doc = "Remove an account's identity and sub-account information and slash the deposits."]
                #[doc = ""]
                #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"]
                #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"]
                #[doc = "manually using `cancel_request`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                #[doc = ""]
                #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                #[doc = "  with a registered identity."]
                #[doc = ""]
                #[doc = "Emits `IdentityKilled` if successful."]
                pub fn kill_identity(
                    &self,
                    target: types::kill_identity::Target,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KillIdentity>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "kill_identity",
                        types::KillIdentity { target },
                        [
                            114u8, 249u8, 102u8, 62u8, 118u8, 105u8, 185u8, 61u8, 173u8, 52u8,
                            57u8, 190u8, 102u8, 74u8, 108u8, 239u8, 142u8, 176u8, 116u8, 51u8,
                            49u8, 197u8, 6u8, 183u8, 248u8, 202u8, 202u8, 140u8, 134u8, 59u8,
                            103u8, 182u8,
                        ],
                    )
                }
                #[doc = "Add the given account to the sender's subs."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub fn add_sub(
                    &self,
                    sub: types::add_sub::Sub,
                    data: types::add_sub::Data,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddSub>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "add_sub",
                        types::AddSub { sub, data },
                        [
                            3u8, 65u8, 137u8, 35u8, 238u8, 133u8, 56u8, 233u8, 37u8, 125u8, 221u8,
                            186u8, 153u8, 74u8, 69u8, 196u8, 244u8, 82u8, 51u8, 7u8, 216u8, 29u8,
                            18u8, 16u8, 198u8, 184u8, 0u8, 181u8, 71u8, 227u8, 144u8, 33u8,
                        ],
                    )
                }
                #[doc = "Alter the associated name of the given sub-account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub fn rename_sub(
                    &self,
                    sub: types::rename_sub::Sub,
                    data: types::rename_sub::Data,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RenameSub>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "rename_sub",
                        types::RenameSub { sub, data },
                        [
                            252u8, 50u8, 201u8, 112u8, 49u8, 248u8, 223u8, 239u8, 219u8, 226u8,
                            64u8, 68u8, 227u8, 20u8, 30u8, 24u8, 36u8, 77u8, 26u8, 235u8, 144u8,
                            240u8, 11u8, 111u8, 145u8, 167u8, 184u8, 207u8, 173u8, 58u8, 152u8,
                            202u8,
                        ],
                    )
                }
                #[doc = "Remove the given account from the sender's subs."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "sub identity of `sub`."]
                pub fn remove_sub(
                    &self,
                    sub: types::remove_sub::Sub,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveSub>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "remove_sub",
                        types::RemoveSub { sub },
                        [
                            95u8, 249u8, 171u8, 27u8, 100u8, 186u8, 67u8, 214u8, 226u8, 6u8, 118u8,
                            39u8, 91u8, 122u8, 1u8, 87u8, 1u8, 226u8, 101u8, 9u8, 199u8, 167u8,
                            84u8, 202u8, 141u8, 196u8, 80u8, 195u8, 15u8, 114u8, 140u8, 144u8,
                        ],
                    )
                }
                #[doc = "Remove the sender as a sub-account."]
                #[doc = ""]
                #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                #[doc = "to the sender (*not* the original depositor)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                #[doc = "super-identity."]
                #[doc = ""]
                #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"]
                #[doc = "controller of an account is maliciously registered as a sub-account."]
                pub fn quit_sub(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::QuitSub>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "quit_sub",
                        types::QuitSub {},
                        [
                            147u8, 131u8, 175u8, 171u8, 187u8, 201u8, 240u8, 26u8, 146u8, 224u8,
                            74u8, 166u8, 242u8, 193u8, 204u8, 247u8, 168u8, 93u8, 18u8, 32u8, 27u8,
                            208u8, 149u8, 146u8, 179u8, 172u8, 75u8, 112u8, 84u8, 141u8, 233u8,
                            223u8,
                        ],
                    )
                }
                #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."]
                #[doc = ""]
                #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"]
                #[doc = "change the account used to grant usernames, this call can be used with the updated"]
                #[doc = "parameters to overwrite the existing configuration."]
                pub fn add_username_authority(
                    &self,
                    authority: types::add_username_authority::Authority,
                    suffix: types::add_username_authority::Suffix,
                    allocation: types::add_username_authority::Allocation,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddUsernameAuthority>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "add_username_authority",
                        types::AddUsernameAuthority {
                            authority,
                            suffix,
                            allocation,
                        },
                        [
                            225u8, 197u8, 122u8, 209u8, 206u8, 241u8, 247u8, 232u8, 196u8, 110u8,
                            75u8, 157u8, 44u8, 181u8, 35u8, 75u8, 182u8, 219u8, 100u8, 64u8, 208u8,
                            112u8, 120u8, 229u8, 211u8, 69u8, 193u8, 214u8, 195u8, 98u8, 10u8,
                            25u8,
                        ],
                    )
                }
                #[doc = "Remove `authority` from the username authorities."]
                pub fn remove_username_authority(
                    &self,
                    suffix: types::remove_username_authority::Suffix,
                    authority: types::remove_username_authority::Authority,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveUsernameAuthority,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "remove_username_authority",
                        types::RemoveUsernameAuthority { suffix, authority },
                        [
                            97u8, 5u8, 0u8, 114u8, 226u8, 202u8, 96u8, 101u8, 141u8, 79u8, 242u8,
                            232u8, 203u8, 98u8, 24u8, 18u8, 133u8, 168u8, 153u8, 14u8, 50u8, 17u8,
                            92u8, 9u8, 157u8, 251u8, 214u8, 214u8, 146u8, 140u8, 28u8, 6u8,
                        ],
                    )
                }
                #[doc = "Set the username for `who`. Must be called by a username authority."]
                #[doc = ""]
                #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"]
                #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"]
                #[doc = "username."]
                #[doc = ""]
                #[doc = "Users can either pre-sign their usernames or"]
                #[doc = "accept them later."]
                #[doc = ""]
                #[doc = "Usernames must:"]
                #[doc = "  - Only contain lowercase ASCII characters or digits."]
                #[doc = "  - When combined with the suffix of the issuing authority be _less than_ the"]
                #[doc = "    `MaxUsernameLength`."]
                pub fn set_username_for(
                    &self,
                    who: types::set_username_for::Who,
                    username: types::set_username_for::Username,
                    signature: types::set_username_for::Signature,
                    use_allocation: types::set_username_for::UseAllocation,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetUsernameFor>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_username_for",
                        types::SetUsernameFor {
                            who,
                            username,
                            signature,
                            use_allocation,
                        },
                        [
                            16u8, 81u8, 74u8, 12u8, 146u8, 54u8, 107u8, 75u8, 37u8, 22u8, 226u8,
                            228u8, 113u8, 167u8, 188u8, 17u8, 243u8, 163u8, 25u8, 236u8, 132u8,
                            216u8, 217u8, 73u8, 174u8, 59u8, 41u8, 206u8, 106u8, 172u8, 128u8,
                            27u8,
                        ],
                    )
                }
                #[doc = "Accept a given username that an `authority` granted. The call must include the full"]
                #[doc = "username, as in `username.suffix`."]
                pub fn accept_username(
                    &self,
                    username: types::accept_username::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AcceptUsername>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "accept_username",
                        types::AcceptUsername { username },
                        [
                            247u8, 162u8, 83u8, 250u8, 214u8, 7u8, 12u8, 253u8, 227u8, 4u8, 95u8,
                            71u8, 150u8, 218u8, 216u8, 86u8, 137u8, 37u8, 114u8, 188u8, 18u8,
                            232u8, 229u8, 179u8, 172u8, 251u8, 70u8, 29u8, 18u8, 86u8, 33u8, 129u8,
                        ],
                    )
                }
                #[doc = "Remove an expired username approval. The username was approved by an authority but never"]
                #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"]
                #[doc = "full username, as in `username.suffix`."]
                pub fn remove_expired_approval(
                    &self,
                    username: types::remove_expired_approval::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveExpiredApproval,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "remove_expired_approval",
                        types::RemoveExpiredApproval { username },
                        [
                            159u8, 171u8, 27u8, 97u8, 224u8, 171u8, 14u8, 89u8, 65u8, 213u8, 208u8,
                            67u8, 118u8, 146u8, 0u8, 131u8, 82u8, 186u8, 142u8, 52u8, 173u8, 90u8,
                            104u8, 107u8, 114u8, 202u8, 123u8, 222u8, 49u8, 53u8, 59u8, 61u8,
                        ],
                    )
                }
                #[doc = "Set a given username as the primary. The username should include the suffix."]
                pub fn set_primary_username(
                    &self,
                    username: types::set_primary_username::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetPrimaryUsername>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "set_primary_username",
                        types::SetPrimaryUsername { username },
                        [
                            3u8, 25u8, 56u8, 26u8, 108u8, 165u8, 84u8, 231u8, 16u8, 4u8, 6u8,
                            232u8, 141u8, 7u8, 254u8, 50u8, 26u8, 230u8, 66u8, 245u8, 255u8, 101u8,
                            183u8, 234u8, 197u8, 186u8, 132u8, 197u8, 251u8, 84u8, 212u8, 162u8,
                        ],
                    )
                }
                #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."]
                #[doc = "Once the grace period has passed, the username can be deleted by calling"]
                #[doc = "[remove_username](crate::Call::remove_username)."]
                pub fn unbind_username(
                    &self,
                    username: types::unbind_username::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UnbindUsername>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "unbind_username",
                        types::UnbindUsername { username },
                        [
                            231u8, 59u8, 154u8, 107u8, 195u8, 183u8, 146u8, 12u8, 232u8, 249u8,
                            119u8, 51u8, 99u8, 223u8, 197u8, 231u8, 249u8, 66u8, 189u8, 148u8,
                            207u8, 163u8, 192u8, 150u8, 151u8, 111u8, 86u8, 170u8, 123u8, 194u8,
                            141u8, 251u8,
                        ],
                    )
                }
                #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."]
                #[doc = "Caller is refunded the fee if the username expired and the removal was successful."]
                pub fn remove_username(
                    &self,
                    username: types::remove_username::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveUsername>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "remove_username",
                        types::RemoveUsername { username },
                        [
                            68u8, 30u8, 96u8, 37u8, 56u8, 235u8, 48u8, 61u8, 77u8, 235u8, 6u8, 4u8,
                            123u8, 85u8, 176u8, 90u8, 255u8, 196u8, 178u8, 190u8, 230u8, 228u8,
                            70u8, 141u8, 156u8, 156u8, 34u8, 7u8, 177u8, 204u8, 152u8, 145u8,
                        ],
                    )
                }
                #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"]
                #[doc = "and slashes any deposit associated with it."]
                pub fn kill_username(
                    &self,
                    username: types::kill_username::Username,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KillUsername>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Identity",
                        "kill_username",
                        types::KillUsername { username },
                        [
                            147u8, 229u8, 92u8, 195u8, 22u8, 114u8, 25u8, 16u8, 125u8, 80u8, 226u8,
                            188u8, 47u8, 199u8, 13u8, 245u8, 60u8, 93u8, 84u8, 97u8, 82u8, 238u8,
                            248u8, 44u8, 171u8, 132u8, 66u8, 0u8, 151u8, 108u8, 96u8, 25u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_identity::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A name was set or reset (which will remove all judgements)."]
            pub struct IdentitySet {
                pub who: identity_set::Who,
            }
            pub mod identity_set {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IdentitySet {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "IdentitySet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A name was cleared, and the given balance returned."]
            pub struct IdentityCleared {
                pub who: identity_cleared::Who,
                pub deposit: identity_cleared::Deposit,
            }
            pub mod identity_cleared {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Deposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IdentityCleared {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "IdentityCleared";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A name was removed and the given balance slashed."]
            pub struct IdentityKilled {
                pub who: identity_killed::Who,
                pub deposit: identity_killed::Deposit,
            }
            pub mod identity_killed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Deposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IdentityKilled {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "IdentityKilled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A judgement was asked from a registrar."]
            pub struct JudgementRequested {
                pub who: judgement_requested::Who,
                pub registrar_index: judgement_requested::RegistrarIndex,
            }
            pub mod judgement_requested {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RegistrarIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for JudgementRequested {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "JudgementRequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A judgement request was retracted."]
            pub struct JudgementUnrequested {
                pub who: judgement_unrequested::Who,
                pub registrar_index: judgement_unrequested::RegistrarIndex,
            }
            pub mod judgement_unrequested {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RegistrarIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for JudgementUnrequested {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "JudgementUnrequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A judgement was given by a registrar."]
            pub struct JudgementGiven {
                pub target: judgement_given::Target,
                pub registrar_index: judgement_given::RegistrarIndex,
            }
            pub mod judgement_given {
                use super::runtime_types;
                pub type Target = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RegistrarIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for JudgementGiven {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "JudgementGiven";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A registrar was added."]
            pub struct RegistrarAdded {
                pub registrar_index: registrar_added::RegistrarIndex,
            }
            pub mod registrar_added {
                use super::runtime_types;
                pub type RegistrarIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RegistrarAdded {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "RegistrarAdded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A sub-identity was added to an identity and the deposit paid."]
            pub struct SubIdentityAdded {
                pub sub: sub_identity_added::Sub,
                pub main: sub_identity_added::Main,
                pub deposit: sub_identity_added::Deposit,
            }
            pub mod sub_identity_added {
                use super::runtime_types;
                pub type Sub = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Main = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Deposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentityAdded {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "SubIdentityAdded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account's sub-identities were set (in bulk)."]
            pub struct SubIdentitiesSet {
                pub main: sub_identities_set::Main,
                pub number_of_subs: sub_identities_set::NumberOfSubs,
                pub new_deposit: sub_identities_set::NewDeposit,
            }
            pub mod sub_identities_set {
                use super::runtime_types;
                pub type Main = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type NumberOfSubs = ::core::primitive::u32;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentitiesSet {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "SubIdentitiesSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A given sub-account's associated name was changed by its super-identity."]
            pub struct SubIdentityRenamed {
                pub sub: sub_identity_renamed::Sub,
                pub main: sub_identity_renamed::Main,
            }
            pub mod sub_identity_renamed {
                use super::runtime_types;
                pub type Sub = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Main = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentityRenamed {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "SubIdentityRenamed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A sub-identity was removed from an identity and the deposit freed."]
            pub struct SubIdentityRemoved {
                pub sub: sub_identity_removed::Sub,
                pub main: sub_identity_removed::Main,
                pub deposit: sub_identity_removed::Deposit,
            }
            pub mod sub_identity_removed {
                use super::runtime_types;
                pub type Sub = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Main = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Deposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentityRemoved {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "SubIdentityRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A sub-identity was cleared, and the given deposit repatriated from the"]
            #[doc = "main identity account to the sub-identity account."]
            pub struct SubIdentityRevoked {
                pub sub: sub_identity_revoked::Sub,
                pub main: sub_identity_revoked::Main,
                pub deposit: sub_identity_revoked::Deposit,
            }
            pub mod sub_identity_revoked {
                use super::runtime_types;
                pub type Sub = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Main = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Deposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentityRevoked {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "SubIdentityRevoked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username authority was added."]
            pub struct AuthorityAdded {
                pub authority: authority_added::Authority,
            }
            pub mod authority_added {
                use super::runtime_types;
                pub type Authority = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityAdded {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "AuthorityAdded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username authority was removed."]
            pub struct AuthorityRemoved {
                pub authority: authority_removed::Authority,
            }
            pub mod authority_removed {
                use super::runtime_types;
                pub type Authority = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityRemoved {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "AuthorityRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username was set for `who`."]
            pub struct UsernameSet {
                pub who: username_set::Who,
                pub username: username_set::Username,
            }
            pub mod username_set {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameSet {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "UsernameSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username was queued, but `who` must accept it prior to `expiration`."]
            pub struct UsernameQueued {
                pub who: username_queued::Who,
                pub username: username_queued::Username,
                pub expiration: username_queued::Expiration,
            }
            pub mod username_queued {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
                pub type Expiration = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameQueued {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "UsernameQueued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A queued username passed its expiration without being claimed and was removed."]
            pub struct PreapprovalExpired {
                pub whose: preapproval_expired::Whose,
            }
            pub mod preapproval_expired {
                use super::runtime_types;
                pub type Whose = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PreapprovalExpired {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "PreapprovalExpired";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username was set as a primary and can be looked up from `who`."]
            pub struct PrimaryUsernameSet {
                pub who: primary_username_set::Who,
                pub username: primary_username_set::Username,
            }
            pub mod primary_username_set {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PrimaryUsernameSet {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "PrimaryUsernameSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"]
            #[doc = "identity) has been removed."]
            pub struct DanglingUsernameRemoved {
                pub who: dangling_username_removed::Who,
                pub username: dangling_username_removed::Username,
            }
            pub mod dangling_username_removed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DanglingUsernameRemoved {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "DanglingUsernameRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username has been unbound."]
            pub struct UsernameUnbound {
                pub username: username_unbound::Username,
            }
            pub mod username_unbound {
                use super::runtime_types;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameUnbound {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "UsernameUnbound";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username has been removed."]
            pub struct UsernameRemoved {
                pub username: username_removed::Username,
            }
            pub mod username_removed {
                use super::runtime_types;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameRemoved {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "UsernameRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A username has been killed."]
            pub struct UsernameKilled {
                pub username: username_killed::Username,
            }
            pub mod username_killed {
                use super::runtime_types;
                pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameKilled {
                const PALLET: &'static str = "Identity";
                const EVENT: &'static str = "UsernameKilled";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod identity_of {
                    use super::runtime_types;
                    pub type IdentityOf = runtime_types::pallet_identity::types::Registration<
                        ::core::primitive::u128,
                        runtime_types::pallet_identity::legacy::IdentityInfo,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod username_of {
                    use super::runtime_types;
                    pub type UsernameOf =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod super_of {
                    use super::runtime_types;
                    pub type SuperOf = (
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::pallet_identity::types::Data,
                    );
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod subs_of {
                    use super::runtime_types;
                    pub type SubsOf = (
                        ::core::primitive::u128,
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    );
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod registrars {
                    use super::runtime_types;
                    pub type Registrars =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::option::Option<
                                runtime_types::pallet_identity::types::RegistrarInfo<
                                    ::core::primitive::u128,
                                    ::subxt::ext::subxt_core::utils::AccountId32,
                                    ::core::primitive::u64,
                                >,
                            >,
                        >;
                }
                pub mod authority_of {
                    use super::runtime_types;
                    pub type AuthorityOf =
                        runtime_types::pallet_identity::types::AuthorityProperties<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >;
                    pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                pub mod username_info_of {
                    use super::runtime_types;
                    pub type UsernameInfoOf =
                        runtime_types::pallet_identity::types::UsernameInformation<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            ::core::primitive::u128,
                        >;
                    pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                pub mod pending_usernames {
                    use super::runtime_types;
                    pub type PendingUsernames = (
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u32,
                        runtime_types::pallet_identity::types::Provider<::core::primitive::u128>,
                    );
                    pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
                pub mod unbinding_usernames {
                    use super::runtime_types;
                    pub type UnbindingUsernames = ::core::primitive::u32;
                    pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"]
                #[doc = " registration, second is the account's primary username."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."]
                pub fn identity_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::identity_of::IdentityOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "IdentityOf",
                        (),
                        [
                            112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8,
                            49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8,
                            77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8,
                        ],
                    )
                }
                #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"]
                #[doc = " registration, second is the account's primary username."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."]
                pub fn identity_of(
                    &self,
                    _0: types::identity_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::identity_of::Param0,
                    >,
                    types::identity_of::IdentityOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "IdentityOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8,
                            49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8,
                            77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8,
                        ],
                    )
                }
                #[doc = " Identifies the primary username of an account."]
                pub fn username_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::username_of::UsernameOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameOf",
                        (),
                        [
                            244u8, 21u8, 1u8, 155u8, 204u8, 65u8, 229u8, 41u8, 67u8, 9u8, 51u8,
                            153u8, 6u8, 234u8, 151u8, 41u8, 221u8, 68u8, 144u8, 43u8, 197u8, 133u8,
                            35u8, 252u8, 159u8, 128u8, 208u8, 1u8, 129u8, 102u8, 134u8, 142u8,
                        ],
                    )
                }
                #[doc = " Identifies the primary username of an account."]
                pub fn username_of(
                    &self,
                    _0: types::username_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::username_of::Param0,
                    >,
                    types::username_of::UsernameOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            244u8, 21u8, 1u8, 155u8, 204u8, 65u8, 229u8, 41u8, 67u8, 9u8, 51u8,
                            153u8, 6u8, 234u8, 151u8, 41u8, 221u8, 68u8, 144u8, 43u8, 197u8, 133u8,
                            35u8, 252u8, 159u8, 128u8, 208u8, 1u8, 129u8, 102u8, 134u8, 142u8,
                        ],
                    )
                }
                #[doc = " The super-identity of an alternative \"sub\" identity together with its name, within that"]
                #[doc = " context. If the account is not some other account's sub-identity, then just `None`."]
                pub fn super_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::super_of::SuperOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "SuperOf",
                        (),
                        [
                            84u8, 72u8, 64u8, 14u8, 56u8, 9u8, 143u8, 100u8, 141u8, 163u8, 36u8,
                            55u8, 38u8, 254u8, 164u8, 17u8, 3u8, 110u8, 88u8, 175u8, 161u8, 65u8,
                            159u8, 40u8, 46u8, 8u8, 177u8, 81u8, 130u8, 38u8, 193u8, 28u8,
                        ],
                    )
                }
                #[doc = " The super-identity of an alternative \"sub\" identity together with its name, within that"]
                #[doc = " context. If the account is not some other account's sub-identity, then just `None`."]
                pub fn super_of(
                    &self,
                    _0: types::super_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::super_of::Param0,
                    >,
                    types::super_of::SuperOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "SuperOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            84u8, 72u8, 64u8, 14u8, 56u8, 9u8, 143u8, 100u8, 141u8, 163u8, 36u8,
                            55u8, 38u8, 254u8, 164u8, 17u8, 3u8, 110u8, 88u8, 175u8, 161u8, 65u8,
                            159u8, 40u8, 46u8, 8u8, 177u8, 81u8, 130u8, 38u8, 193u8, 28u8,
                        ],
                    )
                }
                #[doc = " Alternative \"sub\" identities of this account."]
                #[doc = ""]
                #[doc = " The first item is the deposit, the second is a vector of the accounts."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."]
                pub fn subs_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::subs_of::SubsOf,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "SubsOf",
                        (),
                        [
                            164u8, 140u8, 52u8, 123u8, 220u8, 118u8, 147u8, 3u8, 67u8, 22u8, 191u8,
                            18u8, 186u8, 21u8, 154u8, 8u8, 205u8, 224u8, 163u8, 173u8, 174u8,
                            107u8, 144u8, 215u8, 116u8, 64u8, 159u8, 115u8, 159u8, 205u8, 91u8,
                            28u8,
                        ],
                    )
                }
                #[doc = " Alternative \"sub\" identities of this account."]
                #[doc = ""]
                #[doc = " The first item is the deposit, the second is a vector of the accounts."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."]
                pub fn subs_of(
                    &self,
                    _0: types::subs_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::subs_of::Param0,
                    >,
                    types::subs_of::SubsOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "SubsOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            164u8, 140u8, 52u8, 123u8, 220u8, 118u8, 147u8, 3u8, 67u8, 22u8, 191u8,
                            18u8, 186u8, 21u8, 154u8, 8u8, 205u8, 224u8, 163u8, 173u8, 174u8,
                            107u8, 144u8, 215u8, 116u8, 64u8, 159u8, 115u8, 159u8, 205u8, 91u8,
                            28u8,
                        ],
                    )
                }
                #[doc = " The set of registrars. Not expected to get very big as can only be added through a"]
                #[doc = " special origin (likely a council motion)."]
                #[doc = ""]
                #[doc = " The index into this can be cast to `RegistrarIndex` to get a valid value."]
                pub fn registrars(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::registrars::Registrars,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "Registrars",
                        (),
                        [
                            167u8, 99u8, 159u8, 117u8, 103u8, 243u8, 208u8, 113u8, 57u8, 225u8,
                            27u8, 25u8, 188u8, 120u8, 15u8, 40u8, 134u8, 169u8, 108u8, 134u8, 83u8,
                            184u8, 223u8, 170u8, 194u8, 19u8, 168u8, 43u8, 119u8, 76u8, 94u8,
                            154u8,
                        ],
                    )
                }
                #[doc = " A map of the accounts who are authorized to grant usernames."]
                pub fn authority_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authority_of::AuthorityOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "AuthorityOf",
                        (),
                        [
                            29u8, 200u8, 4u8, 178u8, 88u8, 232u8, 90u8, 28u8, 236u8, 206u8, 135u8,
                            39u8, 154u8, 91u8, 160u8, 212u8, 30u8, 45u8, 126u8, 198u8, 219u8, 50u8,
                            37u8, 83u8, 87u8, 44u8, 179u8, 131u8, 152u8, 1u8, 25u8, 141u8,
                        ],
                    )
                }
                #[doc = " A map of the accounts who are authorized to grant usernames."]
                pub fn authority_of(
                    &self,
                    _0: types::authority_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::authority_of::Param0,
                    >,
                    types::authority_of::AuthorityOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "AuthorityOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            29u8, 200u8, 4u8, 178u8, 88u8, 232u8, 90u8, 28u8, 236u8, 206u8, 135u8,
                            39u8, 154u8, 91u8, 160u8, 212u8, 30u8, 45u8, 126u8, 198u8, 219u8, 50u8,
                            37u8, 83u8, 87u8, 44u8, 179u8, 131u8, 152u8, 1u8, 25u8, 141u8,
                        ],
                    )
                }
                #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of"]
                #[doc = " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if"]
                #[doc = " the user has cleared their username or it has been removed."]
                #[doc = ""]
                #[doc = " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one"]
                #[doc = " primary username."]
                pub fn username_info_of_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::username_info_of::UsernameInfoOf,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameInfoOf",
                        (),
                        [
                            178u8, 18u8, 32u8, 252u8, 199u8, 40u8, 12u8, 69u8, 228u8, 214u8, 161u8,
                            210u8, 236u8, 179u8, 63u8, 40u8, 49u8, 16u8, 238u8, 30u8, 78u8, 111u8,
                            14u8, 141u8, 181u8, 3u8, 40u8, 78u8, 83u8, 174u8, 80u8, 20u8,
                        ],
                    )
                }
                #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of"]
                #[doc = " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if"]
                #[doc = " the user has cleared their username or it has been removed."]
                #[doc = ""]
                #[doc = " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one"]
                #[doc = " primary username."]
                pub fn username_info_of(
                    &self,
                    _0: types::username_info_of::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::username_info_of::Param0,
                    >,
                    types::username_info_of::UsernameInfoOf,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameInfoOf",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            178u8, 18u8, 32u8, 252u8, 199u8, 40u8, 12u8, 69u8, 228u8, 214u8, 161u8,
                            210u8, 236u8, 179u8, 63u8, 40u8, 49u8, 16u8, 238u8, 30u8, 78u8, 111u8,
                            14u8, 141u8, 181u8, 3u8, 40u8, 78u8, 83u8, 174u8, 80u8, 20u8,
                        ],
                    )
                }
                #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"]
                #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"]
                #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"]
                #[doc = " [accept_username](`Call::accept_username`)."]
                #[doc = ""]
                #[doc = " First tuple item is the account and second is the acceptance deadline."]
                pub fn pending_usernames_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pending_usernames::PendingUsernames,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "PendingUsernames",
                        (),
                        [
                            18u8, 46u8, 0u8, 180u8, 231u8, 237u8, 159u8, 69u8, 216u8, 142u8, 172u8,
                            114u8, 193u8, 49u8, 239u8, 71u8, 119u8, 189u8, 155u8, 56u8, 19u8,
                            225u8, 70u8, 123u8, 140u8, 32u8, 69u8, 22u8, 115u8, 240u8, 192u8,
                            210u8,
                        ],
                    )
                }
                #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"]
                #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"]
                #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"]
                #[doc = " [accept_username](`Call::accept_username`)."]
                #[doc = ""]
                #[doc = " First tuple item is the account and second is the acceptance deadline."]
                pub fn pending_usernames(
                    &self,
                    _0: types::pending_usernames::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::pending_usernames::Param0,
                    >,
                    types::pending_usernames::PendingUsernames,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "PendingUsernames",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            18u8, 46u8, 0u8, 180u8, 231u8, 237u8, 159u8, 69u8, 216u8, 142u8, 172u8,
                            114u8, 193u8, 49u8, 239u8, 71u8, 119u8, 189u8, 155u8, 56u8, 19u8,
                            225u8, 70u8, 123u8, 140u8, 32u8, 69u8, 22u8, 115u8, 240u8, 192u8,
                            210u8,
                        ],
                    )
                }
                #[doc = " Usernames for which the authority that granted them has started the removal process by"]
                #[doc = " unbinding them. Each unbinding username maps to its grace period expiry, which is the first"]
                #[doc = " block in which the username could be deleted through a"]
                #[doc = " [remove_username](`Call::remove_username`) call."]
                pub fn unbinding_usernames_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::unbinding_usernames::UnbindingUsernames,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UnbindingUsernames",
                        (),
                        [
                            145u8, 43u8, 133u8, 230u8, 34u8, 51u8, 136u8, 184u8, 144u8, 51u8, 72u8,
                            134u8, 216u8, 235u8, 201u8, 241u8, 6u8, 34u8, 41u8, 111u8, 150u8,
                            137u8, 244u8, 79u8, 97u8, 249u8, 30u8, 98u8, 178u8, 103u8, 9u8, 78u8,
                        ],
                    )
                }
                #[doc = " Usernames for which the authority that granted them has started the removal process by"]
                #[doc = " unbinding them. Each unbinding username maps to its grace period expiry, which is the first"]
                #[doc = " block in which the username could be deleted through a"]
                #[doc = " [remove_username](`Call::remove_username`) call."]
                pub fn unbinding_usernames(
                    &self,
                    _0: types::unbinding_usernames::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::unbinding_usernames::Param0,
                    >,
                    types::unbinding_usernames::UnbindingUsernames,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Identity",
                        "UnbindingUsernames",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            145u8, 43u8, 133u8, 230u8, 34u8, 51u8, 136u8, 184u8, 144u8, 51u8, 72u8,
                            134u8, 216u8, 235u8, 201u8, 241u8, 6u8, 34u8, 41u8, 111u8, 150u8,
                            137u8, 244u8, 79u8, 97u8, 249u8, 30u8, 98u8, 178u8, 103u8, 9u8, 78u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The amount held on deposit for a registered identity."]
                pub fn basic_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "BasicDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount held on deposit per encoded byte for a registered identity."]
                pub fn byte_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "ByteDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount held on deposit per registered username. This value should change only in"]
                #[doc = " runtime upgrades with proper migration of existing deposits."]
                pub fn username_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount held on deposit for a registered subaccount. This should account for the fact"]
                #[doc = " that one storage item's value will increase by the size of an account ID, and there will"]
                #[doc = " be another trie item whose value is the size of an account ID plus 32 bytes."]
                pub fn sub_account_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "SubAccountDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum number of sub-accounts allowed per identified account."]
                pub fn max_sub_accounts(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "MaxSubAccounts",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Maximum number of registrars allowed in the system. Needed to bound the complexity"]
                #[doc = " of, e.g., updating judgements."]
                pub fn max_registrars(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "MaxRegistrars",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks within which a username grant must be accepted."]
                pub fn pending_username_expiration(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "PendingUsernameExpiration",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks that must pass to enable the permanent deletion of a username by"]
                #[doc = " its respective authority."]
                pub fn username_grace_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "UsernameGracePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum length of a suffix."]
                pub fn max_suffix_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "MaxSuffixLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum length of a username, including its suffix and any system-added delimiters."]
                pub fn max_username_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Identity",
                        "MaxUsernameLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod society {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_society::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_society::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "A user outside of the society can make a bid for entry."]
                #[doc = ""]
                #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"]
                #[doc = "when the bid becomes a member, or if the bid calls `unbid`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."]
                pub struct Bid {
                    pub value: bid::Value,
                }
                pub mod bid {
                    use super::runtime_types;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Bid {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "bid";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "A bidder can remove their bid for entry into society."]
                #[doc = "By doing so, they will have their candidate deposit returned or"]
                #[doc = "they will unvouch their voucher."]
                #[doc = ""]
                #[doc = "Payment: The bid deposit is unreserved if the user made a bid."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."]
                pub struct Unbid;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unbid {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "unbid";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."]
                #[doc = ""]
                #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"]
                #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"]
                #[doc = "the suspension judgement origin, the member will be banned from vouching again."]
                #[doc = ""]
                #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"]
                #[doc = "be paid as a portion of the reward the member will receive for joining the society."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who`: The user who you would like to vouch for."]
                #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"]
                #[doc = "a member in the society."]
                #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"]
                #[doc = "the society. Tips larger than `value` will be saturated upon payout."]
                pub struct Vouch {
                    pub who: vouch::Who,
                    pub value: vouch::Value,
                    pub tip: vouch::Tip,
                }
                pub mod vouch {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                    pub type Tip = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vouch {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "vouch";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"]
                #[doc = "only a bidder (and not a candidate)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."]
                pub struct Unvouch;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unvouch {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "unvouch";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "As a member, vote on a candidate."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `candidate`: The candidate that the member would like to bid on."]
                #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"]
                #[doc = "  rejected (`false`)."]
                pub struct Vote {
                    pub candidate: vote::Candidate,
                    pub approve: vote::Approve,
                }
                pub mod vote {
                    use super::runtime_types;
                    pub type Candidate = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Approve = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vote {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "vote";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "As a member, vote on the defender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `approve`: A boolean which says if the candidate should be"]
                #[doc = "approved (`true`) or rejected (`false`)."]
                pub struct DefenderVote {
                    pub approve: defender_vote::Approve,
                }
                pub mod defender_vote {
                    use super::runtime_types;
                    pub type Approve = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DefenderVote {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "defender_vote";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer the first matured payout for the sender and remove it from the records."]
                #[doc = ""]
                #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"]
                #[doc = "payouts."]
                #[doc = ""]
                #[doc = "Payment: The member will receive a payment equal to their first matured"]
                #[doc = "payout to their free balance."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member with"]
                #[doc = "payouts remaining."]
                pub struct Payout;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Payout {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "payout";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Repay the payment previously given to the member with the signed origin, remove any"]
                #[doc = "pending payments, and elevate them from rank 0 to rank 1."]
                pub struct WaiveRepay {
                    pub amount: waive_repay::Amount,
                }
                pub mod waive_repay {
                    use super::runtime_types;
                    pub type Amount = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for WaiveRepay {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "waive_repay";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Found the society."]
                #[doc = ""]
                #[doc = "This is done as a discrete action in order to allow for the"]
                #[doc = "pallet to be included into a running chain and can only be done once."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `founder` - The first member and head of the newly founded society."]
                #[doc = "- `max_members` - The initial max number of members for the society."]
                #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                #[doc = "  suspended and may only be reinstated by the founder."]
                #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                #[doc = "- `rules` - The rules of this society concerning membership."]
                #[doc = ""]
                #[doc = "Complexity: O(1)"]
                pub struct FoundSociety {
                    pub founder: found_society::Founder,
                    pub max_members: found_society::MaxMembers,
                    pub max_intake: found_society::MaxIntake,
                    pub max_strikes: found_society::MaxStrikes,
                    pub candidate_deposit: found_society::CandidateDeposit,
                    pub rules: found_society::Rules,
                }
                pub mod found_society {
                    use super::runtime_types;
                    pub type Founder = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type MaxMembers = ::core::primitive::u32;
                    pub type MaxIntake = ::core::primitive::u32;
                    pub type MaxStrikes = ::core::primitive::u32;
                    pub type CandidateDeposit = ::core::primitive::u128;
                    pub type Rules =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FoundSociety {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "found_society";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dissolve the society and remove all members."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"]
                #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"]
                #[doc = "member."]
                pub struct Dissolve;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Dissolve {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "dissolve";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allow suspension judgement origin to make judgement on a suspended member."]
                #[doc = ""]
                #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"]
                #[doc = "any of the existing storage items for that member."]
                #[doc = ""]
                #[doc = "If a suspended member is rejected, remove all associated storage items, including"]
                #[doc = "their payouts, and remove any vouched bids they currently have."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed from the Founder."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who` - The suspended member to be judged."]
                #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"]
                #[doc = "  (`true`) or rejects (`false`) a suspended member."]
                pub struct JudgeSuspendedMember {
                    pub who: judge_suspended_member::Who,
                    pub forgive: judge_suspended_member::Forgive,
                }
                pub mod judge_suspended_member {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Forgive = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for JudgeSuspendedMember {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "judge_suspended_member";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Change the maximum number of members in society and the maximum number of new candidates"]
                #[doc = "in a single intake period."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed by the Founder."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"]
                #[doc = "  than the current number of members."]
                #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                #[doc = "  suspended and may only be reinstated by the founder."]
                #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                pub struct SetParameters {
                    pub max_members: set_parameters::MaxMembers,
                    pub max_intake: set_parameters::MaxIntake,
                    pub max_strikes: set_parameters::MaxStrikes,
                    pub candidate_deposit: set_parameters::CandidateDeposit,
                }
                pub mod set_parameters {
                    use super::runtime_types;
                    pub type MaxMembers = ::core::primitive::u32;
                    pub type MaxIntake = ::core::primitive::u32;
                    pub type MaxStrikes = ::core::primitive::u32;
                    pub type CandidateDeposit = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetParameters {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "set_parameters";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"]
                #[doc = "candidate."]
                pub struct PunishSkeptic;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PunishSkeptic {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "punish_skeptic";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transform an approved candidate into a member. Callable only by the"]
                #[doc = "the candidate, and only after the period for voting has ended."]
                pub struct ClaimMembership;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimMembership {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "claim_membership";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"]
                #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"]
                #[doc = "clearly rejected."]
                pub struct BestowMembership {
                    pub candidate: bestow_membership::Candidate,
                }
                pub mod bestow_membership {
                    use super::runtime_types;
                    pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for BestowMembership {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "bestow_membership";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"]
                #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"]
                #[doc = "have a clear approval."]
                #[doc = ""]
                #[doc = "Any bid deposit is lost and voucher is banned."]
                pub struct KickCandidate {
                    pub candidate: kick_candidate::Candidate,
                }
                pub mod kick_candidate {
                    use super::runtime_types;
                    pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KickCandidate {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "kick_candidate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the candidate's application from the society. Callable only by the candidate."]
                #[doc = ""]
                #[doc = "Any bid deposit is lost and voucher is banned."]
                pub struct ResignCandidacy;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ResignCandidacy {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "resign_candidacy";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"]
                #[doc = "signed origin but only at the end of the subsequent round and only for"]
                #[doc = "a candidate with more rejections than approvals."]
                #[doc = ""]
                #[doc = "The bid deposit is lost and the voucher is banned."]
                pub struct DropCandidate {
                    pub candidate: drop_candidate::Candidate,
                }
                pub mod drop_candidate {
                    use super::runtime_types;
                    pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DropCandidate {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "drop_candidate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove up to `max` stale votes for the given `candidate`."]
                #[doc = ""]
                #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."]
                pub struct CleanupCandidacy {
                    pub candidate: cleanup_candidacy::Candidate,
                    pub max: cleanup_candidacy::Max,
                }
                pub mod cleanup_candidacy {
                    use super::runtime_types;
                    pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Max = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CleanupCandidacy {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "cleanup_candidacy";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."]
                #[doc = ""]
                #[doc = "May be called by any Signed origin, but only after the challenge round is ended."]
                pub struct CleanupChallenge {
                    pub challenge_round: cleanup_challenge::ChallengeRound,
                    pub max: cleanup_challenge::Max,
                }
                pub mod cleanup_challenge {
                    use super::runtime_types;
                    pub type ChallengeRound = ::core::primitive::u32;
                    pub type Max = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CleanupChallenge {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "cleanup_challenge";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke the deposit reserved when bidding."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be the bidder."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit is changed after poking/reconsideration."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub struct PokeDeposit;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Society";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "A user outside of the society can make a bid for entry."]
                #[doc = ""]
                #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"]
                #[doc = "when the bid becomes a member, or if the bid calls `unbid`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."]
                pub fn bid(
                    &self,
                    value: types::bid::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Bid>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "bid",
                        types::Bid { value },
                        [
                            196u8, 8u8, 236u8, 188u8, 3u8, 185u8, 190u8, 227u8, 11u8, 146u8, 225u8,
                            241u8, 196u8, 125u8, 128u8, 67u8, 244u8, 144u8, 10u8, 152u8, 161u8,
                            60u8, 72u8, 33u8, 124u8, 137u8, 40u8, 200u8, 177u8, 21u8, 27u8, 45u8,
                        ],
                    )
                }
                #[doc = "A bidder can remove their bid for entry into society."]
                #[doc = "By doing so, they will have their candidate deposit returned or"]
                #[doc = "they will unvouch their voucher."]
                #[doc = ""]
                #[doc = "Payment: The bid deposit is unreserved if the user made a bid."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."]
                pub fn unbid(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Unbid>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "unbid",
                        types::Unbid {},
                        [
                            188u8, 248u8, 46u8, 6u8, 82u8, 191u8, 129u8, 234u8, 187u8, 249u8, 69u8,
                            242u8, 173u8, 185u8, 209u8, 51u8, 228u8, 80u8, 27u8, 111u8, 59u8,
                            110u8, 180u8, 106u8, 205u8, 6u8, 121u8, 66u8, 232u8, 89u8, 166u8,
                            154u8,
                        ],
                    )
                }
                #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."]
                #[doc = ""]
                #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"]
                #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"]
                #[doc = "the suspension judgement origin, the member will be banned from vouching again."]
                #[doc = ""]
                #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"]
                #[doc = "be paid as a portion of the reward the member will receive for joining the society."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who`: The user who you would like to vouch for."]
                #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"]
                #[doc = "a member in the society."]
                #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"]
                #[doc = "the society. Tips larger than `value` will be saturated upon payout."]
                pub fn vouch(
                    &self,
                    who: types::vouch::Who,
                    value: types::vouch::Value,
                    tip: types::vouch::Tip,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Vouch>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "vouch",
                        types::Vouch { who, value, tip },
                        [
                            112u8, 149u8, 72u8, 181u8, 135u8, 149u8, 62u8, 134u8, 12u8, 214u8, 0u8,
                            31u8, 142u8, 128u8, 27u8, 243u8, 210u8, 197u8, 72u8, 177u8, 164u8,
                            112u8, 223u8, 28u8, 43u8, 149u8, 5u8, 249u8, 157u8, 150u8, 123u8, 58u8,
                        ],
                    )
                }
                #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"]
                #[doc = "only a bidder (and not a candidate)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."]
                pub fn unvouch(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Unvouch>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "unvouch",
                        types::Unvouch {},
                        [
                            205u8, 176u8, 119u8, 76u8, 199u8, 30u8, 22u8, 108u8, 111u8, 117u8,
                            24u8, 9u8, 164u8, 14u8, 126u8, 124u8, 224u8, 50u8, 195u8, 136u8, 244u8,
                            77u8, 238u8, 99u8, 97u8, 133u8, 151u8, 109u8, 245u8, 83u8, 159u8,
                            136u8,
                        ],
                    )
                }
                #[doc = "As a member, vote on a candidate."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `candidate`: The candidate that the member would like to bid on."]
                #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"]
                #[doc = "  rejected (`false`)."]
                pub fn vote(
                    &self,
                    candidate: types::vote::Candidate,
                    approve: types::vote::Approve,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Vote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "vote",
                        types::Vote { candidate, approve },
                        [
                            64u8, 168u8, 166u8, 195u8, 208u8, 246u8, 156u8, 39u8, 195u8, 28u8,
                            153u8, 58u8, 52u8, 185u8, 166u8, 8u8, 108u8, 169u8, 44u8, 70u8, 244u8,
                            244u8, 81u8, 27u8, 236u8, 79u8, 123u8, 176u8, 155u8, 40u8, 154u8, 70u8,
                        ],
                    )
                }
                #[doc = "As a member, vote on the defender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `approve`: A boolean which says if the candidate should be"]
                #[doc = "approved (`true`) or rejected (`false`)."]
                pub fn defender_vote(
                    &self,
                    approve: types::defender_vote::Approve,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DefenderVote>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "defender_vote",
                        types::DefenderVote { approve },
                        [
                            38u8, 196u8, 123u8, 172u8, 243u8, 40u8, 208u8, 63u8, 231u8, 155u8,
                            151u8, 181u8, 58u8, 122u8, 185u8, 86u8, 76u8, 124u8, 168u8, 225u8,
                            37u8, 13u8, 127u8, 250u8, 122u8, 124u8, 140u8, 57u8, 242u8, 214u8,
                            145u8, 119u8,
                        ],
                    )
                }
                #[doc = "Transfer the first matured payout for the sender and remove it from the records."]
                #[doc = ""]
                #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"]
                #[doc = "payouts."]
                #[doc = ""]
                #[doc = "Payment: The member will receive a payment equal to their first matured"]
                #[doc = "payout to their free balance."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a member with"]
                #[doc = "payouts remaining."]
                pub fn payout(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Payout>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "payout",
                        types::Payout {},
                        [
                            214u8, 12u8, 233u8, 89u8, 186u8, 0u8, 61u8, 206u8, 251u8, 1u8, 55u8,
                            0u8, 126u8, 105u8, 55u8, 109u8, 101u8, 104u8, 46u8, 98u8, 62u8, 228u8,
                            64u8, 195u8, 61u8, 24u8, 48u8, 148u8, 146u8, 108u8, 67u8, 52u8,
                        ],
                    )
                }
                #[doc = "Repay the payment previously given to the member with the signed origin, remove any"]
                #[doc = "pending payments, and elevate them from rank 0 to rank 1."]
                pub fn waive_repay(
                    &self,
                    amount: types::waive_repay::Amount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::WaiveRepay>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "waive_repay",
                        types::WaiveRepay { amount },
                        [
                            83u8, 11u8, 65u8, 16u8, 92u8, 73u8, 39u8, 178u8, 16u8, 170u8, 41u8,
                            70u8, 241u8, 255u8, 89u8, 121u8, 50u8, 140u8, 240u8, 31u8, 27u8, 51u8,
                            51u8, 22u8, 241u8, 218u8, 127u8, 76u8, 52u8, 246u8, 214u8, 52u8,
                        ],
                    )
                }
                #[doc = "Found the society."]
                #[doc = ""]
                #[doc = "This is done as a discrete action in order to allow for the"]
                #[doc = "pallet to be included into a running chain and can only be done once."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `founder` - The first member and head of the newly founded society."]
                #[doc = "- `max_members` - The initial max number of members for the society."]
                #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                #[doc = "  suspended and may only be reinstated by the founder."]
                #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                #[doc = "- `rules` - The rules of this society concerning membership."]
                #[doc = ""]
                #[doc = "Complexity: O(1)"]
                pub fn found_society(
                    &self,
                    founder: types::found_society::Founder,
                    max_members: types::found_society::MaxMembers,
                    max_intake: types::found_society::MaxIntake,
                    max_strikes: types::found_society::MaxStrikes,
                    candidate_deposit: types::found_society::CandidateDeposit,
                    rules: types::found_society::Rules,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::FoundSociety>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "found_society",
                        types::FoundSociety {
                            founder,
                            max_members,
                            max_intake,
                            max_strikes,
                            candidate_deposit,
                            rules,
                        },
                        [
                            232u8, 23u8, 175u8, 166u8, 217u8, 99u8, 210u8, 160u8, 122u8, 68u8,
                            169u8, 134u8, 248u8, 126u8, 186u8, 130u8, 97u8, 245u8, 69u8, 159u8,
                            19u8, 52u8, 67u8, 144u8, 77u8, 154u8, 215u8, 67u8, 233u8, 96u8, 40u8,
                            81u8,
                        ],
                    )
                }
                #[doc = "Dissolve the society and remove all members."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"]
                #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"]
                #[doc = "member."]
                pub fn dissolve(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Dissolve>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "dissolve",
                        types::Dissolve {},
                        [
                            159u8, 138u8, 214u8, 34u8, 208u8, 201u8, 11u8, 33u8, 173u8, 66u8,
                            243u8, 3u8, 226u8, 190u8, 199u8, 200u8, 215u8, 210u8, 226u8, 213u8,
                            150u8, 217u8, 192u8, 88u8, 87u8, 202u8, 226u8, 105u8, 20u8, 201u8,
                            50u8, 242u8,
                        ],
                    )
                }
                #[doc = "Allow suspension judgement origin to make judgement on a suspended member."]
                #[doc = ""]
                #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"]
                #[doc = "any of the existing storage items for that member."]
                #[doc = ""]
                #[doc = "If a suspended member is rejected, remove all associated storage items, including"]
                #[doc = "their payouts, and remove any vouched bids they currently have."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed from the Founder."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `who` - The suspended member to be judged."]
                #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"]
                #[doc = "  (`true`) or rejects (`false`) a suspended member."]
                pub fn judge_suspended_member(
                    &self,
                    who: types::judge_suspended_member::Who,
                    forgive: types::judge_suspended_member::Forgive,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::JudgeSuspendedMember>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "judge_suspended_member",
                        types::JudgeSuspendedMember { who, forgive },
                        [
                            219u8, 45u8, 90u8, 201u8, 128u8, 28u8, 215u8, 68u8, 125u8, 127u8, 57u8,
                            207u8, 25u8, 110u8, 162u8, 30u8, 211u8, 208u8, 192u8, 182u8, 69u8,
                            151u8, 233u8, 84u8, 81u8, 72u8, 74u8, 253u8, 106u8, 46u8, 157u8, 21u8,
                        ],
                    )
                }
                #[doc = "Change the maximum number of members in society and the maximum number of new candidates"]
                #[doc = "in a single intake period."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be Signed by the Founder."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"]
                #[doc = "  than the current number of members."]
                #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                #[doc = "  suspended and may only be reinstated by the founder."]
                #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                pub fn set_parameters(
                    &self,
                    max_members: types::set_parameters::MaxMembers,
                    max_intake: types::set_parameters::MaxIntake,
                    max_strikes: types::set_parameters::MaxStrikes,
                    candidate_deposit: types::set_parameters::CandidateDeposit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetParameters>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "set_parameters",
                        types::SetParameters {
                            max_members,
                            max_intake,
                            max_strikes,
                            candidate_deposit,
                        },
                        [
                            141u8, 29u8, 233u8, 249u8, 125u8, 139u8, 186u8, 89u8, 112u8, 201u8,
                            38u8, 108u8, 79u8, 204u8, 140u8, 185u8, 156u8, 202u8, 77u8, 178u8,
                            205u8, 99u8, 36u8, 78u8, 68u8, 94u8, 160u8, 198u8, 176u8, 226u8, 35u8,
                            229u8,
                        ],
                    )
                }
                #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"]
                #[doc = "candidate."]
                pub fn punish_skeptic(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PunishSkeptic>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "punish_skeptic",
                        types::PunishSkeptic {},
                        [
                            69u8, 32u8, 105u8, 1u8, 25u8, 240u8, 148u8, 136u8, 141u8, 97u8, 247u8,
                            14u8, 18u8, 169u8, 184u8, 247u8, 89u8, 145u8, 239u8, 51u8, 161u8,
                            149u8, 37u8, 127u8, 160u8, 54u8, 144u8, 222u8, 54u8, 135u8, 184u8,
                            244u8,
                        ],
                    )
                }
                #[doc = "Transform an approved candidate into a member. Callable only by the"]
                #[doc = "the candidate, and only after the period for voting has ended."]
                pub fn claim_membership(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimMembership>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "claim_membership",
                        types::ClaimMembership {},
                        [
                            129u8, 50u8, 134u8, 231u8, 159u8, 194u8, 140u8, 16u8, 139u8, 189u8,
                            131u8, 82u8, 150u8, 112u8, 138u8, 116u8, 3u8, 28u8, 183u8, 151u8, 19u8,
                            122u8, 29u8, 152u8, 88u8, 123u8, 34u8, 84u8, 42u8, 12u8, 230u8, 220u8,
                        ],
                    )
                }
                #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"]
                #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"]
                #[doc = "clearly rejected."]
                pub fn bestow_membership(
                    &self,
                    candidate: types::bestow_membership::Candidate,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::BestowMembership>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "bestow_membership",
                        types::BestowMembership { candidate },
                        [
                            146u8, 123u8, 220u8, 105u8, 41u8, 24u8, 3u8, 83u8, 38u8, 64u8, 93u8,
                            69u8, 149u8, 46u8, 177u8, 32u8, 197u8, 152u8, 186u8, 198u8, 39u8, 47u8,
                            54u8, 174u8, 86u8, 41u8, 170u8, 74u8, 107u8, 141u8, 169u8, 222u8,
                        ],
                    )
                }
                #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"]
                #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"]
                #[doc = "have a clear approval."]
                #[doc = ""]
                #[doc = "Any bid deposit is lost and voucher is banned."]
                pub fn kick_candidate(
                    &self,
                    candidate: types::kick_candidate::Candidate,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KickCandidate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "kick_candidate",
                        types::KickCandidate { candidate },
                        [
                            51u8, 17u8, 10u8, 153u8, 91u8, 22u8, 117u8, 204u8, 32u8, 141u8, 59u8,
                            94u8, 240u8, 99u8, 247u8, 217u8, 233u8, 39u8, 132u8, 191u8, 225u8,
                            74u8, 140u8, 182u8, 106u8, 74u8, 90u8, 129u8, 71u8, 240u8, 5u8, 70u8,
                        ],
                    )
                }
                #[doc = "Remove the candidate's application from the society. Callable only by the candidate."]
                #[doc = ""]
                #[doc = "Any bid deposit is lost and voucher is banned."]
                pub fn resign_candidacy(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ResignCandidacy>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "resign_candidacy",
                        types::ResignCandidacy {},
                        [
                            40u8, 237u8, 128u8, 221u8, 162u8, 143u8, 104u8, 151u8, 11u8, 97u8,
                            212u8, 53u8, 26u8, 145u8, 124u8, 196u8, 155u8, 118u8, 232u8, 251u8,
                            42u8, 35u8, 11u8, 149u8, 78u8, 99u8, 6u8, 56u8, 23u8, 166u8, 167u8,
                            116u8,
                        ],
                    )
                }
                #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"]
                #[doc = "signed origin but only at the end of the subsequent round and only for"]
                #[doc = "a candidate with more rejections than approvals."]
                #[doc = ""]
                #[doc = "The bid deposit is lost and the voucher is banned."]
                pub fn drop_candidate(
                    &self,
                    candidate: types::drop_candidate::Candidate,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DropCandidate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "drop_candidate",
                        types::DropCandidate { candidate },
                        [
                            140u8, 7u8, 82u8, 134u8, 101u8, 180u8, 217u8, 22u8, 204u8, 194u8,
                            125u8, 165u8, 69u8, 7u8, 193u8, 0u8, 33u8, 246u8, 43u8, 221u8, 110u8,
                            105u8, 227u8, 61u8, 22u8, 110u8, 98u8, 141u8, 44u8, 212u8, 55u8, 157u8,
                        ],
                    )
                }
                #[doc = "Remove up to `max` stale votes for the given `candidate`."]
                #[doc = ""]
                #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."]
                pub fn cleanup_candidacy(
                    &self,
                    candidate: types::cleanup_candidacy::Candidate,
                    max: types::cleanup_candidacy::Max,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CleanupCandidacy>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "cleanup_candidacy",
                        types::CleanupCandidacy { candidate, max },
                        [
                            115u8, 111u8, 140u8, 201u8, 68u8, 53u8, 116u8, 204u8, 131u8, 66u8,
                            13u8, 123u8, 157u8, 235u8, 252u8, 24u8, 126u8, 233u8, 80u8, 227u8,
                            130u8, 231u8, 81u8, 23u8, 104u8, 39u8, 166u8, 3u8, 231u8, 137u8, 172u8,
                            107u8,
                        ],
                    )
                }
                #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."]
                #[doc = ""]
                #[doc = "May be called by any Signed origin, but only after the challenge round is ended."]
                pub fn cleanup_challenge(
                    &self,
                    challenge_round: types::cleanup_challenge::ChallengeRound,
                    max: types::cleanup_challenge::Max,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CleanupChallenge>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "cleanup_challenge",
                        types::CleanupChallenge {
                            challenge_round,
                            max,
                        },
                        [
                            255u8, 67u8, 39u8, 222u8, 23u8, 216u8, 63u8, 255u8, 82u8, 135u8, 30u8,
                            135u8, 120u8, 255u8, 56u8, 223u8, 137u8, 72u8, 128u8, 165u8, 147u8,
                            167u8, 93u8, 17u8, 118u8, 27u8, 32u8, 187u8, 220u8, 206u8, 123u8,
                            242u8,
                        ],
                    )
                }
                #[doc = "Poke the deposit reserved when bidding."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be the bidder."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit is changed after poking/reconsideration."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub fn poke_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Society",
                        "poke_deposit",
                        types::PokeDeposit {},
                        [
                            127u8, 254u8, 187u8, 13u8, 51u8, 85u8, 145u8, 82u8, 61u8, 152u8, 218u8,
                            135u8, 191u8, 67u8, 53u8, 140u8, 42u8, 68u8, 7u8, 14u8, 95u8, 60u8,
                            41u8, 135u8, 32u8, 99u8, 40u8, 111u8, 10u8, 21u8, 103u8, 107u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_society::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The society is founded by the given identity."]
            pub struct Founded {
                pub founder: founded::Founder,
            }
            pub mod founded {
                use super::runtime_types;
                pub type Founder = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Founded {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Founded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A membership bid just happened. The given account is the candidate's ID and their offer"]
            #[doc = "is the second."]
            pub struct Bid {
                pub candidate_id: bid::CandidateId,
                pub offer: bid::Offer,
            }
            pub mod bid {
                use super::runtime_types;
                pub type CandidateId = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Offer = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Bid {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Bid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A membership bid just happened by vouching. The given account is the candidate's ID and"]
            #[doc = "their offer is the second. The vouching party is the third."]
            pub struct Vouch {
                pub candidate_id: vouch::CandidateId,
                pub offer: vouch::Offer,
                pub vouching: vouch::Vouching,
            }
            pub mod vouch {
                use super::runtime_types;
                pub type CandidateId = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Offer = ::core::primitive::u128;
                pub type Vouching = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Vouch {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Vouch";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate was dropped (due to an excess of bids in the system)."]
            pub struct AutoUnbid {
                pub candidate: auto_unbid::Candidate,
            }
            pub mod auto_unbid {
                use super::runtime_types;
                pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AutoUnbid {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "AutoUnbid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate was dropped (by their request)."]
            pub struct Unbid {
                pub candidate: unbid::Candidate,
            }
            pub mod unbid {
                use super::runtime_types;
                pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unbid {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Unbid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate was dropped (by request of who vouched for them)."]
            pub struct Unvouch {
                pub candidate: unvouch::Candidate,
            }
            pub mod unvouch {
                use super::runtime_types;
                pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unvouch {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Unvouch";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A group of candidates have been inducted. The batch's primary is the first value, the"]
            #[doc = "batch in full is the second."]
            pub struct Inducted {
                pub primary: inducted::Primary,
                pub candidates: inducted::Candidates,
            }
            pub mod inducted {
                use super::runtime_types;
                pub type Primary = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Candidates = ::subxt::ext::subxt_core::alloc::vec::Vec<
                    ::subxt::ext::subxt_core::utils::AccountId32,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Inducted {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Inducted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A suspended member has been judged."]
            pub struct SuspendedMemberJudgement {
                pub who: suspended_member_judgement::Who,
                pub judged: suspended_member_judgement::Judged,
            }
            pub mod suspended_member_judgement {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Judged = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SuspendedMemberJudgement {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "SuspendedMemberJudgement";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate has been suspended"]
            pub struct CandidateSuspended {
                pub candidate: candidate_suspended::Candidate,
            }
            pub mod candidate_suspended {
                use super::runtime_types;
                pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateSuspended {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "CandidateSuspended";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A member has been suspended"]
            pub struct MemberSuspended {
                pub member: member_suspended::Member,
            }
            pub mod member_suspended {
                use super::runtime_types;
                pub type Member = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MemberSuspended {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "MemberSuspended";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A member has been challenged"]
            pub struct Challenged {
                pub member: challenged::Member,
            }
            pub mod challenged {
                use super::runtime_types;
                pub type Member = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Challenged {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Challenged";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A vote has been placed"]
            pub struct Vote {
                pub candidate: vote::Candidate,
                pub voter: vote::Voter,
                pub vote: vote::Vote,
            }
            pub mod vote {
                use super::runtime_types;
                pub type Candidate = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Voter = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Vote = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Vote {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Vote";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A vote has been placed for a defending member"]
            pub struct DefenderVote {
                pub voter: defender_vote::Voter,
                pub vote: defender_vote::Vote,
            }
            pub mod defender_vote {
                use super::runtime_types;
                pub type Voter = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Vote = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DefenderVote {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "DefenderVote";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new set of \\[params\\] has been set for the group."]
            pub struct NewParams {
                pub params: new_params::Params,
            }
            pub mod new_params {
                use super::runtime_types;
                pub type Params =
                    runtime_types::pallet_society::GroupParams<::core::primitive::u128>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewParams {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "NewParams";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Society is unfounded."]
            pub struct Unfounded {
                pub founder: unfounded::Founder,
            }
            pub mod unfounded {
                use super::runtime_types;
                pub type Founder = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unfounded {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Unfounded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some funds were deposited into the society account."]
            pub struct Deposit {
                pub value: deposit::Value,
            }
            pub mod deposit {
                use super::runtime_types;
                pub type Value = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Deposit {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Deposit";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A \\[member\\] got elevated to \\[rank\\]."]
            pub struct Elevated {
                pub member: elevated::Member,
                pub rank: elevated::Rank,
            }
            pub mod elevated {
                use super::runtime_types;
                pub type Member = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Rank = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Elevated {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "Elevated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit was poked / adjusted."]
            pub struct DepositPoked {
                pub who: deposit_poked::Who,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Society";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod parameters {
                    use super::runtime_types;
                    pub type Parameters =
                        runtime_types::pallet_society::GroupParams<::core::primitive::u128>;
                }
                pub mod pot {
                    use super::runtime_types;
                    pub type Pot = ::core::primitive::u128;
                }
                pub mod founder {
                    use super::runtime_types;
                    pub type Founder = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod head {
                    use super::runtime_types;
                    pub type Head = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod rules {
                    use super::runtime_types;
                    pub type Rules = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod members {
                    use super::runtime_types;
                    pub type Members = runtime_types::pallet_society::MemberRecord;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod payouts {
                    use super::runtime_types;
                    pub type Payouts = runtime_types::pallet_society::PayoutRecord<
                        ::core::primitive::u128,
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u32,
                            ::core::primitive::u128,
                        )>,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod member_count {
                    use super::runtime_types;
                    pub type MemberCount = ::core::primitive::u32;
                }
                pub mod member_by_index {
                    use super::runtime_types;
                    pub type MemberByIndex = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod suspended_members {
                    use super::runtime_types;
                    pub type SuspendedMembers = runtime_types::pallet_society::MemberRecord;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod round_count {
                    use super::runtime_types;
                    pub type RoundCount = ::core::primitive::u32;
                }
                pub mod bids {
                    use super::runtime_types;
                    pub type Bids = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::pallet_society::Bid<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            ::core::primitive::u128,
                        >,
                    >;
                }
                pub mod candidates {
                    use super::runtime_types;
                    pub type Candidates = runtime_types::pallet_society::Candidacy<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod skeptic {
                    use super::runtime_types;
                    pub type Skeptic = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod votes {
                    use super::runtime_types;
                    pub type Votes = runtime_types::pallet_society::Vote;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod vote_clear_cursor {
                    use super::runtime_types;
                    pub type VoteClearCursor =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod next_head {
                    use super::runtime_types;
                    pub type NextHead = runtime_types::pallet_society::IntakeRecord<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                    >;
                }
                pub mod challenge_round_count {
                    use super::runtime_types;
                    pub type ChallengeRoundCount = ::core::primitive::u32;
                }
                pub mod defending {
                    use super::runtime_types;
                    pub type Defending = (
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::pallet_society::Tally,
                    );
                }
                pub mod defender_votes {
                    use super::runtime_types;
                    pub type DefenderVotes = runtime_types::pallet_society::Vote;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The max number of members for the society at one time."]
                pub fn parameters(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parameters::Parameters,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Parameters",
                        (),
                        [
                            69u8, 147u8, 95u8, 26u8, 245u8, 207u8, 83u8, 57u8, 229u8, 34u8, 205u8,
                            202u8, 182u8, 180u8, 219u8, 86u8, 152u8, 140u8, 212u8, 145u8, 7u8,
                            98u8, 185u8, 36u8, 60u8, 173u8, 120u8, 49u8, 164u8, 102u8, 133u8,
                            248u8,
                        ],
                    )
                }
                #[doc = " Amount of our account balance that is specifically for the next round's bid(s)."]
                pub fn pot(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pot::Pot,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Pot",
                        (),
                        [
                            98u8, 77u8, 215u8, 220u8, 51u8, 87u8, 188u8, 65u8, 72u8, 231u8, 34u8,
                            161u8, 61u8, 59u8, 66u8, 105u8, 128u8, 23u8, 249u8, 27u8, 10u8, 0u8,
                            251u8, 16u8, 235u8, 163u8, 239u8, 74u8, 197u8, 226u8, 58u8, 215u8,
                        ],
                    )
                }
                #[doc = " The first member."]
                pub fn founder(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::founder::Founder,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Founder",
                        (),
                        [
                            14u8, 6u8, 181u8, 186u8, 64u8, 213u8, 48u8, 110u8, 242u8, 50u8, 144u8,
                            77u8, 38u8, 127u8, 161u8, 54u8, 204u8, 119u8, 1u8, 218u8, 12u8, 57u8,
                            165u8, 32u8, 28u8, 34u8, 46u8, 12u8, 217u8, 65u8, 27u8, 1u8,
                        ],
                    )
                }
                #[doc = " The most primary from the most recently approved rank 0 members in the society."]
                pub fn head(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::head::Head,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Head",
                        (),
                        [
                            95u8, 2u8, 23u8, 237u8, 130u8, 169u8, 84u8, 51u8, 1u8, 178u8, 234u8,
                            194u8, 139u8, 35u8, 222u8, 150u8, 246u8, 176u8, 97u8, 103u8, 211u8,
                            198u8, 165u8, 1u8, 224u8, 204u8, 10u8, 91u8, 6u8, 179u8, 189u8, 170u8,
                        ],
                    )
                }
                #[doc = " A hash of the rules of this society concerning membership. Can only be set once and"]
                #[doc = " only by the founder."]
                pub fn rules(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::rules::Rules,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Rules",
                        (),
                        [
                            119u8, 249u8, 119u8, 89u8, 243u8, 239u8, 149u8, 15u8, 238u8, 40u8,
                            172u8, 198u8, 24u8, 107u8, 57u8, 39u8, 155u8, 36u8, 13u8, 72u8, 153u8,
                            101u8, 39u8, 146u8, 38u8, 161u8, 195u8, 69u8, 79u8, 204u8, 172u8,
                            207u8,
                        ],
                    )
                }
                #[doc = " The current members and their rank. Doesn't include `SuspendedMembers`."]
                pub fn members_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::members::Members,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Members",
                        (),
                        [
                            207u8, 227u8, 130u8, 247u8, 29u8, 198u8, 129u8, 83u8, 3u8, 6u8, 19u8,
                            37u8, 163u8, 227u8, 0u8, 94u8, 8u8, 166u8, 111u8, 70u8, 101u8, 65u8,
                            104u8, 8u8, 94u8, 84u8, 80u8, 158u8, 208u8, 152u8, 4u8, 33u8,
                        ],
                    )
                }
                #[doc = " The current members and their rank. Doesn't include `SuspendedMembers`."]
                pub fn members(
                    &self,
                    _0: types::members::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::members::Param0,
                    >,
                    types::members::Members,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Members",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            207u8, 227u8, 130u8, 247u8, 29u8, 198u8, 129u8, 83u8, 3u8, 6u8, 19u8,
                            37u8, 163u8, 227u8, 0u8, 94u8, 8u8, 166u8, 111u8, 70u8, 101u8, 65u8,
                            104u8, 8u8, 94u8, 84u8, 80u8, 158u8, 208u8, 152u8, 4u8, 33u8,
                        ],
                    )
                }
                #[doc = " Information regarding rank-0 payouts, past and future."]
                pub fn payouts_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::payouts::Payouts,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Payouts",
                        (),
                        [
                            251u8, 249u8, 170u8, 219u8, 131u8, 113u8, 178u8, 165u8, 173u8, 36u8,
                            175u8, 199u8, 57u8, 188u8, 59u8, 226u8, 4u8, 45u8, 36u8, 173u8, 113u8,
                            50u8, 153u8, 205u8, 21u8, 132u8, 30u8, 111u8, 95u8, 51u8, 194u8, 126u8,
                        ],
                    )
                }
                #[doc = " Information regarding rank-0 payouts, past and future."]
                pub fn payouts(
                    &self,
                    _0: types::payouts::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::payouts::Param0,
                    >,
                    types::payouts::Payouts,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Payouts",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            251u8, 249u8, 170u8, 219u8, 131u8, 113u8, 178u8, 165u8, 173u8, 36u8,
                            175u8, 199u8, 57u8, 188u8, 59u8, 226u8, 4u8, 45u8, 36u8, 173u8, 113u8,
                            50u8, 153u8, 205u8, 21u8, 132u8, 30u8, 111u8, 95u8, 51u8, 194u8, 126u8,
                        ],
                    )
                }
                #[doc = " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)"]
                pub fn member_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::member_count::MemberCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "MemberCount",
                        (),
                        [
                            251u8, 200u8, 97u8, 38u8, 125u8, 162u8, 19u8, 100u8, 249u8, 254u8,
                            42u8, 93u8, 64u8, 171u8, 2u8, 200u8, 129u8, 228u8, 211u8, 229u8, 152u8,
                            170u8, 228u8, 158u8, 212u8, 94u8, 17u8, 226u8, 194u8, 87u8, 189u8,
                            213u8,
                        ],
                    )
                }
                #[doc = " The current items in `Members` keyed by their unique index. Keys are densely populated"]
                #[doc = " `0..MemberCount` (does not include `MemberCount`)."]
                pub fn member_by_index_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::member_by_index::MemberByIndex,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "MemberByIndex",
                        (),
                        [
                            13u8, 233u8, 212u8, 149u8, 220u8, 158u8, 17u8, 27u8, 201u8, 61u8,
                            202u8, 248u8, 192u8, 37u8, 199u8, 73u8, 32u8, 140u8, 204u8, 206u8,
                            239u8, 43u8, 241u8, 41u8, 9u8, 51u8, 125u8, 171u8, 47u8, 149u8, 63u8,
                            159u8,
                        ],
                    )
                }
                #[doc = " The current items in `Members` keyed by their unique index. Keys are densely populated"]
                #[doc = " `0..MemberCount` (does not include `MemberCount`)."]
                pub fn member_by_index(
                    &self,
                    _0: types::member_by_index::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::member_by_index::Param0,
                    >,
                    types::member_by_index::MemberByIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "MemberByIndex",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            13u8, 233u8, 212u8, 149u8, 220u8, 158u8, 17u8, 27u8, 201u8, 61u8,
                            202u8, 248u8, 192u8, 37u8, 199u8, 73u8, 32u8, 140u8, 204u8, 206u8,
                            239u8, 43u8, 241u8, 41u8, 9u8, 51u8, 125u8, 171u8, 47u8, 149u8, 63u8,
                            159u8,
                        ],
                    )
                }
                #[doc = " The set of suspended members, with their old membership record."]
                pub fn suspended_members_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::suspended_members::SuspendedMembers,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "SuspendedMembers",
                        (),
                        [
                            156u8, 11u8, 75u8, 79u8, 74u8, 79u8, 98u8, 89u8, 63u8, 83u8, 84u8,
                            249u8, 177u8, 227u8, 113u8, 21u8, 26u8, 165u8, 129u8, 5u8, 129u8,
                            152u8, 241u8, 85u8, 231u8, 139u8, 54u8, 102u8, 230u8, 203u8, 26u8,
                            94u8,
                        ],
                    )
                }
                #[doc = " The set of suspended members, with their old membership record."]
                pub fn suspended_members(
                    &self,
                    _0: types::suspended_members::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::suspended_members::Param0,
                    >,
                    types::suspended_members::SuspendedMembers,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "SuspendedMembers",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            156u8, 11u8, 75u8, 79u8, 74u8, 79u8, 98u8, 89u8, 63u8, 83u8, 84u8,
                            249u8, 177u8, 227u8, 113u8, 21u8, 26u8, 165u8, 129u8, 5u8, 129u8,
                            152u8, 241u8, 85u8, 231u8, 139u8, 54u8, 102u8, 230u8, 203u8, 26u8,
                            94u8,
                        ],
                    )
                }
                #[doc = " The number of rounds which have passed."]
                pub fn round_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::round_count::RoundCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "RoundCount",
                        (),
                        [
                            61u8, 189u8, 115u8, 157u8, 36u8, 97u8, 192u8, 96u8, 138u8, 168u8,
                            222u8, 58u8, 117u8, 199u8, 176u8, 146u8, 232u8, 167u8, 52u8, 190u8,
                            41u8, 11u8, 181u8, 214u8, 79u8, 183u8, 134u8, 86u8, 164u8, 47u8, 178u8,
                            192u8,
                        ],
                    )
                }
                #[doc = " The current bids, stored ordered by the value of the bid."]
                pub fn bids(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bids::Bids,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Bids",
                        (),
                        [
                            220u8, 159u8, 208u8, 176u8, 118u8, 11u8, 21u8, 34u8, 3u8, 101u8, 233u8,
                            212u8, 149u8, 156u8, 235u8, 135u8, 142u8, 220u8, 76u8, 99u8, 60u8,
                            29u8, 204u8, 134u8, 53u8, 82u8, 80u8, 129u8, 208u8, 149u8, 96u8, 231u8,
                        ],
                    )
                }
                pub fn candidates_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::candidates::Candidates,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Candidates",
                        (),
                        [
                            52u8, 250u8, 201u8, 163u8, 0u8, 5u8, 156u8, 84u8, 96u8, 130u8, 228u8,
                            205u8, 34u8, 75u8, 121u8, 209u8, 82u8, 15u8, 247u8, 21u8, 54u8, 177u8,
                            138u8, 183u8, 64u8, 191u8, 209u8, 19u8, 38u8, 235u8, 129u8, 136u8,
                        ],
                    )
                }
                pub fn candidates(
                    &self,
                    _0: types::candidates::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::candidates::Param0,
                    >,
                    types::candidates::Candidates,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Candidates",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            52u8, 250u8, 201u8, 163u8, 0u8, 5u8, 156u8, 84u8, 96u8, 130u8, 228u8,
                            205u8, 34u8, 75u8, 121u8, 209u8, 82u8, 15u8, 247u8, 21u8, 54u8, 177u8,
                            138u8, 183u8, 64u8, 191u8, 209u8, 19u8, 38u8, 235u8, 129u8, 136u8,
                        ],
                    )
                }
                #[doc = " The current skeptic."]
                pub fn skeptic(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::skeptic::Skeptic,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Skeptic",
                        (),
                        [
                            121u8, 103u8, 195u8, 11u8, 87u8, 129u8, 61u8, 69u8, 218u8, 17u8, 101u8,
                            207u8, 249u8, 207u8, 18u8, 103u8, 253u8, 240u8, 132u8, 46u8, 47u8,
                            27u8, 85u8, 194u8, 34u8, 145u8, 16u8, 208u8, 245u8, 192u8, 191u8,
                            118u8,
                        ],
                    )
                }
                #[doc = " Double map from Candidate -> Voter -> (Maybe) Vote."]
                pub fn votes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::votes::Votes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Votes",
                        (),
                        [
                            34u8, 201u8, 151u8, 130u8, 149u8, 159u8, 32u8, 201u8, 127u8, 178u8,
                            77u8, 214u8, 73u8, 158u8, 11u8, 247u8, 188u8, 156u8, 146u8, 59u8,
                            160u8, 7u8, 109u8, 7u8, 131u8, 212u8, 185u8, 92u8, 172u8, 219u8, 140u8,
                            238u8,
                        ],
                    )
                }
                #[doc = " Double map from Candidate -> Voter -> (Maybe) Vote."]
                pub fn votes_iter1(
                    &self,
                    _0: types::votes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::votes::Param0,
                    >,
                    types::votes::Votes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Votes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            34u8, 201u8, 151u8, 130u8, 149u8, 159u8, 32u8, 201u8, 127u8, 178u8,
                            77u8, 214u8, 73u8, 158u8, 11u8, 247u8, 188u8, 156u8, 146u8, 59u8,
                            160u8, 7u8, 109u8, 7u8, 131u8, 212u8, 185u8, 92u8, 172u8, 219u8, 140u8,
                            238u8,
                        ],
                    )
                }
                #[doc = " Double map from Candidate -> Voter -> (Maybe) Vote."]
                pub fn votes(
                    &self,
                    _0: types::votes::Param0,
                    _1: types::votes::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::votes::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::votes::Param1,
                        >,
                    ),
                    types::votes::Votes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Votes",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            34u8, 201u8, 151u8, 130u8, 149u8, 159u8, 32u8, 201u8, 127u8, 178u8,
                            77u8, 214u8, 73u8, 158u8, 11u8, 247u8, 188u8, 156u8, 146u8, 59u8,
                            160u8, 7u8, 109u8, 7u8, 131u8, 212u8, 185u8, 92u8, 172u8, 219u8, 140u8,
                            238u8,
                        ],
                    )
                }
                #[doc = " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor."]
                pub fn vote_clear_cursor_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::vote_clear_cursor::VoteClearCursor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "VoteClearCursor",
                        (),
                        [
                            157u8, 200u8, 216u8, 228u8, 235u8, 144u8, 13u8, 111u8, 252u8, 213u8,
                            209u8, 114u8, 157u8, 159u8, 47u8, 125u8, 45u8, 152u8, 27u8, 145u8,
                            55u8, 108u8, 217u8, 16u8, 251u8, 98u8, 172u8, 108u8, 23u8, 136u8, 93u8,
                            250u8,
                        ],
                    )
                }
                #[doc = " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor."]
                pub fn vote_clear_cursor(
                    &self,
                    _0: types::vote_clear_cursor::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::vote_clear_cursor::Param0,
                    >,
                    types::vote_clear_cursor::VoteClearCursor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "VoteClearCursor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            157u8, 200u8, 216u8, 228u8, 235u8, 144u8, 13u8, 111u8, 252u8, 213u8,
                            209u8, 114u8, 157u8, 159u8, 47u8, 125u8, 45u8, 152u8, 27u8, 145u8,
                            55u8, 108u8, 217u8, 16u8, 251u8, 98u8, 172u8, 108u8, 23u8, 136u8, 93u8,
                            250u8,
                        ],
                    )
                }
                #[doc = " At the end of the claim period, this contains the most recently approved members (along with"]
                #[doc = " their bid and round ID) who is from the most recent round with the lowest bid. They will"]
                #[doc = " become the new `Head`."]
                pub fn next_head(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_head::NextHead,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "NextHead",
                        (),
                        [
                            64u8, 118u8, 253u8, 247u8, 56u8, 39u8, 156u8, 38u8, 150u8, 234u8,
                            190u8, 11u8, 45u8, 236u8, 15u8, 181u8, 6u8, 165u8, 226u8, 99u8, 46u8,
                            55u8, 254u8, 40u8, 2u8, 233u8, 22u8, 211u8, 133u8, 36u8, 177u8, 46u8,
                        ],
                    )
                }
                #[doc = " The number of challenge rounds there have been. Used to identify stale DefenderVotes."]
                pub fn challenge_round_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::challenge_round_count::ChallengeRoundCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "ChallengeRoundCount",
                        (),
                        [
                            111u8, 74u8, 218u8, 126u8, 43u8, 20u8, 75u8, 119u8, 166u8, 4u8, 56u8,
                            24u8, 206u8, 10u8, 236u8, 17u8, 62u8, 124u8, 129u8, 39u8, 197u8, 157u8,
                            153u8, 147u8, 68u8, 167u8, 220u8, 125u8, 44u8, 95u8, 82u8, 64u8,
                        ],
                    )
                }
                #[doc = " The defending member currently being challenged, along with a running tally of votes."]
                pub fn defending(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::defending::Defending,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "Defending",
                        (),
                        [
                            22u8, 165u8, 42u8, 82u8, 129u8, 214u8, 77u8, 50u8, 110u8, 35u8, 16u8,
                            44u8, 222u8, 47u8, 238u8, 209u8, 171u8, 254u8, 208u8, 3u8, 2u8, 87u8,
                            48u8, 20u8, 227u8, 127u8, 188u8, 84u8, 118u8, 207u8, 68u8, 247u8,
                        ],
                    )
                }
                #[doc = " Votes for the defender, keyed by challenge round."]
                pub fn defender_votes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::defender_votes::DefenderVotes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "DefenderVotes",
                        (),
                        [
                            208u8, 137u8, 138u8, 215u8, 215u8, 207u8, 236u8, 140u8, 175u8, 50u8,
                            110u8, 228u8, 48u8, 174u8, 16u8, 59u8, 72u8, 108u8, 7u8, 183u8, 119u8,
                            171u8, 125u8, 159u8, 93u8, 129u8, 186u8, 115u8, 208u8, 5u8, 194u8,
                            199u8,
                        ],
                    )
                }
                #[doc = " Votes for the defender, keyed by challenge round."]
                pub fn defender_votes_iter1(
                    &self,
                    _0: types::defender_votes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::defender_votes::Param0,
                    >,
                    types::defender_votes::DefenderVotes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "DefenderVotes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            208u8, 137u8, 138u8, 215u8, 215u8, 207u8, 236u8, 140u8, 175u8, 50u8,
                            110u8, 228u8, 48u8, 174u8, 16u8, 59u8, 72u8, 108u8, 7u8, 183u8, 119u8,
                            171u8, 125u8, 159u8, 93u8, 129u8, 186u8, 115u8, 208u8, 5u8, 194u8,
                            199u8,
                        ],
                    )
                }
                #[doc = " Votes for the defender, keyed by challenge round."]
                pub fn defender_votes(
                    &self,
                    _0: types::defender_votes::Param0,
                    _1: types::defender_votes::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::defender_votes::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::defender_votes::Param1,
                        >,
                    ),
                    types::defender_votes::DefenderVotes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Society",
                        "DefenderVotes",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            208u8, 137u8, 138u8, 215u8, 215u8, 207u8, 236u8, 140u8, 175u8, 50u8,
                            110u8, 228u8, 48u8, 174u8, 16u8, 59u8, 72u8, 108u8, 7u8, 183u8, 119u8,
                            171u8, 125u8, 159u8, 93u8, 129u8, 186u8, 115u8, 208u8, 5u8, 194u8,
                            199u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The societies's pallet id"]
                pub fn pallet_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_support::PalletId,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "PalletId",
                        [
                            56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8,
                            161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8,
                            129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8,
                        ],
                    )
                }
                #[doc = " The maximum number of strikes before a member gets funds slashed."]
                pub fn grace_strikes(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "GraceStrikes",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The amount of incentive paid within each period. Doesn't include VoterTip."]
                pub fn period_spend(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "PeriodSpend",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The number of blocks on which new candidates should be voted on. Together with"]
                #[doc = " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods."]
                pub fn voting_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "VotingPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks on which new candidates can claim their membership and be the"]
                #[doc = " named head."]
                pub fn claim_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "ClaimPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum duration of the payout lock."]
                pub fn max_lock_duration(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "MaxLockDuration",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks between membership challenges."]
                pub fn challenge_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "ChallengePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of payouts a member may have waiting unclaimed."]
                pub fn max_payouts(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "MaxPayouts",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of bids at once."]
                pub fn max_bids(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Society",
                        "MaxBids",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod recovery {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_recovery::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_recovery::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a call through a recovered account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                #[doc = "be able to make calls on behalf of the recovered account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."]
                #[doc = "- `call`: The call you want to make with the recovered account."]
                pub struct AsRecovered {
                    pub account: as_recovered::Account,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<as_recovered::Call>,
                }
                pub mod as_recovered {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AsRecovered {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "as_recovered";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allow ROOT to bypass the recovery process and set a rescuer account"]
                #[doc = "for a lost account directly."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _ROOT_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `lost`: The \"lost account\" to be recovered."]
                #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."]
                pub struct SetRecovered {
                    pub lost: set_recovered::Lost,
                    pub rescuer: set_recovered::Rescuer,
                }
                pub mod set_recovered {
                    use super::runtime_types;
                    pub type Lost = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Rescuer = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRecovered {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "set_recovered";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a recovery configuration for your account. This makes your account recoverable."]
                #[doc = ""]
                #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"]
                #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"]
                #[doc = "in full when the user calls `remove_recovery`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"]
                #[doc = "  ordered and contain no duplicate values."]
                #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"]
                #[doc = "  account can be recovered. Should be less than or equal to the length of the list of"]
                #[doc = "  friends."]
                #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"]
                #[doc = "  needs to pass before the account can be recovered."]
                pub struct CreateRecovery {
                    pub friends: create_recovery::Friends,
                    pub threshold: create_recovery::Threshold,
                    pub delay_period: create_recovery::DelayPeriod,
                }
                pub mod create_recovery {
                    use super::runtime_types;
                    pub type Friends = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type Threshold = ::core::primitive::u16;
                    pub type DelayPeriod = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CreateRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "create_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Initiate the process for recovering a recoverable account."]
                #[doc = ""]
                #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"]
                #[doc = "recovery process. This deposit will always be repatriated to the account"]
                #[doc = "trying to be recovered. See `close_recovery`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The lost account that you want to recover. This account needs to be"]
                #[doc = "  recoverable (i.e. have a recovery configuration)."]
                pub struct InitiateRecovery {
                    pub account: initiate_recovery::Account,
                }
                pub mod initiate_recovery {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for InitiateRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "initiate_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"]
                #[doc = "process for that account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""]
                #[doc = "for the recoverable account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `lost`: The lost account that you want to recover."]
                #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."]
                #[doc = ""]
                #[doc = "The combination of these two parameters must point to an active recovery"]
                #[doc = "process."]
                pub struct VouchRecovery {
                    pub lost: vouch_recovery::Lost,
                    pub rescuer: vouch_recovery::Rescuer,
                }
                pub mod vouch_recovery {
                    use super::runtime_types;
                    pub type Lost = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Rescuer = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for VouchRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "vouch_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allow a successful rescuer to claim their recovered account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""]
                #[doc = "who has successfully completed the account recovery process: collected"]
                #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"]
                #[doc = "  you."]
                pub struct ClaimRecovery {
                    pub account: claim_recovery::Account,
                }
                pub mod claim_recovery {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "claim_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "As the controller of a recoverable account, close an active recovery"]
                #[doc = "process for your account."]
                #[doc = ""]
                #[doc = "Payment: By calling this function, the recoverable account will receive"]
                #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                #[doc = "recoverable account with an active recovery process for it."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `rescuer`: The account trying to rescue this recoverable account."]
                pub struct CloseRecovery {
                    pub rescuer: close_recovery::Rescuer,
                }
                pub mod close_recovery {
                    use super::runtime_types;
                    pub type Rescuer = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CloseRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "close_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."]
                #[doc = ""]
                #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"]
                #[doc = "recovery attempts before calling this function else it will fail."]
                #[doc = ""]
                #[doc = "Payment: By calling this function the recoverable account will unreserve"]
                #[doc = "their recovery configuration deposit."]
                #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                #[doc = "recoverable account (i.e. has a recovery configuration)."]
                pub struct RemoveRecovery;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveRecovery {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "remove_recovery";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel the ability to use `as_recovered` for `account`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                #[doc = "be able to make calls on behalf of the recovered account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The recovered account you are able to call on-behalf-of."]
                pub struct CancelRecovered {
                    pub account: cancel_recovered::Account,
                }
                pub mod cancel_recovered {
                    use super::runtime_types;
                    pub type Account = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRecovered {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "cancel_recovered";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke deposits for recovery configurations and / or active recoveries."]
                #[doc = ""]
                #[doc = "This can be used by accounts to possibly lower their locked amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `maybe_account`: Optional recoverable account for which you have an active recovery"]
                #[doc = "and want to adjust the deposit for the active recovery."]
                #[doc = ""]
                #[doc = "This function checks both recovery configuration deposit and active recovery deposits"]
                #[doc = "of the caller:"]
                #[doc = "- If the caller has created a recovery configuration, checks and adjusts its deposit"]
                #[doc = "- If the caller has initiated any active recoveries, and provides the account in"]
                #[doc = "`maybe_account`, checks and adjusts those deposits"]
                #[doc = ""]
                #[doc = "If any deposit is updated, the difference will be reserved/unreserved from the caller's"]
                #[doc = "account."]
                #[doc = ""]
                #[doc = "The transaction is made free if any deposit is updated and paid otherwise."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if any deposit is updated."]
                #[doc = "Multiple events may be emitted in case both types of deposits are updated."]
                pub struct PokeDeposit {
                    pub maybe_account: poke_deposit::MaybeAccount,
                }
                pub mod poke_deposit {
                    use super::runtime_types;
                    pub type MaybeAccount = ::core::option::Option<
                        ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Recovery";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Send a call through a recovered account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                #[doc = "be able to make calls on behalf of the recovered account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."]
                #[doc = "- `call`: The call you want to make with the recovered account."]
                pub fn as_recovered(
                    &self,
                    account: types::as_recovered::Account,
                    call: types::as_recovered::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AsRecovered>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "as_recovered",
                        types::AsRecovered {
                            account,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            170u8, 5u8, 7u8, 10u8, 28u8, 76u8, 198u8, 183u8, 180u8, 200u8, 176u8,
                            149u8, 178u8, 28u8, 124u8, 42u8, 73u8, 115u8, 32u8, 191u8, 62u8, 219u8,
                            195u8, 179u8, 174u8, 34u8, 63u8, 91u8, 162u8, 169u8, 243u8, 115u8,
                        ],
                    )
                }
                #[doc = "Allow ROOT to bypass the recovery process and set a rescuer account"]
                #[doc = "for a lost account directly."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _ROOT_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `lost`: The \"lost account\" to be recovered."]
                #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."]
                pub fn set_recovered(
                    &self,
                    lost: types::set_recovered::Lost,
                    rescuer: types::set_recovered::Rescuer,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetRecovered>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "set_recovered",
                        types::SetRecovered { lost, rescuer },
                        [
                            194u8, 147u8, 14u8, 197u8, 132u8, 185u8, 122u8, 81u8, 61u8, 14u8, 10u8,
                            177u8, 74u8, 184u8, 150u8, 217u8, 246u8, 149u8, 26u8, 165u8, 196u8,
                            83u8, 230u8, 195u8, 213u8, 40u8, 51u8, 180u8, 23u8, 90u8, 3u8, 14u8,
                        ],
                    )
                }
                #[doc = "Create a recovery configuration for your account. This makes your account recoverable."]
                #[doc = ""]
                #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"]
                #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"]
                #[doc = "in full when the user calls `remove_recovery`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"]
                #[doc = "  ordered and contain no duplicate values."]
                #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"]
                #[doc = "  account can be recovered. Should be less than or equal to the length of the list of"]
                #[doc = "  friends."]
                #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"]
                #[doc = "  needs to pass before the account can be recovered."]
                pub fn create_recovery(
                    &self,
                    friends: types::create_recovery::Friends,
                    threshold: types::create_recovery::Threshold,
                    delay_period: types::create_recovery::DelayPeriod,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CreateRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "create_recovery",
                        types::CreateRecovery {
                            friends,
                            threshold,
                            delay_period,
                        },
                        [
                            36u8, 175u8, 11u8, 85u8, 95u8, 170u8, 58u8, 193u8, 102u8, 18u8, 117u8,
                            27u8, 199u8, 214u8, 70u8, 47u8, 129u8, 130u8, 109u8, 242u8, 240u8,
                            255u8, 120u8, 176u8, 40u8, 243u8, 175u8, 71u8, 3u8, 91u8, 186u8, 220u8,
                        ],
                    )
                }
                #[doc = "Initiate the process for recovering a recoverable account."]
                #[doc = ""]
                #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"]
                #[doc = "recovery process. This deposit will always be repatriated to the account"]
                #[doc = "trying to be recovered. See `close_recovery`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The lost account that you want to recover. This account needs to be"]
                #[doc = "  recoverable (i.e. have a recovery configuration)."]
                pub fn initiate_recovery(
                    &self,
                    account: types::initiate_recovery::Account,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::InitiateRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "initiate_recovery",
                        types::InitiateRecovery { account },
                        [
                            60u8, 243u8, 229u8, 176u8, 221u8, 52u8, 44u8, 224u8, 233u8, 14u8, 89u8,
                            100u8, 174u8, 74u8, 38u8, 32u8, 97u8, 48u8, 53u8, 74u8, 30u8, 242u8,
                            19u8, 114u8, 145u8, 74u8, 69u8, 125u8, 227u8, 214u8, 144u8, 58u8,
                        ],
                    )
                }
                #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"]
                #[doc = "process for that account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""]
                #[doc = "for the recoverable account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `lost`: The lost account that you want to recover."]
                #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."]
                #[doc = ""]
                #[doc = "The combination of these two parameters must point to an active recovery"]
                #[doc = "process."]
                pub fn vouch_recovery(
                    &self,
                    lost: types::vouch_recovery::Lost,
                    rescuer: types::vouch_recovery::Rescuer,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::VouchRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "vouch_recovery",
                        types::VouchRecovery { lost, rescuer },
                        [
                            97u8, 190u8, 60u8, 15u8, 191u8, 117u8, 1u8, 217u8, 62u8, 40u8, 210u8,
                            1u8, 237u8, 111u8, 48u8, 196u8, 180u8, 154u8, 198u8, 12u8, 108u8, 42u8,
                            6u8, 234u8, 2u8, 113u8, 163u8, 111u8, 80u8, 146u8, 6u8, 73u8,
                        ],
                    )
                }
                #[doc = "Allow a successful rescuer to claim their recovered account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""]
                #[doc = "who has successfully completed the account recovery process: collected"]
                #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"]
                #[doc = "  you."]
                pub fn claim_recovery(
                    &self,
                    account: types::claim_recovery::Account,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "claim_recovery",
                        types::ClaimRecovery { account },
                        [
                            41u8, 47u8, 162u8, 88u8, 13u8, 166u8, 130u8, 146u8, 218u8, 162u8,
                            166u8, 33u8, 89u8, 129u8, 177u8, 178u8, 68u8, 128u8, 161u8, 229u8,
                            207u8, 3u8, 57u8, 35u8, 211u8, 208u8, 74u8, 155u8, 183u8, 173u8, 74u8,
                            56u8,
                        ],
                    )
                }
                #[doc = "As the controller of a recoverable account, close an active recovery"]
                #[doc = "process for your account."]
                #[doc = ""]
                #[doc = "Payment: By calling this function, the recoverable account will receive"]
                #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                #[doc = "recoverable account with an active recovery process for it."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `rescuer`: The account trying to rescue this recoverable account."]
                pub fn close_recovery(
                    &self,
                    rescuer: types::close_recovery::Rescuer,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CloseRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "close_recovery",
                        types::CloseRecovery { rescuer },
                        [
                            161u8, 178u8, 117u8, 209u8, 119u8, 164u8, 135u8, 41u8, 25u8, 108u8,
                            194u8, 175u8, 221u8, 65u8, 184u8, 137u8, 171u8, 97u8, 204u8, 61u8,
                            159u8, 39u8, 192u8, 53u8, 246u8, 69u8, 113u8, 16u8, 170u8, 232u8,
                            163u8, 10u8,
                        ],
                    )
                }
                #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."]
                #[doc = ""]
                #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"]
                #[doc = "recovery attempts before calling this function else it will fail."]
                #[doc = ""]
                #[doc = "Payment: By calling this function the recoverable account will unreserve"]
                #[doc = "their recovery configuration deposit."]
                #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                #[doc = "recoverable account (i.e. has a recovery configuration)."]
                pub fn remove_recovery(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveRecovery>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "remove_recovery",
                        types::RemoveRecovery {},
                        [
                            11u8, 38u8, 133u8, 172u8, 212u8, 252u8, 57u8, 216u8, 42u8, 202u8,
                            206u8, 91u8, 115u8, 91u8, 242u8, 123u8, 95u8, 196u8, 172u8, 243u8,
                            164u8, 1u8, 69u8, 180u8, 40u8, 68u8, 208u8, 221u8, 161u8, 250u8, 8u8,
                            72u8,
                        ],
                    )
                }
                #[doc = "Cancel the ability to use `as_recovered` for `account`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                #[doc = "be able to make calls on behalf of the recovered account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `account`: The recovered account you are able to call on-behalf-of."]
                pub fn cancel_recovered(
                    &self,
                    account: types::cancel_recovered::Account,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelRecovered>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "cancel_recovered",
                        types::CancelRecovered { account },
                        [
                            100u8, 222u8, 80u8, 226u8, 187u8, 188u8, 111u8, 58u8, 190u8, 5u8,
                            178u8, 144u8, 37u8, 98u8, 71u8, 145u8, 28u8, 248u8, 222u8, 188u8, 53u8,
                            21u8, 127u8, 176u8, 249u8, 166u8, 250u8, 59u8, 170u8, 33u8, 251u8,
                            239u8,
                        ],
                    )
                }
                #[doc = "Poke deposits for recovery configurations and / or active recoveries."]
                #[doc = ""]
                #[doc = "This can be used by accounts to possibly lower their locked amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `maybe_account`: Optional recoverable account for which you have an active recovery"]
                #[doc = "and want to adjust the deposit for the active recovery."]
                #[doc = ""]
                #[doc = "This function checks both recovery configuration deposit and active recovery deposits"]
                #[doc = "of the caller:"]
                #[doc = "- If the caller has created a recovery configuration, checks and adjusts its deposit"]
                #[doc = "- If the caller has initiated any active recoveries, and provides the account in"]
                #[doc = "`maybe_account`, checks and adjusts those deposits"]
                #[doc = ""]
                #[doc = "If any deposit is updated, the difference will be reserved/unreserved from the caller's"]
                #[doc = "account."]
                #[doc = ""]
                #[doc = "The transaction is made free if any deposit is updated and paid otherwise."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if any deposit is updated."]
                #[doc = "Multiple events may be emitted in case both types of deposits are updated."]
                pub fn poke_deposit(
                    &self,
                    maybe_account: types::poke_deposit::MaybeAccount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Recovery",
                        "poke_deposit",
                        types::PokeDeposit { maybe_account },
                        [
                            177u8, 98u8, 53u8, 15u8, 228u8, 36u8, 173u8, 55u8, 125u8, 3u8, 234u8,
                            70u8, 147u8, 147u8, 124u8, 86u8, 31u8, 101u8, 171u8, 56u8, 148u8,
                            180u8, 87u8, 149u8, 11u8, 113u8, 195u8, 35u8, 56u8, 32u8, 251u8, 56u8,
                        ],
                    )
                }
            }
        }
        #[doc = "Events type."]
        pub type Event = runtime_types::pallet_recovery::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A recovery process has been set up for an account."]
            pub struct RecoveryCreated {
                pub account: recovery_created::Account,
            }
            pub mod recovery_created {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RecoveryCreated {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "RecoveryCreated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A recovery process has been initiated for lost account by rescuer account."]
            pub struct RecoveryInitiated {
                pub lost_account: recovery_initiated::LostAccount,
                pub rescuer_account: recovery_initiated::RescuerAccount,
            }
            pub mod recovery_initiated {
                use super::runtime_types;
                pub type LostAccount = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RescuerAccount = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RecoveryInitiated {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "RecoveryInitiated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A recovery process for lost account by rescuer account has been vouched for by sender."]
            pub struct RecoveryVouched {
                pub lost_account: recovery_vouched::LostAccount,
                pub rescuer_account: recovery_vouched::RescuerAccount,
                pub sender: recovery_vouched::Sender,
            }
            pub mod recovery_vouched {
                use super::runtime_types;
                pub type LostAccount = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RescuerAccount = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Sender = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RecoveryVouched {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "RecoveryVouched";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A recovery process for lost account by rescuer account has been closed."]
            pub struct RecoveryClosed {
                pub lost_account: recovery_closed::LostAccount,
                pub rescuer_account: recovery_closed::RescuerAccount,
            }
            pub mod recovery_closed {
                use super::runtime_types;
                pub type LostAccount = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RescuerAccount = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RecoveryClosed {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "RecoveryClosed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Lost account has been successfully recovered by rescuer account."]
            pub struct AccountRecovered {
                pub lost_account: account_recovered::LostAccount,
                pub rescuer_account: account_recovered::RescuerAccount,
            }
            pub mod account_recovered {
                use super::runtime_types;
                pub type LostAccount = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type RescuerAccount = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AccountRecovered {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "AccountRecovered";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A recovery process has been removed for an account."]
            pub struct RecoveryRemoved {
                pub lost_account: recovery_removed::LostAccount,
            }
            pub mod recovery_removed {
                use super::runtime_types;
                pub type LostAccount = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RecoveryRemoved {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "RecoveryRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit has been updated."]
            pub struct DepositPoked {
                pub who: deposit_poked::Who,
                pub kind: deposit_poked::Kind,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Kind = runtime_types::pallet_recovery::DepositKind<
                    runtime_types::rococo_runtime::Runtime,
                >;
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Recovery";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod recoverable {
                    use super::runtime_types;
                    pub type Recoverable = runtime_types::pallet_recovery::RecoveryConfig<
                        ::core::primitive::u32,
                        ::core::primitive::u128,
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod active_recoveries {
                    use super::runtime_types;
                    pub type ActiveRecoveries = runtime_types::pallet_recovery::ActiveRecovery<
                        ::core::primitive::u32,
                        ::core::primitive::u128,
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod proxy {
                    use super::runtime_types;
                    pub type Proxy = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The set of recoverable accounts and their recovery configuration."]
                pub fn recoverable_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::recoverable::Recoverable,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "Recoverable",
                        (),
                        [
                            112u8, 7u8, 56u8, 46u8, 138u8, 197u8, 63u8, 234u8, 140u8, 123u8, 145u8,
                            106u8, 189u8, 190u8, 247u8, 61u8, 250u8, 67u8, 107u8, 42u8, 170u8,
                            79u8, 54u8, 168u8, 33u8, 214u8, 91u8, 227u8, 5u8, 107u8, 38u8, 26u8,
                        ],
                    )
                }
                #[doc = " The set of recoverable accounts and their recovery configuration."]
                pub fn recoverable(
                    &self,
                    _0: types::recoverable::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::recoverable::Param0,
                    >,
                    types::recoverable::Recoverable,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "Recoverable",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            112u8, 7u8, 56u8, 46u8, 138u8, 197u8, 63u8, 234u8, 140u8, 123u8, 145u8,
                            106u8, 189u8, 190u8, 247u8, 61u8, 250u8, 67u8, 107u8, 42u8, 170u8,
                            79u8, 54u8, 168u8, 33u8, 214u8, 91u8, 227u8, 5u8, 107u8, 38u8, 26u8,
                        ],
                    )
                }
                #[doc = " Active recovery attempts."]
                #[doc = ""]
                #[doc = " First account is the account to be recovered, and the second account"]
                #[doc = " is the user trying to recover the account."]
                pub fn active_recoveries_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::active_recoveries::ActiveRecoveries,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "ActiveRecoveries",
                        (),
                        [
                            104u8, 252u8, 28u8, 142u8, 48u8, 26u8, 91u8, 201u8, 184u8, 163u8,
                            180u8, 197u8, 189u8, 71u8, 144u8, 88u8, 225u8, 13u8, 183u8, 84u8,
                            244u8, 41u8, 164u8, 212u8, 153u8, 247u8, 191u8, 25u8, 162u8, 25u8,
                            91u8, 123u8,
                        ],
                    )
                }
                #[doc = " Active recovery attempts."]
                #[doc = ""]
                #[doc = " First account is the account to be recovered, and the second account"]
                #[doc = " is the user trying to recover the account."]
                pub fn active_recoveries_iter1(
                    &self,
                    _0: types::active_recoveries::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::active_recoveries::Param0,
                    >,
                    types::active_recoveries::ActiveRecoveries,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "ActiveRecoveries",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            104u8, 252u8, 28u8, 142u8, 48u8, 26u8, 91u8, 201u8, 184u8, 163u8,
                            180u8, 197u8, 189u8, 71u8, 144u8, 88u8, 225u8, 13u8, 183u8, 84u8,
                            244u8, 41u8, 164u8, 212u8, 153u8, 247u8, 191u8, 25u8, 162u8, 25u8,
                            91u8, 123u8,
                        ],
                    )
                }
                #[doc = " Active recovery attempts."]
                #[doc = ""]
                #[doc = " First account is the account to be recovered, and the second account"]
                #[doc = " is the user trying to recover the account."]
                pub fn active_recoveries(
                    &self,
                    _0: types::active_recoveries::Param0,
                    _1: types::active_recoveries::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::active_recoveries::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::active_recoveries::Param1,
                        >,
                    ),
                    types::active_recoveries::ActiveRecoveries,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "ActiveRecoveries",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            104u8, 252u8, 28u8, 142u8, 48u8, 26u8, 91u8, 201u8, 184u8, 163u8,
                            180u8, 197u8, 189u8, 71u8, 144u8, 88u8, 225u8, 13u8, 183u8, 84u8,
                            244u8, 41u8, 164u8, 212u8, 153u8, 247u8, 191u8, 25u8, 162u8, 25u8,
                            91u8, 123u8,
                        ],
                    )
                }
                #[doc = " The list of allowed proxy accounts."]
                #[doc = ""]
                #[doc = " Map from the user who can access it to the recovered account."]
                pub fn proxy_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::proxy::Proxy,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "Proxy",
                        (),
                        [
                            161u8, 242u8, 17u8, 183u8, 161u8, 47u8, 87u8, 110u8, 201u8, 177u8,
                            199u8, 157u8, 30u8, 131u8, 49u8, 89u8, 182u8, 86u8, 152u8, 19u8, 199u8,
                            33u8, 12u8, 138u8, 51u8, 215u8, 130u8, 5u8, 251u8, 115u8, 69u8, 159u8,
                        ],
                    )
                }
                #[doc = " The list of allowed proxy accounts."]
                #[doc = ""]
                #[doc = " Map from the user who can access it to the recovered account."]
                pub fn proxy(
                    &self,
                    _0: types::proxy::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::proxy::Param0,
                    >,
                    types::proxy::Proxy,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Recovery",
                        "Proxy",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            161u8, 242u8, 17u8, 183u8, 161u8, 47u8, 87u8, 110u8, 201u8, 177u8,
                            199u8, 157u8, 30u8, 131u8, 49u8, 89u8, 182u8, 86u8, 152u8, 19u8, 199u8,
                            33u8, 12u8, 138u8, 51u8, 215u8, 130u8, 5u8, 251u8, 115u8, 69u8, 159u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The base amount of currency needed to reserve for creating a recovery configuration."]
                #[doc = ""]
                #[doc = " This is held for an additional storage item whose value size is"]
                #[doc = " `2 + sizeof(BlockNumber, Balance)` bytes."]
                pub fn config_deposit_base(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Recovery",
                        "ConfigDepositBase",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount of currency needed per additional user when creating a recovery"]
                #[doc = " configuration."]
                #[doc = ""]
                #[doc = " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage"]
                #[doc = " value."]
                pub fn friend_deposit_factor(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Recovery",
                        "FriendDepositFactor",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of friends allowed in a recovery configuration."]
                #[doc = ""]
                #[doc = " NOTE: The threshold programmed in this Pallet uses u16, so it does"]
                #[doc = " not really make sense to have a limit here greater than u16::MAX."]
                #[doc = " But also, that is a lot more than you should probably set this value"]
                #[doc = " to anyway..."]
                pub fn max_friends(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Recovery",
                        "MaxFriends",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The base amount of currency needed to reserve for starting a recovery."]
                #[doc = ""]
                #[doc = " This is primarily held for deterring malicious recovery attempts, and should"]
                #[doc = " have a value large enough that a bad actor would choose not to place this"]
                #[doc = " deposit. It also acts to fund additional storage item whose value size is"]
                #[doc = " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable"]
                #[doc = " threshold."]
                pub fn recovery_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Recovery",
                        "RecoveryDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod vesting {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Error for the vesting pallet."]
        pub type Error = runtime_types::pallet_vesting::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_vesting::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unlock any vested funds of the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"]
                #[doc = "locked under this pallet."]
                #[doc = ""]
                #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct Vest;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vest {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "vest";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unlock any vested funds of a `target` account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"]
                #[doc = "locked under this pallet."]
                #[doc = ""]
                #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct VestOther {
                    pub target: vest_other::Target,
                }
                pub mod vest_other {
                    use super::runtime_types;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for VestOther {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "vest_other";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a vested transfer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account receiving the vested funds."]
                #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                #[doc = ""]
                #[doc = "Emits `VestingCreated`."]
                #[doc = ""]
                #[doc = "NOTE: This will unlock all schedules through the current block."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct VestedTransfer {
                    pub target: vested_transfer::Target,
                    pub schedule: vested_transfer::Schedule,
                }
                pub mod vested_transfer {
                    use super::runtime_types;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Schedule = runtime_types::pallet_vesting::vesting_info::VestingInfo<
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for VestedTransfer {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "vested_transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force a vested transfer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `source`: The account whose funds should be transferred."]
                #[doc = "- `target`: The account that should be transferred the vested funds."]
                #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                #[doc = ""]
                #[doc = "Emits `VestingCreated`."]
                #[doc = ""]
                #[doc = "NOTE: This will unlock all schedules through the current block."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub struct ForceVestedTransfer {
                    pub source: force_vested_transfer::Source,
                    pub target: force_vested_transfer::Target,
                    pub schedule: force_vested_transfer::Schedule,
                }
                pub mod force_vested_transfer {
                    use super::runtime_types;
                    pub type Source = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Schedule = runtime_types::pallet_vesting::vesting_info::VestingInfo<
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceVestedTransfer {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "force_vested_transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"]
                #[doc = "the highest possible start and end blocks. If both schedules have already started the"]
                #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"]
                #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"]
                #[doc = "unmodified."]
                #[doc = ""]
                #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."]
                #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."]
                #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"]
                #[doc = "and both will be removed."]
                #[doc = ""]
                #[doc = "Merged schedule attributes:"]
                #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"]
                #[doc = "  current_block)`."]
                #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."]
                #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `schedule1_index`: index of the first schedule to merge."]
                #[doc = "- `schedule2_index`: index of the second schedule to merge."]
                pub struct MergeSchedules {
                    pub schedule1_index: merge_schedules::Schedule1Index,
                    pub schedule2_index: merge_schedules::Schedule2Index,
                }
                pub mod merge_schedules {
                    use super::runtime_types;
                    pub type Schedule1Index = ::core::primitive::u32;
                    pub type Schedule2Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for MergeSchedules {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "merge_schedules";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force remove a vesting schedule"]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `target`: An account that has a vesting schedule"]
                #[doc = "- `schedule_index`: The vesting schedule index that should be removed"]
                pub struct ForceRemoveVestingSchedule {
                    pub target: force_remove_vesting_schedule::Target,
                    pub schedule_index: force_remove_vesting_schedule::ScheduleIndex,
                }
                pub mod force_remove_vesting_schedule {
                    use super::runtime_types;
                    pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ScheduleIndex = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceRemoveVestingSchedule {
                    const PALLET: &'static str = "Vesting";
                    const CALL: &'static str = "force_remove_vesting_schedule";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Unlock any vested funds of the sender account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"]
                #[doc = "locked under this pallet."]
                #[doc = ""]
                #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn vest(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Vest>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "vest",
                        types::Vest {},
                        [
                            149u8, 89u8, 178u8, 148u8, 127u8, 127u8, 155u8, 60u8, 114u8, 126u8,
                            204u8, 123u8, 166u8, 70u8, 104u8, 208u8, 186u8, 69u8, 139u8, 181u8,
                            151u8, 154u8, 235u8, 161u8, 191u8, 35u8, 111u8, 60u8, 21u8, 165u8,
                            44u8, 122u8,
                        ],
                    )
                }
                #[doc = "Unlock any vested funds of a `target` account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"]
                #[doc = "locked under this pallet."]
                #[doc = ""]
                #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn vest_other(
                    &self,
                    target: types::vest_other::Target,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::VestOther>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "vest_other",
                        types::VestOther { target },
                        [
                            238u8, 92u8, 25u8, 149u8, 27u8, 211u8, 196u8, 31u8, 211u8, 28u8, 241u8,
                            30u8, 128u8, 35u8, 0u8, 227u8, 202u8, 215u8, 186u8, 69u8, 216u8, 110u8,
                            199u8, 120u8, 134u8, 141u8, 176u8, 224u8, 234u8, 42u8, 152u8, 128u8,
                        ],
                    )
                }
                #[doc = "Create a vested transfer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `target`: The account receiving the vested funds."]
                #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                #[doc = ""]
                #[doc = "Emits `VestingCreated`."]
                #[doc = ""]
                #[doc = "NOTE: This will unlock all schedules through the current block."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn vested_transfer(
                    &self,
                    target: types::vested_transfer::Target,
                    schedule: types::vested_transfer::Schedule,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::VestedTransfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "vested_transfer",
                        types::VestedTransfer { target, schedule },
                        [
                            198u8, 133u8, 254u8, 5u8, 22u8, 170u8, 205u8, 79u8, 218u8, 30u8, 81u8,
                            207u8, 227u8, 121u8, 132u8, 14u8, 217u8, 43u8, 66u8, 206u8, 15u8, 80u8,
                            173u8, 208u8, 128u8, 72u8, 223u8, 175u8, 93u8, 69u8, 128u8, 88u8,
                        ],
                    )
                }
                #[doc = "Force a vested transfer."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `source`: The account whose funds should be transferred."]
                #[doc = "- `target`: The account that should be transferred the vested funds."]
                #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                #[doc = ""]
                #[doc = "Emits `VestingCreated`."]
                #[doc = ""]
                #[doc = "NOTE: This will unlock all schedules through the current block."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(1)`."]
                pub fn force_vested_transfer(
                    &self,
                    source: types::force_vested_transfer::Source,
                    target: types::force_vested_transfer::Target,
                    schedule: types::force_vested_transfer::Schedule,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceVestedTransfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "force_vested_transfer",
                        types::ForceVestedTransfer {
                            source,
                            target,
                            schedule,
                        },
                        [
                            112u8, 17u8, 176u8, 133u8, 169u8, 192u8, 155u8, 217u8, 153u8, 36u8,
                            230u8, 45u8, 9u8, 192u8, 2u8, 201u8, 165u8, 60u8, 206u8, 226u8, 95u8,
                            86u8, 239u8, 196u8, 109u8, 62u8, 224u8, 237u8, 88u8, 74u8, 209u8,
                            251u8,
                        ],
                    )
                }
                #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"]
                #[doc = "the highest possible start and end blocks. If both schedules have already started the"]
                #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"]
                #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"]
                #[doc = "unmodified."]
                #[doc = ""]
                #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."]
                #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."]
                #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"]
                #[doc = "and both will be removed."]
                #[doc = ""]
                #[doc = "Merged schedule attributes:"]
                #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"]
                #[doc = "  current_block)`."]
                #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."]
                #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `schedule1_index`: index of the first schedule to merge."]
                #[doc = "- `schedule2_index`: index of the second schedule to merge."]
                pub fn merge_schedules(
                    &self,
                    schedule1_index: types::merge_schedules::Schedule1Index,
                    schedule2_index: types::merge_schedules::Schedule2Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::MergeSchedules>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "merge_schedules",
                        types::MergeSchedules {
                            schedule1_index,
                            schedule2_index,
                        },
                        [
                            45u8, 24u8, 13u8, 108u8, 26u8, 99u8, 61u8, 117u8, 195u8, 218u8, 182u8,
                            23u8, 188u8, 157u8, 181u8, 81u8, 38u8, 136u8, 31u8, 226u8, 8u8, 190u8,
                            33u8, 81u8, 86u8, 185u8, 156u8, 77u8, 157u8, 197u8, 41u8, 58u8,
                        ],
                    )
                }
                #[doc = "Force remove a vesting schedule"]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Root_."]
                #[doc = ""]
                #[doc = "- `target`: An account that has a vesting schedule"]
                #[doc = "- `schedule_index`: The vesting schedule index that should be removed"]
                pub fn force_remove_vesting_schedule(
                    &self,
                    target: types::force_remove_vesting_schedule::Target,
                    schedule_index: types::force_remove_vesting_schedule::ScheduleIndex,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceRemoveVestingSchedule,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Vesting",
                        "force_remove_vesting_schedule",
                        types::ForceRemoveVestingSchedule {
                            target,
                            schedule_index,
                        },
                        [
                            211u8, 253u8, 60u8, 15u8, 20u8, 53u8, 23u8, 13u8, 45u8, 223u8, 136u8,
                            183u8, 162u8, 143u8, 196u8, 188u8, 35u8, 64u8, 174u8, 16u8, 47u8, 13u8,
                            147u8, 173u8, 120u8, 143u8, 75u8, 89u8, 128u8, 187u8, 9u8, 18u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_vesting::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A vesting schedule has been created."]
            pub struct VestingCreated {
                pub account: vesting_created::Account,
                pub schedule_index: vesting_created::ScheduleIndex,
            }
            pub mod vesting_created {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ScheduleIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VestingCreated {
                const PALLET: &'static str = "Vesting";
                const EVENT: &'static str = "VestingCreated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The amount vested has been updated. This could indicate a change in funds available."]
            #[doc = "The balance given is the amount which is left unvested (and thus locked)."]
            pub struct VestingUpdated {
                pub account: vesting_updated::Account,
                pub unvested: vesting_updated::Unvested,
            }
            pub mod vesting_updated {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Unvested = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VestingUpdated {
                const PALLET: &'static str = "Vesting";
                const EVENT: &'static str = "VestingUpdated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An \\[account\\] has become fully vested."]
            pub struct VestingCompleted {
                pub account: vesting_completed::Account,
            }
            pub mod vesting_completed {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VestingCompleted {
                const PALLET: &'static str = "Vesting";
                const EVENT: &'static str = "VestingCompleted";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod vesting {
                    use super::runtime_types;
                    pub type Vesting = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::pallet_vesting::vesting_info::VestingInfo<
                            ::core::primitive::u128,
                            ::core::primitive::u32,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod storage_version {
                    use super::runtime_types;
                    pub type StorageVersion = runtime_types::pallet_vesting::Releases;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Information regarding the vesting of a given account."]
                pub fn vesting_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::vesting::Vesting,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Vesting",
                        "Vesting",
                        (),
                        [
                            95u8, 168u8, 217u8, 248u8, 149u8, 86u8, 195u8, 93u8, 73u8, 206u8,
                            105u8, 165u8, 33u8, 173u8, 232u8, 81u8, 147u8, 254u8, 50u8, 228u8,
                            156u8, 92u8, 242u8, 149u8, 42u8, 91u8, 58u8, 209u8, 142u8, 221u8,
                            230u8, 112u8,
                        ],
                    )
                }
                #[doc = " Information regarding the vesting of a given account."]
                pub fn vesting(
                    &self,
                    _0: types::vesting::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::vesting::Param0,
                    >,
                    types::vesting::Vesting,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Vesting",
                        "Vesting",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            95u8, 168u8, 217u8, 248u8, 149u8, 86u8, 195u8, 93u8, 73u8, 206u8,
                            105u8, 165u8, 33u8, 173u8, 232u8, 81u8, 147u8, 254u8, 50u8, 228u8,
                            156u8, 92u8, 242u8, 149u8, 42u8, 91u8, 58u8, 209u8, 142u8, 221u8,
                            230u8, 112u8,
                        ],
                    )
                }
                #[doc = " Storage version of the pallet."]
                #[doc = ""]
                #[doc = " New networks start with latest version, as determined by the genesis build."]
                pub fn storage_version(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::storage_version::StorageVersion,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Vesting",
                        "StorageVersion",
                        (),
                        [
                            230u8, 137u8, 180u8, 133u8, 142u8, 124u8, 231u8, 234u8, 223u8, 10u8,
                            154u8, 98u8, 158u8, 253u8, 228u8, 80u8, 5u8, 9u8, 91u8, 210u8, 252u8,
                            9u8, 13u8, 195u8, 193u8, 164u8, 129u8, 113u8, 128u8, 218u8, 8u8, 40u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum amount transferred to call `vested_transfer`."]
                pub fn min_vested_transfer(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Vesting",
                        "MinVestedTransfer",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                pub fn max_vesting_schedules(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Vesting",
                        "MaxVestingSchedules",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod scheduler {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_scheduler::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_scheduler::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Anonymously schedule a task."]
                pub struct Schedule {
                    pub when: schedule::When,
                    pub maybe_periodic: schedule::MaybePeriodic,
                    pub priority: schedule::Priority,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<schedule::Call>,
                }
                pub mod schedule {
                    use super::runtime_types;
                    pub type When = ::core::primitive::u32;
                    pub type MaybePeriodic =
                        ::core::option::Option<(::core::primitive::u32, ::core::primitive::u32)>;
                    pub type Priority = ::core::primitive::u8;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Schedule {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "schedule";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an anonymously scheduled task."]
                pub struct Cancel {
                    pub when: cancel::When,
                    pub index: cancel::Index,
                }
                pub mod cancel {
                    use super::runtime_types;
                    pub type When = ::core::primitive::u32;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Cancel {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "cancel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule a named task."]
                pub struct ScheduleNamed {
                    pub id: schedule_named::Id,
                    pub when: schedule_named::When,
                    pub maybe_periodic: schedule_named::MaybePeriodic,
                    pub priority: schedule_named::Priority,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<schedule_named::Call>,
                }
                pub mod schedule_named {
                    use super::runtime_types;
                    pub type Id = [::core::primitive::u8; 32usize];
                    pub type When = ::core::primitive::u32;
                    pub type MaybePeriodic =
                        ::core::option::Option<(::core::primitive::u32, ::core::primitive::u32)>;
                    pub type Priority = ::core::primitive::u8;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ScheduleNamed {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "schedule_named";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel a named scheduled task."]
                pub struct CancelNamed {
                    pub id: cancel_named::Id,
                }
                pub mod cancel_named {
                    use super::runtime_types;
                    pub type Id = [::core::primitive::u8; 32usize];
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelNamed {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "cancel_named";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Anonymously schedule a task after a delay."]
                pub struct ScheduleAfter {
                    pub after: schedule_after::After,
                    pub maybe_periodic: schedule_after::MaybePeriodic,
                    pub priority: schedule_after::Priority,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<schedule_after::Call>,
                }
                pub mod schedule_after {
                    use super::runtime_types;
                    pub type After = ::core::primitive::u32;
                    pub type MaybePeriodic =
                        ::core::option::Option<(::core::primitive::u32, ::core::primitive::u32)>;
                    pub type Priority = ::core::primitive::u8;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ScheduleAfter {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "schedule_after";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule a named task after a delay."]
                pub struct ScheduleNamedAfter {
                    pub id: schedule_named_after::Id,
                    pub after: schedule_named_after::After,
                    pub maybe_periodic: schedule_named_after::MaybePeriodic,
                    pub priority: schedule_named_after::Priority,
                    pub call:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<schedule_named_after::Call>,
                }
                pub mod schedule_named_after {
                    use super::runtime_types;
                    pub type Id = [::core::primitive::u8; 32usize];
                    pub type After = ::core::primitive::u32;
                    pub type MaybePeriodic =
                        ::core::option::Option<(::core::primitive::u32, ::core::primitive::u32)>;
                    pub type Priority = ::core::primitive::u8;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ScheduleNamedAfter {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "schedule_named_after";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"]
                #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"]
                #[doc = "succeeds."]
                #[doc = ""]
                #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                #[doc = "normally while the task is retrying."]
                #[doc = ""]
                #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                #[doc = "original `total_retries`."]
                pub struct SetRetry {
                    pub task: set_retry::Task,
                    pub retries: set_retry::Retries,
                    pub period: set_retry::Period,
                }
                pub mod set_retry {
                    use super::runtime_types;
                    pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                    pub type Retries = ::core::primitive::u8;
                    pub type Period = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetry {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "set_retry";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"]
                #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"]
                #[doc = "it succeeds."]
                #[doc = ""]
                #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                #[doc = "normally while the task is retrying."]
                #[doc = ""]
                #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                #[doc = "original `total_retries`."]
                pub struct SetRetryNamed {
                    pub id: set_retry_named::Id,
                    pub retries: set_retry_named::Retries,
                    pub period: set_retry_named::Period,
                }
                pub mod set_retry_named {
                    use super::runtime_types;
                    pub type Id = [::core::primitive::u8; 32usize];
                    pub type Retries = ::core::primitive::u8;
                    pub type Period = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetryNamed {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "set_retry_named";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Removes the retry configuration of a task."]
                pub struct CancelRetry {
                    pub task: cancel_retry::Task,
                }
                pub mod cancel_retry {
                    use super::runtime_types;
                    pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetry {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "cancel_retry";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel the retry configuration of a named task."]
                pub struct CancelRetryNamed {
                    pub id: cancel_retry_named::Id,
                }
                pub mod cancel_retry_named {
                    use super::runtime_types;
                    pub type Id = [::core::primitive::u8; 32usize];
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetryNamed {
                    const PALLET: &'static str = "Scheduler";
                    const CALL: &'static str = "cancel_retry_named";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Anonymously schedule a task."]
                pub fn schedule(
                    &self,
                    when: types::schedule::When,
                    maybe_periodic: types::schedule::MaybePeriodic,
                    priority: types::schedule::Priority,
                    call: types::schedule::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Schedule>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "schedule",
                        types::Schedule {
                            when,
                            maybe_periodic,
                            priority,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            28u8, 131u8, 251u8, 76u8, 180u8, 77u8, 178u8, 31u8, 166u8, 232u8,
                            147u8, 67u8, 15u8, 15u8, 187u8, 39u8, 210u8, 115u8, 84u8, 135u8, 22u8,
                            233u8, 251u8, 239u8, 28u8, 62u8, 67u8, 133u8, 61u8, 156u8, 234u8, 5u8,
                        ],
                    )
                }
                #[doc = "Cancel an anonymously scheduled task."]
                pub fn cancel(
                    &self,
                    when: types::cancel::When,
                    index: types::cancel::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Cancel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "cancel",
                        types::Cancel { when, index },
                        [
                            183u8, 204u8, 143u8, 86u8, 17u8, 130u8, 132u8, 91u8, 133u8, 168u8,
                            103u8, 129u8, 114u8, 56u8, 123u8, 42u8, 123u8, 120u8, 221u8, 211u8,
                            26u8, 85u8, 82u8, 246u8, 192u8, 39u8, 254u8, 45u8, 147u8, 56u8, 178u8,
                            133u8,
                        ],
                    )
                }
                #[doc = "Schedule a named task."]
                pub fn schedule_named(
                    &self,
                    id: types::schedule_named::Id,
                    when: types::schedule_named::When,
                    maybe_periodic: types::schedule_named::MaybePeriodic,
                    priority: types::schedule_named::Priority,
                    call: types::schedule_named::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ScheduleNamed>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "schedule_named",
                        types::ScheduleNamed {
                            id,
                            when,
                            maybe_periodic,
                            priority,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            53u8, 191u8, 42u8, 220u8, 246u8, 117u8, 98u8, 217u8, 237u8, 217u8,
                            203u8, 73u8, 181u8, 225u8, 168u8, 121u8, 10u8, 143u8, 223u8, 231u8,
                            133u8, 148u8, 68u8, 193u8, 167u8, 86u8, 185u8, 191u8, 237u8, 238u8,
                            98u8, 196u8,
                        ],
                    )
                }
                #[doc = "Cancel a named scheduled task."]
                pub fn cancel_named(
                    &self,
                    id: types::cancel_named::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelNamed>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "cancel_named",
                        types::CancelNamed { id },
                        [
                            205u8, 35u8, 28u8, 57u8, 224u8, 7u8, 49u8, 233u8, 236u8, 163u8, 93u8,
                            236u8, 103u8, 69u8, 65u8, 51u8, 121u8, 84u8, 9u8, 196u8, 147u8, 122u8,
                            227u8, 200u8, 181u8, 233u8, 62u8, 240u8, 174u8, 83u8, 129u8, 193u8,
                        ],
                    )
                }
                #[doc = "Anonymously schedule a task after a delay."]
                pub fn schedule_after(
                    &self,
                    after: types::schedule_after::After,
                    maybe_periodic: types::schedule_after::MaybePeriodic,
                    priority: types::schedule_after::Priority,
                    call: types::schedule_after::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ScheduleAfter>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "schedule_after",
                        types::ScheduleAfter {
                            after,
                            maybe_periodic,
                            priority,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            215u8, 157u8, 221u8, 21u8, 41u8, 211u8, 158u8, 235u8, 22u8, 168u8,
                            133u8, 162u8, 255u8, 64u8, 226u8, 177u8, 194u8, 234u8, 160u8, 27u8,
                            175u8, 113u8, 246u8, 36u8, 149u8, 75u8, 116u8, 35u8, 43u8, 238u8, 39u8,
                            10u8,
                        ],
                    )
                }
                #[doc = "Schedule a named task after a delay."]
                pub fn schedule_named_after(
                    &self,
                    id: types::schedule_named_after::Id,
                    after: types::schedule_named_after::After,
                    maybe_periodic: types::schedule_named_after::MaybePeriodic,
                    priority: types::schedule_named_after::Priority,
                    call: types::schedule_named_after::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ScheduleNamedAfter>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "schedule_named_after",
                        types::ScheduleNamedAfter {
                            id,
                            after,
                            maybe_periodic,
                            priority,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            105u8, 139u8, 38u8, 248u8, 160u8, 252u8, 79u8, 44u8, 3u8, 84u8, 139u8,
                            215u8, 129u8, 109u8, 65u8, 37u8, 42u8, 243u8, 46u8, 80u8, 238u8, 64u8,
                            109u8, 204u8, 31u8, 157u8, 55u8, 206u8, 13u8, 85u8, 59u8, 108u8,
                        ],
                    )
                }
                #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"]
                #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"]
                #[doc = "succeeds."]
                #[doc = ""]
                #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                #[doc = "normally while the task is retrying."]
                #[doc = ""]
                #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                #[doc = "original `total_retries`."]
                pub fn set_retry(
                    &self,
                    task: types::set_retry::Task,
                    retries: types::set_retry::Retries,
                    period: types::set_retry::Period,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetRetry>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "set_retry",
                        types::SetRetry {
                            task,
                            retries,
                            period,
                        },
                        [
                            2u8, 242u8, 180u8, 69u8, 237u8, 168u8, 243u8, 93u8, 47u8, 222u8, 189u8,
                            74u8, 233u8, 106u8, 54u8, 40u8, 160u8, 61u8, 78u8, 138u8, 232u8, 20u8,
                            243u8, 17u8, 151u8, 194u8, 67u8, 200u8, 186u8, 192u8, 210u8, 214u8,
                        ],
                    )
                }
                #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"]
                #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"]
                #[doc = "it succeeds."]
                #[doc = ""]
                #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                #[doc = "normally while the task is retrying."]
                #[doc = ""]
                #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                #[doc = "original `total_retries`."]
                pub fn set_retry_named(
                    &self,
                    id: types::set_retry_named::Id,
                    retries: types::set_retry_named::Retries,
                    period: types::set_retry_named::Period,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetRetryNamed>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "set_retry_named",
                        types::SetRetryNamed {
                            id,
                            retries,
                            period,
                        },
                        [
                            240u8, 102u8, 255u8, 253u8, 52u8, 81u8, 164u8, 170u8, 184u8, 178u8,
                            254u8, 126u8, 41u8, 247u8, 121u8, 22u8, 254u8, 136u8, 237u8, 37u8,
                            11u8, 42u8, 227u8, 234u8, 132u8, 83u8, 109u8, 168u8, 31u8, 44u8, 231u8,
                            70u8,
                        ],
                    )
                }
                #[doc = "Removes the retry configuration of a task."]
                pub fn cancel_retry(
                    &self,
                    task: types::cancel_retry::Task,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelRetry>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "cancel_retry",
                        types::CancelRetry { task },
                        [
                            142u8, 126u8, 127u8, 216u8, 64u8, 189u8, 42u8, 126u8, 63u8, 249u8,
                            211u8, 202u8, 224u8, 197u8, 199u8, 240u8, 58u8, 94u8, 219u8, 177u8,
                            20u8, 210u8, 153u8, 0u8, 127u8, 255u8, 235u8, 238u8, 170u8, 240u8,
                            44u8, 49u8,
                        ],
                    )
                }
                #[doc = "Cancel the retry configuration of a named task."]
                pub fn cancel_retry_named(
                    &self,
                    id: types::cancel_retry_named::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelRetryNamed>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Scheduler",
                        "cancel_retry_named",
                        types::CancelRetryNamed { id },
                        [
                            76u8, 157u8, 253u8, 113u8, 162u8, 54u8, 98u8, 21u8, 62u8, 44u8, 155u8,
                            202u8, 2u8, 28u8, 153u8, 219u8, 67u8, 166u8, 206u8, 79u8, 139u8, 3u8,
                            119u8, 182u8, 254u8, 134u8, 143u8, 121u8, 155u8, 220u8, 192u8, 209u8,
                        ],
                    )
                }
            }
        }
        #[doc = "Events type."]
        pub type Event = runtime_types::pallet_scheduler::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Scheduled some task."]
            pub struct Scheduled {
                pub when: scheduled::When,
                pub index: scheduled::Index,
            }
            pub mod scheduled {
                use super::runtime_types;
                pub type When = ::core::primitive::u32;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Scheduled {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "Scheduled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Canceled some task."]
            pub struct Canceled {
                pub when: canceled::When,
                pub index: canceled::Index,
            }
            pub mod canceled {
                use super::runtime_types;
                pub type When = ::core::primitive::u32;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Canceled {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "Canceled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Dispatched some task."]
            pub struct Dispatched {
                pub task: dispatched::Task,
                pub id: dispatched::Id,
                pub result: dispatched::Result,
            }
            pub mod dispatched {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
                pub type Result =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Dispatched {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "Dispatched";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Set a retry configuration for some task."]
            pub struct RetrySet {
                pub task: retry_set::Task,
                pub id: retry_set::Id,
                pub period: retry_set::Period,
                pub retries: retry_set::Retries,
            }
            pub mod retry_set {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
                pub type Period = ::core::primitive::u32;
                pub type Retries = ::core::primitive::u8;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RetrySet {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "RetrySet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Cancel a retry configuration for some task."]
            pub struct RetryCancelled {
                pub task: retry_cancelled::Task,
                pub id: retry_cancelled::Id,
            }
            pub mod retry_cancelled {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RetryCancelled {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "RetryCancelled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The call for the provided hash was not found so the task has been aborted."]
            pub struct CallUnavailable {
                pub task: call_unavailable::Task,
                pub id: call_unavailable::Id,
            }
            pub mod call_unavailable {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CallUnavailable {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "CallUnavailable";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given task was unable to be renewed since the agenda is full at that block."]
            pub struct PeriodicFailed {
                pub task: periodic_failed::Task,
                pub id: periodic_failed::Id,
            }
            pub mod periodic_failed {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PeriodicFailed {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "PeriodicFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given task was unable to be retried since the agenda is full at that block or there"]
            #[doc = "was not enough weight to reschedule it."]
            pub struct RetryFailed {
                pub task: retry_failed::Task,
                pub id: retry_failed::Id,
            }
            pub mod retry_failed {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RetryFailed {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "RetryFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given task can never be executed since it is overweight."]
            pub struct PermanentlyOverweight {
                pub task: permanently_overweight::Task,
                pub id: permanently_overweight::Id,
            }
            pub mod permanently_overweight {
                use super::runtime_types;
                pub type Task = (::core::primitive::u32, ::core::primitive::u32);
                pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PermanentlyOverweight {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "PermanentlyOverweight";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Agenda is incomplete from `when`."]
            pub struct AgendaIncomplete {
                pub when: agenda_incomplete::When,
            }
            pub mod agenda_incomplete {
                use super::runtime_types;
                pub type When = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AgendaIncomplete {
                const PALLET: &'static str = "Scheduler";
                const EVENT: &'static str = "AgendaIncomplete";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod incomplete_since {
                    use super::runtime_types;
                    pub type IncompleteSince = ::core::primitive::u32;
                }
                pub mod agenda {
                    use super::runtime_types;
                    pub type Agenda = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::option::Option<
                            runtime_types::pallet_scheduler::Scheduled<
                                [::core::primitive::u8; 32usize],
                                runtime_types::frame_support::traits::preimages::Bounded<
                                    runtime_types::rococo_runtime::RuntimeCall,
                                    runtime_types::sp_runtime::traits::BlakeTwo256,
                                >,
                                ::core::primitive::u32,
                                runtime_types::rococo_runtime::OriginCaller,
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        >,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod retries {
                    use super::runtime_types;
                    pub type Retries =
                        runtime_types::pallet_scheduler::RetryConfig<::core::primitive::u32>;
                    pub type Param0 = (::core::primitive::u32, ::core::primitive::u32);
                }
                pub mod lookup {
                    use super::runtime_types;
                    pub type Lookup = (::core::primitive::u32, ::core::primitive::u32);
                    pub type Param0 = [::core::primitive::u8; 32usize];
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Block number at which the agenda began incomplete execution."]
                pub fn incomplete_since(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::incomplete_since::IncompleteSince,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "IncompleteSince",
                        (),
                        [
                            250u8, 83u8, 64u8, 167u8, 205u8, 59u8, 225u8, 97u8, 205u8, 12u8, 76u8,
                            130u8, 197u8, 4u8, 111u8, 208u8, 92u8, 217u8, 145u8, 119u8, 38u8,
                            135u8, 1u8, 242u8, 228u8, 143u8, 56u8, 25u8, 115u8, 233u8, 227u8, 66u8,
                        ],
                    )
                }
                #[doc = " Items to be executed, indexed by the block number that they should be executed on."]
                pub fn agenda_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::agenda::Agenda,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Agenda",
                        (),
                        [
                            148u8, 16u8, 2u8, 44u8, 137u8, 244u8, 124u8, 103u8, 156u8, 203u8, 79u8,
                            36u8, 95u8, 50u8, 189u8, 52u8, 53u8, 67u8, 1u8, 161u8, 43u8, 194u8,
                            225u8, 148u8, 19u8, 232u8, 184u8, 238u8, 63u8, 25u8, 18u8, 125u8,
                        ],
                    )
                }
                #[doc = " Items to be executed, indexed by the block number that they should be executed on."]
                pub fn agenda(
                    &self,
                    _0: types::agenda::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::agenda::Param0,
                    >,
                    types::agenda::Agenda,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Agenda",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            148u8, 16u8, 2u8, 44u8, 137u8, 244u8, 124u8, 103u8, 156u8, 203u8, 79u8,
                            36u8, 95u8, 50u8, 189u8, 52u8, 53u8, 67u8, 1u8, 161u8, 43u8, 194u8,
                            225u8, 148u8, 19u8, 232u8, 184u8, 238u8, 63u8, 25u8, 18u8, 125u8,
                        ],
                    )
                }
                #[doc = " Retry configurations for items to be executed, indexed by task address."]
                pub fn retries_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::retries::Retries,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Retries",
                        (),
                        [
                            164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8,
                            146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8,
                            59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Retry configurations for items to be executed, indexed by task address."]
                pub fn retries(
                    &self,
                    _0: types::retries::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::retries::Param0,
                    >,
                    types::retries::Retries,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Retries",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8,
                            146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8,
                            59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Lookup from a name to the block number and index of the task."]
                #[doc = ""]
                #[doc = " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4"]
                #[doc = " identities."]
                pub fn lookup_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::lookup::Lookup,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Lookup",
                        (),
                        [
                            24u8, 87u8, 96u8, 127u8, 136u8, 205u8, 238u8, 174u8, 71u8, 110u8, 65u8,
                            98u8, 228u8, 167u8, 99u8, 71u8, 171u8, 186u8, 12u8, 218u8, 137u8, 70u8,
                            70u8, 228u8, 153u8, 111u8, 165u8, 114u8, 229u8, 136u8, 118u8, 131u8,
                        ],
                    )
                }
                #[doc = " Lookup from a name to the block number and index of the task."]
                #[doc = ""]
                #[doc = " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4"]
                #[doc = " identities."]
                pub fn lookup(
                    &self,
                    _0: types::lookup::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::lookup::Param0,
                    >,
                    types::lookup::Lookup,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Scheduler",
                        "Lookup",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            24u8, 87u8, 96u8, 127u8, 136u8, 205u8, 238u8, 174u8, 71u8, 110u8, 65u8,
                            98u8, 228u8, 167u8, 99u8, 71u8, 171u8, 186u8, 12u8, 218u8, 137u8, 70u8,
                            70u8, 228u8, 153u8, 111u8, 165u8, 114u8, 229u8, 136u8, 118u8, 131u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The maximum weight that may be scheduled per block for any dispatchables."]
                pub fn maximum_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_weights::weight_v2::Weight,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Scheduler",
                        "MaximumWeight",
                        [
                            149u8, 252u8, 129u8, 80u8, 169u8, 36u8, 79u8, 127u8, 240u8, 156u8,
                            56u8, 202u8, 219u8, 86u8, 5u8, 65u8, 245u8, 148u8, 138u8, 243u8, 210u8,
                            128u8, 234u8, 216u8, 240u8, 219u8, 123u8, 235u8, 21u8, 158u8, 237u8,
                            112u8,
                        ],
                    )
                }
                #[doc = " The maximum number of scheduled calls in the queue for a single block."]
                #[doc = ""]
                #[doc = " NOTE:"]
                #[doc = " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a"]
                #[doc = " higher limit under `runtime-benchmarks` feature."]
                pub fn max_scheduled_per_block(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Scheduler",
                        "MaxScheduledPerBlock",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod proxy {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_proxy::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_proxy::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"]
                #[doc = "`add_proxy`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                #[doc = "- `call`: The call to be made by the `real` account."]
                pub struct Proxy {
                    pub real: proxy::Real,
                    pub force_proxy_type: proxy::ForceProxyType,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<proxy::Call>,
                }
                pub mod proxy {
                    use super::runtime_types;
                    pub type Real = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ForceProxyType =
                        ::core::option::Option<runtime_types::rococo_runtime::ProxyType>;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Proxy {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "proxy";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."]
                #[doc = "- `proxy_type`: The permissions allowed for this proxy account."]
                #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                #[doc = "zero."]
                pub struct AddProxy {
                    pub delegate: add_proxy::Delegate,
                    pub proxy_type: add_proxy::ProxyType,
                    pub delay: add_proxy::Delay,
                }
                pub mod add_proxy {
                    use super::runtime_types;
                    pub type Delegate = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                    pub type Delay = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddProxy {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "add_proxy";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unregister a proxy account for the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."]
                #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."]
                pub struct RemoveProxy {
                    pub delegate: remove_proxy::Delegate,
                    pub proxy_type: remove_proxy::ProxyType,
                    pub delay: remove_proxy::Delay,
                }
                pub mod remove_proxy {
                    use super::runtime_types;
                    pub type Delegate = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                    pub type Delay = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveProxy {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "remove_proxy";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unregister all proxy accounts for the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "WARNING: This may be called on accounts created by `create_pure`, however if done, then"]
                #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"]
                pub struct RemoveProxies;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveProxies {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "remove_proxies";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"]
                #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."]
                #[doc = ""]
                #[doc = "Requires a `Signed` origin."]
                #[doc = ""]
                #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"]
                #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"]
                #[doc = "allow for maximum flexibility."]
                #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"]
                #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"]
                #[doc = "want to use `0`."]
                #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                #[doc = "zero."]
                #[doc = ""]
                #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"]
                #[doc = "same sender, with the same parameters."]
                #[doc = ""]
                #[doc = "Fails if there are insufficient funds to pay for deposit."]
                pub struct CreatePure {
                    pub proxy_type: create_pure::ProxyType,
                    pub delay: create_pure::Delay,
                    pub index: create_pure::Index,
                }
                pub mod create_pure {
                    use super::runtime_types;
                    pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                    pub type Delay = ::core::primitive::u32;
                    pub type Index = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CreatePure {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "create_pure";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Removes a previously spawned pure proxy."]
                #[doc = ""]
                #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"]
                #[doc = "inaccessible."]
                #[doc = ""]
                #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"]
                #[doc = "`create_pure` with corresponding parameters."]
                #[doc = ""]
                #[doc = "- `spawner`: The account that originally called `create_pure` to create this account."]
                #[doc = "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`."]
                #[doc = "- `proxy_type`: The proxy type originally passed to `create_pure`."]
                #[doc = "- `height`: The height of the chain when the call to `create_pure` was processed."]
                #[doc = "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed."]
                #[doc = ""]
                #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"]
                #[doc = "account whose `create_pure` call has corresponding parameters."]
                pub struct KillPure {
                    pub spawner: kill_pure::Spawner,
                    pub proxy_type: kill_pure::ProxyType,
                    pub index: kill_pure::Index,
                    #[codec(compact)]
                    pub height: kill_pure::Height,
                    #[codec(compact)]
                    pub ext_index: kill_pure::ExtIndex,
                }
                pub mod kill_pure {
                    use super::runtime_types;
                    pub type Spawner = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                    pub type Index = ::core::primitive::u16;
                    pub type Height = ::core::primitive::u32;
                    pub type ExtIndex = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillPure {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "kill_pure";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Publish the hash of a proxy-call that will be made in the future."]
                #[doc = ""]
                #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"]
                #[doc = "if the delay associated with the proxy relationship is greater than zero."]
                #[doc = ""]
                #[doc = "No more than `MaxPending` announcements may be made at any one time."]
                #[doc = ""]
                #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"]
                #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                pub struct Announce {
                    pub real: announce::Real,
                    pub call_hash: announce::CallHash,
                }
                pub mod announce {
                    use super::runtime_types;
                    pub type Real = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Announce {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "announce";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a given announcement."]
                #[doc = ""]
                #[doc = "May be called by a proxy account to remove a call they previously announced and return"]
                #[doc = "the deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                pub struct RemoveAnnouncement {
                    pub real: remove_announcement::Real,
                    pub call_hash: remove_announcement::CallHash,
                }
                pub mod remove_announcement {
                    use super::runtime_types;
                    pub type Real = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveAnnouncement {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "remove_announcement";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the given announcement of a delegate."]
                #[doc = ""]
                #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"]
                #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `delegate`: The account that previously announced the call."]
                #[doc = "- `call_hash`: The hash of the call to be made."]
                pub struct RejectAnnouncement {
                    pub delegate: reject_announcement::Delegate,
                    pub call_hash: reject_announcement::CallHash,
                }
                pub mod reject_announcement {
                    use super::runtime_types;
                    pub type Delegate = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RejectAnnouncement {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "reject_announcement";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"]
                #[doc = "`add_proxy`."]
                #[doc = ""]
                #[doc = "Removes any corresponding announcement(s)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                #[doc = "- `call`: The call to be made by the `real` account."]
                pub struct ProxyAnnounced {
                    pub delegate: proxy_announced::Delegate,
                    pub real: proxy_announced::Real,
                    pub force_proxy_type: proxy_announced::ForceProxyType,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<proxy_announced::Call>,
                }
                pub mod proxy_announced {
                    use super::runtime_types;
                    pub type Delegate = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Real = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type ForceProxyType =
                        ::core::option::Option<runtime_types::rococo_runtime::ProxyType>;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProxyAnnounced {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "proxy_announced";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke / Adjust deposits made for proxies and announcements based on current values."]
                #[doc = "This can be used by accounts to possibly lower their locked amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit amount has changed."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub struct PokeDeposit;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Proxy";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"]
                #[doc = "`add_proxy`."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                #[doc = "- `call`: The call to be made by the `real` account."]
                pub fn proxy(
                    &self,
                    real: types::proxy::Real,
                    force_proxy_type: types::proxy::ForceProxyType,
                    call: types::proxy::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Proxy>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "proxy",
                        types::Proxy {
                            real,
                            force_proxy_type,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            33u8, 66u8, 109u8, 177u8, 67u8, 191u8, 170u8, 33u8, 7u8, 18u8, 61u8,
                            183u8, 204u8, 3u8, 254u8, 251u8, 187u8, 214u8, 211u8, 212u8, 63u8,
                            103u8, 153u8, 249u8, 146u8, 217u8, 51u8, 22u8, 53u8, 120u8, 224u8,
                            55u8,
                        ],
                    )
                }
                #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."]
                #[doc = "- `proxy_type`: The permissions allowed for this proxy account."]
                #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                #[doc = "zero."]
                pub fn add_proxy(
                    &self,
                    delegate: types::add_proxy::Delegate,
                    proxy_type: types::add_proxy::ProxyType,
                    delay: types::add_proxy::Delay,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddProxy>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "add_proxy",
                        types::AddProxy {
                            delegate,
                            proxy_type,
                            delay,
                        },
                        [
                            183u8, 95u8, 175u8, 194u8, 140u8, 90u8, 170u8, 28u8, 251u8, 192u8,
                            151u8, 138u8, 76u8, 170u8, 207u8, 228u8, 169u8, 124u8, 19u8, 161u8,
                            181u8, 87u8, 121u8, 214u8, 101u8, 16u8, 30u8, 122u8, 125u8, 33u8,
                            156u8, 197u8,
                        ],
                    )
                }
                #[doc = "Unregister a proxy account for the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."]
                #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."]
                pub fn remove_proxy(
                    &self,
                    delegate: types::remove_proxy::Delegate,
                    proxy_type: types::remove_proxy::ProxyType,
                    delay: types::remove_proxy::Delay,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveProxy>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "remove_proxy",
                        types::RemoveProxy {
                            delegate,
                            proxy_type,
                            delay,
                        },
                        [
                            225u8, 127u8, 66u8, 209u8, 96u8, 176u8, 66u8, 143u8, 58u8, 248u8, 7u8,
                            95u8, 206u8, 250u8, 239u8, 199u8, 58u8, 128u8, 118u8, 204u8, 148u8,
                            80u8, 4u8, 147u8, 20u8, 29u8, 35u8, 188u8, 21u8, 175u8, 107u8, 223u8,
                        ],
                    )
                }
                #[doc = "Unregister all proxy accounts for the sender."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "WARNING: This may be called on accounts created by `create_pure`, however if done, then"]
                #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"]
                pub fn remove_proxies(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveProxies>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "remove_proxies",
                        types::RemoveProxies {},
                        [
                            1u8, 126u8, 36u8, 227u8, 185u8, 34u8, 218u8, 236u8, 125u8, 231u8, 68u8,
                            185u8, 145u8, 63u8, 250u8, 225u8, 103u8, 3u8, 189u8, 37u8, 172u8,
                            195u8, 197u8, 216u8, 99u8, 210u8, 240u8, 162u8, 158u8, 132u8, 24u8,
                            6u8,
                        ],
                    )
                }
                #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"]
                #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."]
                #[doc = ""]
                #[doc = "Requires a `Signed` origin."]
                #[doc = ""]
                #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"]
                #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"]
                #[doc = "allow for maximum flexibility."]
                #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"]
                #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"]
                #[doc = "want to use `0`."]
                #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                #[doc = "zero."]
                #[doc = ""]
                #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"]
                #[doc = "same sender, with the same parameters."]
                #[doc = ""]
                #[doc = "Fails if there are insufficient funds to pay for deposit."]
                pub fn create_pure(
                    &self,
                    proxy_type: types::create_pure::ProxyType,
                    delay: types::create_pure::Delay,
                    index: types::create_pure::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CreatePure>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "create_pure",
                        types::CreatePure {
                            proxy_type,
                            delay,
                            index,
                        },
                        [
                            224u8, 201u8, 76u8, 254u8, 224u8, 64u8, 123u8, 29u8, 77u8, 114u8,
                            213u8, 47u8, 9u8, 51u8, 87u8, 4u8, 142u8, 93u8, 212u8, 229u8, 148u8,
                            159u8, 143u8, 56u8, 0u8, 34u8, 249u8, 228u8, 37u8, 242u8, 188u8, 28u8,
                        ],
                    )
                }
                #[doc = "Removes a previously spawned pure proxy."]
                #[doc = ""]
                #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"]
                #[doc = "inaccessible."]
                #[doc = ""]
                #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"]
                #[doc = "`create_pure` with corresponding parameters."]
                #[doc = ""]
                #[doc = "- `spawner`: The account that originally called `create_pure` to create this account."]
                #[doc = "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`."]
                #[doc = "- `proxy_type`: The proxy type originally passed to `create_pure`."]
                #[doc = "- `height`: The height of the chain when the call to `create_pure` was processed."]
                #[doc = "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed."]
                #[doc = ""]
                #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"]
                #[doc = "account whose `create_pure` call has corresponding parameters."]
                pub fn kill_pure(
                    &self,
                    spawner: types::kill_pure::Spawner,
                    proxy_type: types::kill_pure::ProxyType,
                    index: types::kill_pure::Index,
                    height: types::kill_pure::Height,
                    ext_index: types::kill_pure::ExtIndex,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::KillPure>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "kill_pure",
                        types::KillPure {
                            spawner,
                            proxy_type,
                            index,
                            height,
                            ext_index,
                        },
                        [
                            59u8, 143u8, 9u8, 128u8, 44u8, 243u8, 110u8, 190u8, 82u8, 230u8, 253u8,
                            123u8, 30u8, 59u8, 114u8, 141u8, 255u8, 162u8, 42u8, 179u8, 222u8,
                            124u8, 235u8, 148u8, 5u8, 45u8, 254u8, 235u8, 75u8, 224u8, 58u8, 148u8,
                        ],
                    )
                }
                #[doc = "Publish the hash of a proxy-call that will be made in the future."]
                #[doc = ""]
                #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"]
                #[doc = "if the delay associated with the proxy relationship is greater than zero."]
                #[doc = ""]
                #[doc = "No more than `MaxPending` announcements may be made at any one time."]
                #[doc = ""]
                #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"]
                #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                pub fn announce(
                    &self,
                    real: types::announce::Real,
                    call_hash: types::announce::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Announce>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "announce",
                        types::Announce { real, call_hash },
                        [
                            105u8, 218u8, 232u8, 82u8, 80u8, 10u8, 11u8, 1u8, 93u8, 241u8, 121u8,
                            198u8, 167u8, 218u8, 95u8, 15u8, 75u8, 122u8, 155u8, 233u8, 10u8,
                            175u8, 145u8, 73u8, 214u8, 230u8, 67u8, 107u8, 23u8, 239u8, 69u8,
                            240u8,
                        ],
                    )
                }
                #[doc = "Remove a given announcement."]
                #[doc = ""]
                #[doc = "May be called by a proxy account to remove a call they previously announced and return"]
                #[doc = "the deposit."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                pub fn remove_announcement(
                    &self,
                    real: types::remove_announcement::Real,
                    call_hash: types::remove_announcement::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveAnnouncement>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "remove_announcement",
                        types::RemoveAnnouncement { real, call_hash },
                        [
                            40u8, 237u8, 179u8, 128u8, 201u8, 183u8, 20u8, 47u8, 99u8, 182u8, 81u8,
                            31u8, 27u8, 212u8, 133u8, 36u8, 8u8, 248u8, 57u8, 230u8, 138u8, 80u8,
                            241u8, 147u8, 69u8, 236u8, 156u8, 167u8, 205u8, 49u8, 60u8, 16u8,
                        ],
                    )
                }
                #[doc = "Remove the given announcement of a delegate."]
                #[doc = ""]
                #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"]
                #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `delegate`: The account that previously announced the call."]
                #[doc = "- `call_hash`: The hash of the call to be made."]
                pub fn reject_announcement(
                    &self,
                    delegate: types::reject_announcement::Delegate,
                    call_hash: types::reject_announcement::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RejectAnnouncement>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "reject_announcement",
                        types::RejectAnnouncement {
                            delegate,
                            call_hash,
                        },
                        [
                            150u8, 178u8, 49u8, 160u8, 211u8, 75u8, 58u8, 228u8, 121u8, 253u8,
                            167u8, 72u8, 68u8, 105u8, 159u8, 52u8, 41u8, 155u8, 92u8, 26u8, 169u8,
                            177u8, 102u8, 36u8, 1u8, 47u8, 87u8, 189u8, 223u8, 238u8, 244u8, 110u8,
                        ],
                    )
                }
                #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"]
                #[doc = "`add_proxy`."]
                #[doc = ""]
                #[doc = "Removes any corresponding announcement(s)."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                #[doc = "- `call`: The call to be made by the `real` account."]
                pub fn proxy_announced(
                    &self,
                    delegate: types::proxy_announced::Delegate,
                    real: types::proxy_announced::Real,
                    force_proxy_type: types::proxy_announced::ForceProxyType,
                    call: types::proxy_announced::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ProxyAnnounced>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "proxy_announced",
                        types::ProxyAnnounced {
                            delegate,
                            real,
                            force_proxy_type,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            128u8, 28u8, 200u8, 21u8, 163u8, 133u8, 236u8, 15u8, 35u8, 45u8, 183u8,
                            154u8, 30u8, 79u8, 161u8, 189u8, 225u8, 242u8, 7u8, 176u8, 40u8, 27u8,
                            153u8, 220u8, 69u8, 125u8, 224u8, 248u8, 140u8, 138u8, 143u8, 207u8,
                        ],
                    )
                }
                #[doc = "Poke / Adjust deposits made for proxies and announcements based on current values."]
                #[doc = "This can be used by accounts to possibly lower their locked amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit amount has changed."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub fn poke_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Proxy",
                        "poke_deposit",
                        types::PokeDeposit {},
                        [
                            127u8, 254u8, 187u8, 13u8, 51u8, 85u8, 145u8, 82u8, 61u8, 152u8, 218u8,
                            135u8, 191u8, 67u8, 53u8, 140u8, 42u8, 68u8, 7u8, 14u8, 95u8, 60u8,
                            41u8, 135u8, 32u8, 99u8, 40u8, 111u8, 10u8, 21u8, 103u8, 107u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_proxy::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A proxy was executed correctly, with the given."]
            pub struct ProxyExecuted {
                pub result: proxy_executed::Result,
            }
            pub mod proxy_executed {
                use super::runtime_types;
                pub type Result =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ProxyExecuted {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "ProxyExecuted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A pure account has been created by new proxy with given"]
            #[doc = "disambiguation index and proxy type."]
            pub struct PureCreated {
                pub pure: pure_created::Pure,
                pub who: pure_created::Who,
                pub proxy_type: pure_created::ProxyType,
                pub disambiguation_index: pure_created::DisambiguationIndex,
            }
            pub mod pure_created {
                use super::runtime_types;
                pub type Pure = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                pub type DisambiguationIndex = ::core::primitive::u16;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PureCreated {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "PureCreated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A pure proxy was killed by its spawner."]
            pub struct PureKilled {
                pub pure: pure_killed::Pure,
                pub spawner: pure_killed::Spawner,
                pub proxy_type: pure_killed::ProxyType,
                pub disambiguation_index: pure_killed::DisambiguationIndex,
            }
            pub mod pure_killed {
                use super::runtime_types;
                pub type Pure = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Spawner = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                pub type DisambiguationIndex = ::core::primitive::u16;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PureKilled {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "PureKilled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An announcement was placed to make a call in the future."]
            pub struct Announced {
                pub real: announced::Real,
                pub proxy: announced::Proxy,
                pub call_hash: announced::CallHash,
            }
            pub mod announced {
                use super::runtime_types;
                pub type Real = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Proxy = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Announced {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "Announced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A proxy was added."]
            pub struct ProxyAdded {
                pub delegator: proxy_added::Delegator,
                pub delegatee: proxy_added::Delegatee,
                pub proxy_type: proxy_added::ProxyType,
                pub delay: proxy_added::Delay,
            }
            pub mod proxy_added {
                use super::runtime_types;
                pub type Delegator = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Delegatee = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                pub type Delay = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ProxyAdded {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "ProxyAdded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A proxy was removed."]
            pub struct ProxyRemoved {
                pub delegator: proxy_removed::Delegator,
                pub delegatee: proxy_removed::Delegatee,
                pub proxy_type: proxy_removed::ProxyType,
                pub delay: proxy_removed::Delay,
            }
            pub mod proxy_removed {
                use super::runtime_types;
                pub type Delegator = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Delegatee = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ProxyType = runtime_types::rococo_runtime::ProxyType;
                pub type Delay = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ProxyRemoved {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "ProxyRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A deposit stored for proxies or announcements was poked / updated."]
            pub struct DepositPoked {
                pub who: deposit_poked::Who,
                pub kind: deposit_poked::Kind,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Kind = runtime_types::pallet_proxy::DepositKind;
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Proxy";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod proxies {
                    use super::runtime_types;
                    pub type Proxies = (
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::pallet_proxy::ProxyDefinition<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                                runtime_types::rococo_runtime::ProxyType,
                                ::core::primitive::u32,
                            >,
                        >,
                        ::core::primitive::u128,
                    );
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod announcements {
                    use super::runtime_types;
                    pub type Announcements = (
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::pallet_proxy::Announcement<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                                ::subxt::ext::subxt_core::utils::H256,
                                ::core::primitive::u32,
                            >,
                        >,
                        ::core::primitive::u128,
                    );
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The set of account proxies. Maps the account which has delegated to the accounts"]
                #[doc = " which are being delegated to, together with the amount held on deposit."]
                pub fn proxies_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::proxies::Proxies,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Proxy",
                        "Proxies",
                        (),
                        [
                            92u8, 131u8, 10u8, 14u8, 241u8, 148u8, 230u8, 81u8, 54u8, 152u8, 147u8,
                            180u8, 85u8, 28u8, 87u8, 215u8, 110u8, 13u8, 158u8, 207u8, 77u8, 102u8,
                            97u8, 57u8, 179u8, 237u8, 153u8, 148u8, 99u8, 141u8, 15u8, 126u8,
                        ],
                    )
                }
                #[doc = " The set of account proxies. Maps the account which has delegated to the accounts"]
                #[doc = " which are being delegated to, together with the amount held on deposit."]
                pub fn proxies(
                    &self,
                    _0: types::proxies::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::proxies::Param0,
                    >,
                    types::proxies::Proxies,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Proxy",
                        "Proxies",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            92u8, 131u8, 10u8, 14u8, 241u8, 148u8, 230u8, 81u8, 54u8, 152u8, 147u8,
                            180u8, 85u8, 28u8, 87u8, 215u8, 110u8, 13u8, 158u8, 207u8, 77u8, 102u8,
                            97u8, 57u8, 179u8, 237u8, 153u8, 148u8, 99u8, 141u8, 15u8, 126u8,
                        ],
                    )
                }
                #[doc = " The announcements made by the proxy (key)."]
                pub fn announcements_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::announcements::Announcements,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Proxy",
                        "Announcements",
                        (),
                        [
                            129u8, 228u8, 198u8, 210u8, 90u8, 69u8, 151u8, 198u8, 206u8, 174u8,
                            148u8, 58u8, 134u8, 14u8, 53u8, 56u8, 234u8, 71u8, 84u8, 247u8, 246u8,
                            207u8, 117u8, 221u8, 84u8, 72u8, 254u8, 215u8, 102u8, 49u8, 21u8,
                            173u8,
                        ],
                    )
                }
                #[doc = " The announcements made by the proxy (key)."]
                pub fn announcements(
                    &self,
                    _0: types::announcements::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::announcements::Param0,
                    >,
                    types::announcements::Announcements,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Proxy",
                        "Announcements",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            129u8, 228u8, 198u8, 210u8, 90u8, 69u8, 151u8, 198u8, 206u8, 174u8,
                            148u8, 58u8, 134u8, 14u8, 53u8, 56u8, 234u8, 71u8, 84u8, 247u8, 246u8,
                            207u8, 117u8, 221u8, 84u8, 72u8, 254u8, 215u8, 102u8, 49u8, 21u8,
                            173u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The base amount of currency needed to reserve for creating a proxy."]
                #[doc = ""]
                #[doc = " This is held for an additional storage item whose value size is"]
                #[doc = " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."]
                pub fn proxy_deposit_base(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "ProxyDepositBase",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount of currency needed per proxy added."]
                #[doc = ""]
                #[doc = " This is held for adding 32 bytes plus an instance of `ProxyType` more into a"]
                #[doc = " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take"]
                #[doc = " into account `32 + proxy_type.encode().len()` bytes of data."]
                pub fn proxy_deposit_factor(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "ProxyDepositFactor",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of proxies allowed for a single account."]
                pub fn max_proxies(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "MaxProxies",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of time-delayed announcements that are allowed to be pending."]
                pub fn max_pending(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "MaxPending",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The base amount of currency needed to reserve for creating an announcement."]
                #[doc = ""]
                #[doc = " This is held when a new storage item holding a `Balance` is created (typically 16"]
                #[doc = " bytes)."]
                pub fn announcement_deposit_base(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "AnnouncementDepositBase",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount of currency needed per announcement made."]
                #[doc = ""]
                #[doc = " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)"]
                #[doc = " into a pre-existing storage value."]
                pub fn announcement_deposit_factor(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Proxy",
                        "AnnouncementDepositFactor",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod multisig {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_multisig::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_multisig::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                #[doc = "multi-signature, but do not participate in the approval process."]
                #[doc = "- `call`: The call to be executed."]
                #[doc = ""]
                #[doc = "Result is equivalent to the dispatched result."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."]
                pub struct AsMultiThreshold1 {
                    pub other_signatories: as_multi_threshold1::OtherSignatories,
                    pub call:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<as_multi_threshold1::Call>,
                }
                pub mod as_multi_threshold1 {
                    use super::runtime_types;
                    pub type OtherSignatories = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AsMultiThreshold1 {
                    const PALLET: &'static str = "Multisig";
                    const CALL: &'static str = "as_multi_threshold_1";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                #[doc = ""]
                #[doc = "If there are enough, then dispatch the call."]
                #[doc = ""]
                #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                #[doc = "is cancelled."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                #[doc = "transaction index) of the first approval transaction."]
                #[doc = "- `call`: The call to be executed."]
                #[doc = ""]
                #[doc = "NOTE: Unless this is the final approval, you will generally want to use"]
                #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."]
                #[doc = ""]
                #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"]
                #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"]
                #[doc = "may be found in the deposited `MultisigExecuted` event."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S + Z + Call)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                #[doc = "- One event."]
                #[doc = "- The weight of the `call`."]
                #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                pub struct AsMulti {
                    pub threshold: as_multi::Threshold,
                    pub other_signatories: as_multi::OtherSignatories,
                    pub maybe_timepoint: as_multi::MaybeTimepoint,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<as_multi::Call>,
                    pub max_weight: as_multi::MaxWeight,
                }
                pub mod as_multi {
                    use super::runtime_types;
                    pub type Threshold = ::core::primitive::u16;
                    pub type OtherSignatories = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type MaybeTimepoint = ::core::option::Option<
                        runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                    >;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                    pub type MaxWeight = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AsMulti {
                    const PALLET: &'static str = "Multisig";
                    const CALL: &'static str = "as_multi";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                #[doc = ""]
                #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                #[doc = "is cancelled."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                #[doc = "transaction index) of the first approval transaction."]
                #[doc = "- `call_hash`: The hash of the call to be executed."]
                #[doc = ""]
                #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                #[doc = "- One event."]
                #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                pub struct ApproveAsMulti {
                    pub threshold: approve_as_multi::Threshold,
                    pub other_signatories: approve_as_multi::OtherSignatories,
                    pub maybe_timepoint: approve_as_multi::MaybeTimepoint,
                    pub call_hash: approve_as_multi::CallHash,
                    pub max_weight: approve_as_multi::MaxWeight,
                }
                pub mod approve_as_multi {
                    use super::runtime_types;
                    pub type Threshold = ::core::primitive::u16;
                    pub type OtherSignatories = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type MaybeTimepoint = ::core::option::Option<
                        runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                    >;
                    pub type CallHash = [::core::primitive::u8; 32usize];
                    pub type MaxWeight = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApproveAsMulti {
                    const PALLET: &'static str = "Multisig";
                    const CALL: &'static str = "approve_as_multi";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"]
                #[doc = "for this operation will be unreserved on success."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"]
                #[doc = "transaction for this dispatch."]
                #[doc = "- `call_hash`: The hash of the call to be executed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- One event."]
                #[doc = "- I/O: 1 read `O(S)`, one remove."]
                #[doc = "- Storage: removes one item."]
                pub struct CancelAsMulti {
                    pub threshold: cancel_as_multi::Threshold,
                    pub other_signatories: cancel_as_multi::OtherSignatories,
                    pub timepoint: cancel_as_multi::Timepoint,
                    pub call_hash: cancel_as_multi::CallHash,
                }
                pub mod cancel_as_multi {
                    use super::runtime_types;
                    pub type Threshold = ::core::primitive::u16;
                    pub type OtherSignatories = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type Timepoint =
                        runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>;
                    pub type CallHash = [::core::primitive::u8; 32usize];
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelAsMulti {
                    const PALLET: &'static str = "Multisig";
                    const CALL: &'static str = "cancel_as_multi";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke the deposit reserved for an existing multisig operation."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be the original depositor of"]
                #[doc = "the multisig operation."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit amount has changed."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals needed for this multisig."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                #[doc = "  multisig."]
                #[doc = "- `call_hash`: The hash of the call this deposit is reserved for."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub struct PokeDeposit {
                    pub threshold: poke_deposit::Threshold,
                    pub other_signatories: poke_deposit::OtherSignatories,
                    pub call_hash: poke_deposit::CallHash,
                }
                pub mod poke_deposit {
                    use super::runtime_types;
                    pub type Threshold = ::core::primitive::u16;
                    pub type OtherSignatories = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type CallHash = [::core::primitive::u8; 32usize];
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Multisig";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                #[doc = "multi-signature, but do not participate in the approval process."]
                #[doc = "- `call`: The call to be executed."]
                #[doc = ""]
                #[doc = "Result is equivalent to the dispatched result."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."]
                pub fn as_multi_threshold_1(
                    &self,
                    other_signatories: types::as_multi_threshold1::OtherSignatories,
                    call: types::as_multi_threshold1::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AsMultiThreshold1>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Multisig",
                        "as_multi_threshold_1",
                        types::AsMultiThreshold1 {
                            other_signatories,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            14u8, 149u8, 179u8, 4u8, 128u8, 8u8, 190u8, 221u8, 83u8, 114u8, 48u8,
                            213u8, 198u8, 81u8, 136u8, 239u8, 170u8, 183u8, 70u8, 165u8, 92u8,
                            134u8, 61u8, 42u8, 0u8, 209u8, 77u8, 21u8, 236u8, 176u8, 134u8, 132u8,
                        ],
                    )
                }
                #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                #[doc = ""]
                #[doc = "If there are enough, then dispatch the call."]
                #[doc = ""]
                #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                #[doc = "is cancelled."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                #[doc = "transaction index) of the first approval transaction."]
                #[doc = "- `call`: The call to be executed."]
                #[doc = ""]
                #[doc = "NOTE: Unless this is the final approval, you will generally want to use"]
                #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."]
                #[doc = ""]
                #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"]
                #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"]
                #[doc = "may be found in the deposited `MultisigExecuted` event."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S + Z + Call)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                #[doc = "- One event."]
                #[doc = "- The weight of the `call`."]
                #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                pub fn as_multi(
                    &self,
                    threshold: types::as_multi::Threshold,
                    other_signatories: types::as_multi::OtherSignatories,
                    maybe_timepoint: types::as_multi::MaybeTimepoint,
                    call: types::as_multi::Call,
                    max_weight: types::as_multi::MaxWeight,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AsMulti>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Multisig",
                        "as_multi",
                        types::AsMulti {
                            threshold,
                            other_signatories,
                            maybe_timepoint,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                            max_weight,
                        },
                        [
                            73u8, 93u8, 70u8, 21u8, 37u8, 16u8, 173u8, 153u8, 131u8, 225u8, 139u8,
                            228u8, 254u8, 151u8, 43u8, 2u8, 141u8, 183u8, 25u8, 136u8, 67u8, 177u8,
                            167u8, 78u8, 143u8, 109u8, 201u8, 206u8, 227u8, 72u8, 20u8, 234u8,
                        ],
                    )
                }
                #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                #[doc = ""]
                #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                #[doc = "is cancelled."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                #[doc = "transaction index) of the first approval transaction."]
                #[doc = "- `call_hash`: The hash of the call to be executed."]
                #[doc = ""]
                #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                #[doc = "- One event."]
                #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                pub fn approve_as_multi(
                    &self,
                    threshold: types::approve_as_multi::Threshold,
                    other_signatories: types::approve_as_multi::OtherSignatories,
                    maybe_timepoint: types::approve_as_multi::MaybeTimepoint,
                    call_hash: types::approve_as_multi::CallHash,
                    max_weight: types::approve_as_multi::MaxWeight,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ApproveAsMulti>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Multisig",
                        "approve_as_multi",
                        types::ApproveAsMulti {
                            threshold,
                            other_signatories,
                            maybe_timepoint,
                            call_hash,
                            max_weight,
                        },
                        [
                            248u8, 46u8, 131u8, 35u8, 204u8, 12u8, 218u8, 150u8, 88u8, 131u8, 89u8,
                            13u8, 95u8, 122u8, 87u8, 107u8, 136u8, 154u8, 92u8, 199u8, 108u8, 92u8,
                            207u8, 171u8, 113u8, 8u8, 47u8, 248u8, 65u8, 26u8, 203u8, 135u8,
                        ],
                    )
                }
                #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"]
                #[doc = "for this operation will be unreserved on success."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                #[doc = "dispatch. May not be empty."]
                #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"]
                #[doc = "transaction for this dispatch."]
                #[doc = "- `call_hash`: The hash of the call to be executed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- `O(S)`."]
                #[doc = "- Up to one balance-reserve or unreserve operation."]
                #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                #[doc = "- One encode & hash, both of complexity `O(S)`."]
                #[doc = "- One event."]
                #[doc = "- I/O: 1 read `O(S)`, one remove."]
                #[doc = "- Storage: removes one item."]
                pub fn cancel_as_multi(
                    &self,
                    threshold: types::cancel_as_multi::Threshold,
                    other_signatories: types::cancel_as_multi::OtherSignatories,
                    timepoint: types::cancel_as_multi::Timepoint,
                    call_hash: types::cancel_as_multi::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelAsMulti>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Multisig",
                        "cancel_as_multi",
                        types::CancelAsMulti {
                            threshold,
                            other_signatories,
                            timepoint,
                            call_hash,
                        },
                        [
                            212u8, 179u8, 123u8, 40u8, 209u8, 228u8, 181u8, 0u8, 109u8, 28u8, 27u8,
                            48u8, 15u8, 47u8, 203u8, 54u8, 106u8, 114u8, 28u8, 118u8, 101u8, 201u8,
                            95u8, 187u8, 46u8, 182u8, 4u8, 30u8, 227u8, 105u8, 14u8, 81u8,
                        ],
                    )
                }
                #[doc = "Poke the deposit reserved for an existing multisig operation."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_ and must be the original depositor of"]
                #[doc = "the multisig operation."]
                #[doc = ""]
                #[doc = "The transaction fee is waived if the deposit amount has changed."]
                #[doc = ""]
                #[doc = "- `threshold`: The total number of approvals needed for this multisig."]
                #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                #[doc = "  multisig."]
                #[doc = "- `call_hash`: The hash of the call this deposit is reserved for."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if successful."]
                pub fn poke_deposit(
                    &self,
                    threshold: types::poke_deposit::Threshold,
                    other_signatories: types::poke_deposit::OtherSignatories,
                    call_hash: types::poke_deposit::CallHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Multisig",
                        "poke_deposit",
                        types::PokeDeposit {
                            threshold,
                            other_signatories,
                            call_hash,
                        },
                        [
                            246u8, 199u8, 149u8, 204u8, 29u8, 162u8, 169u8, 44u8, 250u8, 24u8,
                            64u8, 191u8, 18u8, 238u8, 140u8, 153u8, 139u8, 208u8, 157u8, 245u8,
                            145u8, 205u8, 56u8, 130u8, 119u8, 246u8, 174u8, 111u8, 83u8, 221u8,
                            85u8, 84u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_multisig::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new multisig operation has begun."]
            pub struct NewMultisig {
                pub approving: new_multisig::Approving,
                pub multisig: new_multisig::Multisig,
                pub call_hash: new_multisig::CallHash,
            }
            pub mod new_multisig {
                use super::runtime_types;
                pub type Approving = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Multisig = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewMultisig {
                const PALLET: &'static str = "Multisig";
                const EVENT: &'static str = "NewMultisig";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A multisig operation has been approved by someone."]
            pub struct MultisigApproval {
                pub approving: multisig_approval::Approving,
                pub timepoint: multisig_approval::Timepoint,
                pub multisig: multisig_approval::Multisig,
                pub call_hash: multisig_approval::CallHash,
            }
            pub mod multisig_approval {
                use super::runtime_types;
                pub type Approving = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Timepoint =
                    runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>;
                pub type Multisig = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MultisigApproval {
                const PALLET: &'static str = "Multisig";
                const EVENT: &'static str = "MultisigApproval";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A multisig operation has been executed."]
            pub struct MultisigExecuted {
                pub approving: multisig_executed::Approving,
                pub timepoint: multisig_executed::Timepoint,
                pub multisig: multisig_executed::Multisig,
                pub call_hash: multisig_executed::CallHash,
                pub result: multisig_executed::Result,
            }
            pub mod multisig_executed {
                use super::runtime_types;
                pub type Approving = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Timepoint =
                    runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>;
                pub type Multisig = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = [::core::primitive::u8; 32usize];
                pub type Result =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MultisigExecuted {
                const PALLET: &'static str = "Multisig";
                const EVENT: &'static str = "MultisigExecuted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A multisig operation has been cancelled."]
            pub struct MultisigCancelled {
                pub cancelling: multisig_cancelled::Cancelling,
                pub timepoint: multisig_cancelled::Timepoint,
                pub multisig: multisig_cancelled::Multisig,
                pub call_hash: multisig_cancelled::CallHash,
            }
            pub mod multisig_cancelled {
                use super::runtime_types;
                pub type Cancelling = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Timepoint =
                    runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>;
                pub type Multisig = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MultisigCancelled {
                const PALLET: &'static str = "Multisig";
                const EVENT: &'static str = "MultisigCancelled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The deposit for a multisig operation has been updated/poked."]
            pub struct DepositPoked {
                pub who: deposit_poked::Who,
                pub call_hash: deposit_poked::CallHash,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type CallHash = [::core::primitive::u8; 32usize];
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Multisig";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod multisigs {
                    use super::runtime_types;
                    pub type Multisigs = runtime_types::pallet_multisig::Multisig<
                        ::core::primitive::u32,
                        ::core::primitive::u128,
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param1 = [::core::primitive::u8; 32usize];
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The set of open multisig operations."]
                pub fn multisigs_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::multisigs::Multisigs,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Multisig",
                        "Multisigs",
                        (),
                        [
                            154u8, 109u8, 45u8, 18u8, 155u8, 151u8, 81u8, 28u8, 86u8, 127u8, 189u8,
                            151u8, 49u8, 61u8, 12u8, 149u8, 84u8, 61u8, 110u8, 197u8, 200u8, 140u8,
                            37u8, 100u8, 14u8, 162u8, 158u8, 161u8, 48u8, 117u8, 102u8, 61u8,
                        ],
                    )
                }
                #[doc = " The set of open multisig operations."]
                pub fn multisigs_iter1(
                    &self,
                    _0: types::multisigs::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::multisigs::Param0,
                    >,
                    types::multisigs::Multisigs,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Multisig",
                        "Multisigs",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            154u8, 109u8, 45u8, 18u8, 155u8, 151u8, 81u8, 28u8, 86u8, 127u8, 189u8,
                            151u8, 49u8, 61u8, 12u8, 149u8, 84u8, 61u8, 110u8, 197u8, 200u8, 140u8,
                            37u8, 100u8, 14u8, 162u8, 158u8, 161u8, 48u8, 117u8, 102u8, 61u8,
                        ],
                    )
                }
                #[doc = " The set of open multisig operations."]
                pub fn multisigs(
                    &self,
                    _0: types::multisigs::Param0,
                    _1: types::multisigs::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::multisigs::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::multisigs::Param1,
                        >,
                    ),
                    types::multisigs::Multisigs,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Multisig",
                        "Multisigs",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            154u8, 109u8, 45u8, 18u8, 155u8, 151u8, 81u8, 28u8, 86u8, 127u8, 189u8,
                            151u8, 49u8, 61u8, 12u8, 149u8, 84u8, 61u8, 110u8, 197u8, 200u8, 140u8,
                            37u8, 100u8, 14u8, 162u8, 158u8, 161u8, 48u8, 117u8, 102u8, 61u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The base amount of currency needed to reserve for creating a multisig execution or to"]
                #[doc = " store a dispatch call for later."]
                #[doc = ""]
                #[doc = " This is held for an additional storage item whose value size is"]
                #[doc = " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is"]
                #[doc = " `32 + sizeof(AccountId)` bytes."]
                pub fn deposit_base(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Multisig",
                        "DepositBase",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount of currency needed per unit threshold when creating a multisig execution."]
                #[doc = ""]
                #[doc = " This is held for adding 32 bytes more into a pre-existing storage value."]
                pub fn deposit_factor(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Multisig",
                        "DepositFactor",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of signatories allowed in the multisig."]
                pub fn max_signatories(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Multisig",
                        "MaxSignatories",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod preimage {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_preimage::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_preimage::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Register a preimage on-chain."]
                #[doc = ""]
                #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"]
                #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."]
                pub struct NotePreimage {
                    pub bytes: note_preimage::Bytes,
                }
                pub mod note_preimage {
                    use super::runtime_types;
                    pub type Bytes =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for NotePreimage {
                    const PALLET: &'static str = "Preimage";
                    const CALL: &'static str = "note_preimage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Clear an unrequested preimage from the runtime storage."]
                #[doc = ""]
                #[doc = "If `len` is provided, then it will be a much cheaper operation."]
                #[doc = ""]
                #[doc = "- `hash`: The hash of the preimage to be removed from the store."]
                #[doc = "- `len`: The length of the preimage of `hash`."]
                pub struct UnnotePreimage {
                    pub hash: unnote_preimage::Hash,
                }
                pub mod unnote_preimage {
                    use super::runtime_types;
                    pub type Hash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnnotePreimage {
                    const PALLET: &'static str = "Preimage";
                    const CALL: &'static str = "unnote_preimage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."]
                #[doc = ""]
                #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"]
                #[doc = "a user may have paid, and take the control of the preimage out of their hands."]
                pub struct RequestPreimage {
                    pub hash: request_preimage::Hash,
                }
                pub mod request_preimage {
                    use super::runtime_types;
                    pub type Hash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestPreimage {
                    const PALLET: &'static str = "Preimage";
                    const CALL: &'static str = "request_preimage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Clear a previously made request for a preimage."]
                #[doc = ""]
                #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."]
                pub struct UnrequestPreimage {
                    pub hash: unrequest_preimage::Hash,
                }
                pub mod unrequest_preimage {
                    use super::runtime_types;
                    pub type Hash = ::subxt::ext::subxt_core::utils::H256;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnrequestPreimage {
                    const PALLET: &'static str = "Preimage";
                    const CALL: &'static str = "unrequest_preimage";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Ensure that the bulk of pre-images is upgraded."]
                #[doc = ""]
                #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."]
                pub struct EnsureUpdated {
                    pub hashes: ensure_updated::Hashes,
                }
                pub mod ensure_updated {
                    use super::runtime_types;
                    pub type Hashes = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::H256,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for EnsureUpdated {
                    const PALLET: &'static str = "Preimage";
                    const CALL: &'static str = "ensure_updated";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Register a preimage on-chain."]
                #[doc = ""]
                #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"]
                #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."]
                pub fn note_preimage(
                    &self,
                    bytes: types::note_preimage::Bytes,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::NotePreimage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Preimage",
                        "note_preimage",
                        types::NotePreimage { bytes },
                        [
                            121u8, 88u8, 18u8, 92u8, 176u8, 15u8, 192u8, 198u8, 146u8, 198u8, 38u8,
                            242u8, 213u8, 83u8, 7u8, 230u8, 14u8, 110u8, 235u8, 32u8, 215u8, 26u8,
                            192u8, 217u8, 113u8, 224u8, 206u8, 96u8, 177u8, 198u8, 246u8, 33u8,
                        ],
                    )
                }
                #[doc = "Clear an unrequested preimage from the runtime storage."]
                #[doc = ""]
                #[doc = "If `len` is provided, then it will be a much cheaper operation."]
                #[doc = ""]
                #[doc = "- `hash`: The hash of the preimage to be removed from the store."]
                #[doc = "- `len`: The length of the preimage of `hash`."]
                pub fn unnote_preimage(
                    &self,
                    hash: types::unnote_preimage::Hash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UnnotePreimage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Preimage",
                        "unnote_preimage",
                        types::UnnotePreimage { hash },
                        [
                            188u8, 116u8, 222u8, 22u8, 127u8, 215u8, 2u8, 133u8, 96u8, 202u8,
                            190u8, 123u8, 203u8, 43u8, 200u8, 161u8, 226u8, 24u8, 49u8, 36u8,
                            221u8, 160u8, 130u8, 119u8, 30u8, 138u8, 144u8, 85u8, 5u8, 164u8,
                            252u8, 222u8,
                        ],
                    )
                }
                #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."]
                #[doc = ""]
                #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"]
                #[doc = "a user may have paid, and take the control of the preimage out of their hands."]
                pub fn request_preimage(
                    &self,
                    hash: types::request_preimage::Hash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RequestPreimage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Preimage",
                        "request_preimage",
                        types::RequestPreimage { hash },
                        [
                            87u8, 0u8, 204u8, 111u8, 43u8, 115u8, 64u8, 209u8, 133u8, 13u8, 83u8,
                            45u8, 164u8, 166u8, 233u8, 105u8, 242u8, 238u8, 235u8, 208u8, 113u8,
                            134u8, 93u8, 242u8, 86u8, 32u8, 7u8, 152u8, 107u8, 208u8, 79u8, 59u8,
                        ],
                    )
                }
                #[doc = "Clear a previously made request for a preimage."]
                #[doc = ""]
                #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."]
                pub fn unrequest_preimage(
                    &self,
                    hash: types::unrequest_preimage::Hash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UnrequestPreimage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Preimage",
                        "unrequest_preimage",
                        types::UnrequestPreimage { hash },
                        [
                            55u8, 37u8, 224u8, 149u8, 142u8, 120u8, 8u8, 68u8, 183u8, 225u8, 255u8,
                            240u8, 254u8, 111u8, 58u8, 200u8, 113u8, 217u8, 177u8, 203u8, 107u8,
                            104u8, 233u8, 87u8, 252u8, 53u8, 33u8, 112u8, 116u8, 254u8, 117u8,
                            134u8,
                        ],
                    )
                }
                #[doc = "Ensure that the bulk of pre-images is upgraded."]
                #[doc = ""]
                #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."]
                pub fn ensure_updated(
                    &self,
                    hashes: types::ensure_updated::Hashes,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::EnsureUpdated>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Preimage",
                        "ensure_updated",
                        types::EnsureUpdated { hashes },
                        [
                            254u8, 228u8, 88u8, 44u8, 126u8, 235u8, 188u8, 153u8, 61u8, 27u8,
                            103u8, 253u8, 163u8, 161u8, 113u8, 243u8, 87u8, 136u8, 2u8, 231u8,
                            209u8, 188u8, 215u8, 106u8, 192u8, 225u8, 75u8, 125u8, 224u8, 96u8,
                            221u8, 90u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_preimage::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A preimage has been noted."]
            pub struct Noted {
                pub hash: noted::Hash,
            }
            pub mod noted {
                use super::runtime_types;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Noted {
                const PALLET: &'static str = "Preimage";
                const EVENT: &'static str = "Noted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A preimage has been requested."]
            pub struct Requested {
                pub hash: requested::Hash,
            }
            pub mod requested {
                use super::runtime_types;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Requested {
                const PALLET: &'static str = "Preimage";
                const EVENT: &'static str = "Requested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A preimage has ben cleared."]
            pub struct Cleared {
                pub hash: cleared::Hash,
            }
            pub mod cleared {
                use super::runtime_types;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Cleared {
                const PALLET: &'static str = "Preimage";
                const EVENT: &'static str = "Cleared";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod status_for {
                    use super::runtime_types;
                    pub type StatusFor = runtime_types::pallet_preimage::OldRequestStatus<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod request_status_for {
                    use super::runtime_types;
                    pub type RequestStatusFor = runtime_types::pallet_preimage::RequestStatus<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::frame_support::traits::tokens::fungible::HoldConsideration,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod preimage_for {
                    use super::runtime_types;
                    pub type PreimageFor =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = (
                        ::subxt::ext::subxt_core::utils::H256,
                        ::core::primitive::u32,
                    );
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The request status of a given hash."]
                pub fn status_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::status_for::StatusFor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "StatusFor",
                        (),
                        [
                            187u8, 100u8, 54u8, 112u8, 96u8, 129u8, 36u8, 149u8, 127u8, 226u8,
                            126u8, 171u8, 72u8, 189u8, 59u8, 126u8, 204u8, 125u8, 67u8, 204u8,
                            231u8, 6u8, 212u8, 135u8, 166u8, 252u8, 5u8, 46u8, 111u8, 120u8, 54u8,
                            209u8,
                        ],
                    )
                }
                #[doc = " The request status of a given hash."]
                pub fn status_for(
                    &self,
                    _0: types::status_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::status_for::Param0,
                    >,
                    types::status_for::StatusFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "StatusFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            187u8, 100u8, 54u8, 112u8, 96u8, 129u8, 36u8, 149u8, 127u8, 226u8,
                            126u8, 171u8, 72u8, 189u8, 59u8, 126u8, 204u8, 125u8, 67u8, 204u8,
                            231u8, 6u8, 212u8, 135u8, 166u8, 252u8, 5u8, 46u8, 111u8, 120u8, 54u8,
                            209u8,
                        ],
                    )
                }
                #[doc = " The request status of a given hash."]
                pub fn request_status_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::request_status_for::RequestStatusFor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "RequestStatusFor",
                        (),
                        [
                            72u8, 59u8, 254u8, 211u8, 96u8, 223u8, 10u8, 64u8, 6u8, 139u8, 213u8,
                            85u8, 14u8, 29u8, 166u8, 37u8, 140u8, 124u8, 186u8, 156u8, 172u8,
                            157u8, 73u8, 5u8, 121u8, 117u8, 51u8, 6u8, 249u8, 203u8, 75u8, 190u8,
                        ],
                    )
                }
                #[doc = " The request status of a given hash."]
                pub fn request_status_for(
                    &self,
                    _0: types::request_status_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::request_status_for::Param0,
                    >,
                    types::request_status_for::RequestStatusFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "RequestStatusFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            72u8, 59u8, 254u8, 211u8, 96u8, 223u8, 10u8, 64u8, 6u8, 139u8, 213u8,
                            85u8, 14u8, 29u8, 166u8, 37u8, 140u8, 124u8, 186u8, 156u8, 172u8,
                            157u8, 73u8, 5u8, 121u8, 117u8, 51u8, 6u8, 249u8, 203u8, 75u8, 190u8,
                        ],
                    )
                }
                pub fn preimage_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::preimage_for::PreimageFor,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "PreimageFor",
                        (),
                        [
                            106u8, 5u8, 17u8, 46u8, 6u8, 184u8, 177u8, 113u8, 169u8, 34u8, 119u8,
                            141u8, 117u8, 40u8, 30u8, 94u8, 187u8, 35u8, 206u8, 216u8, 143u8,
                            208u8, 49u8, 156u8, 200u8, 255u8, 109u8, 200u8, 210u8, 134u8, 24u8,
                            139u8,
                        ],
                    )
                }
                pub fn preimage_for(
                    &self,
                    _0: types::preimage_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::preimage_for::Param0,
                    >,
                    types::preimage_for::PreimageFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Preimage",
                        "PreimageFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            106u8, 5u8, 17u8, 46u8, 6u8, 184u8, 177u8, 113u8, 169u8, 34u8, 119u8,
                            141u8, 117u8, 40u8, 30u8, 94u8, 187u8, 35u8, 206u8, 216u8, 143u8,
                            208u8, 49u8, 156u8, 200u8, 255u8, 109u8, 200u8, 210u8, 134u8, 24u8,
                            139u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod asset_rate {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_asset_rate::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_asset_rate::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Initialize a conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub struct Create {
                    pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<create::AssetKind>,
                    pub rate: create::Rate,
                }
                pub mod create {
                    use super::runtime_types;
                    pub type AssetKind =
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                    pub type Rate = runtime_types::sp_arithmetic::fixed_point::FixedU128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Create {
                    const PALLET: &'static str = "AssetRate";
                    const CALL: &'static str = "create";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Update the conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub struct Update {
                    pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<update::AssetKind>,
                    pub rate: update::Rate,
                }
                pub mod update {
                    use super::runtime_types;
                    pub type AssetKind =
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                    pub type Rate = runtime_types::sp_arithmetic::fixed_point::FixedU128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Update {
                    const PALLET: &'static str = "AssetRate";
                    const CALL: &'static str = "update";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove an existing conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub struct Remove {
                    pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<remove::AssetKind>,
                }
                pub mod remove {
                    use super::runtime_types;
                    pub type AssetKind =
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Remove {
                    const PALLET: &'static str = "AssetRate";
                    const CALL: &'static str = "remove";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Initialize a conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub fn create(
                    &self,
                    asset_kind: types::create::AssetKind,
                    rate: types::create::Rate,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Create>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssetRate",
                        "create",
                        types::Create {
                            asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                asset_kind,
                            ),
                            rate,
                        },
                        [
                            244u8, 178u8, 124u8, 61u8, 129u8, 157u8, 214u8, 70u8, 142u8, 241u8,
                            192u8, 255u8, 216u8, 27u8, 94u8, 163u8, 109u8, 23u8, 253u8, 8u8, 246u8,
                            198u8, 177u8, 201u8, 188u8, 87u8, 54u8, 108u8, 191u8, 127u8, 41u8,
                            24u8,
                        ],
                    )
                }
                #[doc = "Update the conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub fn update(
                    &self,
                    asset_kind: types::update::AssetKind,
                    rate: types::update::Rate,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Update>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssetRate",
                        "update",
                        types::Update {
                            asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                asset_kind,
                            ),
                            rate,
                        },
                        [
                            79u8, 68u8, 19u8, 151u8, 93u8, 46u8, 250u8, 172u8, 210u8, 237u8, 148u8,
                            66u8, 87u8, 22u8, 54u8, 216u8, 209u8, 215u8, 196u8, 40u8, 229u8, 238u8,
                            161u8, 44u8, 24u8, 249u8, 196u8, 116u8, 83u8, 51u8, 152u8, 157u8,
                        ],
                    )
                }
                #[doc = "Remove an existing conversion rate to native balance for the given asset."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)"]
                pub fn remove(
                    &self,
                    asset_kind: types::remove::AssetKind,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Remove>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssetRate",
                        "remove",
                        types::Remove {
                            asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                asset_kind,
                            ),
                        },
                        [
                            18u8, 24u8, 14u8, 156u8, 145u8, 109u8, 6u8, 129u8, 94u8, 178u8, 146u8,
                            142u8, 192u8, 189u8, 96u8, 154u8, 248u8, 99u8, 202u8, 186u8, 219u8,
                            130u8, 44u8, 4u8, 224u8, 56u8, 135u8, 148u8, 109u8, 7u8, 240u8, 241u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_asset_rate::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AssetRateCreated {
                pub asset_kind: asset_rate_created::AssetKind,
                pub rate: asset_rate_created::Rate,
            }
            pub mod asset_rate_created {
                use super::runtime_types;
                pub type AssetKind =
                    runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                pub type Rate = runtime_types::sp_arithmetic::fixed_point::FixedU128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetRateCreated {
                const PALLET: &'static str = "AssetRate";
                const EVENT: &'static str = "AssetRateCreated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AssetRateRemoved {
                pub asset_kind: asset_rate_removed::AssetKind,
            }
            pub mod asset_rate_removed {
                use super::runtime_types;
                pub type AssetKind =
                    runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetRateRemoved {
                const PALLET: &'static str = "AssetRate";
                const EVENT: &'static str = "AssetRateRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AssetRateUpdated {
                pub asset_kind: asset_rate_updated::AssetKind,
                pub old: asset_rate_updated::Old,
                pub new: asset_rate_updated::New,
            }
            pub mod asset_rate_updated {
                use super::runtime_types;
                pub type AssetKind =
                    runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                pub type Old = runtime_types::sp_arithmetic::fixed_point::FixedU128;
                pub type New = runtime_types::sp_arithmetic::fixed_point::FixedU128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetRateUpdated {
                const PALLET: &'static str = "AssetRate";
                const EVENT: &'static str = "AssetRateUpdated";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod conversion_rate_to_native {
                    use super::runtime_types;
                    pub type ConversionRateToNative =
                        runtime_types::sp_arithmetic::fixed_point::FixedU128;
                    pub type Param0 =
                        runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Maps an asset to its fixed point representation in the native balance."]
                #[doc = ""]
                #[doc = " E.g. `native_amount = asset_amount * ConversionRateToNative::<T>::get(asset_kind)`"]
                pub fn conversion_rate_to_native_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::conversion_rate_to_native::ConversionRateToNative,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssetRate",
                        "ConversionRateToNative",
                        (),
                        [
                            102u8, 116u8, 47u8, 128u8, 65u8, 18u8, 208u8, 127u8, 21u8, 115u8, 49u8,
                            131u8, 2u8, 198u8, 162u8, 114u8, 158u8, 246u8, 235u8, 161u8, 117u8,
                            39u8, 199u8, 156u8, 7u8, 165u8, 9u8, 89u8, 202u8, 59u8, 170u8, 221u8,
                        ],
                    )
                }
                #[doc = " Maps an asset to its fixed point representation in the native balance."]
                #[doc = ""]
                #[doc = " E.g. `native_amount = asset_amount * ConversionRateToNative::<T>::get(asset_kind)`"]
                pub fn conversion_rate_to_native(
                    &self,
                    _0: types::conversion_rate_to_native::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::conversion_rate_to_native::Param0,
                    >,
                    types::conversion_rate_to_native::ConversionRateToNative,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssetRate",
                        "ConversionRateToNative",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            102u8, 116u8, 47u8, 128u8, 65u8, 18u8, 208u8, 127u8, 21u8, 115u8, 49u8,
                            131u8, 2u8, 198u8, 162u8, 114u8, 158u8, 246u8, 235u8, 161u8, 117u8,
                            39u8, 199u8, 156u8, 7u8, 165u8, 9u8, 89u8, 202u8, 59u8, 170u8, 221u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod bounties {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_bounties::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_bounties::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose a new bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"]
                #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"]
                #[doc = "or slashed when rejected."]
                #[doc = ""]
                #[doc = "- `curator`: The curator account whom will manage this bounty."]
                #[doc = "- `fee`: The curator fee."]
                #[doc = "- `value`: The total payment amount of this bounty, curator fee included."]
                #[doc = "- `description`: The description of this bounty."]
                pub struct ProposeBounty {
                    #[codec(compact)]
                    pub value: propose_bounty::Value,
                    pub description: propose_bounty::Description,
                }
                pub mod propose_bounty {
                    use super::runtime_types;
                    pub type Value = ::core::primitive::u128;
                    pub type Description =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProposeBounty {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "propose_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"]
                #[doc = "and the original deposit will be returned."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct ApproveBounty {
                    #[codec(compact)]
                    pub bounty_id: approve_bounty::BountyId,
                }
                pub mod approve_bounty {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApproveBounty {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "approve_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose a curator to a funded bounty."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct ProposeCurator {
                    #[codec(compact)]
                    pub bounty_id: propose_curator::BountyId,
                    pub curator: propose_curator::Curator,
                    #[codec(compact)]
                    pub fee: propose_curator::Fee,
                }
                pub mod propose_curator {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                    pub type Curator = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Fee = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProposeCurator {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "propose_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unassign curator from a bounty."]
                #[doc = ""]
                #[doc = "This function can only be called by the `RejectOrigin` a signed origin."]
                #[doc = ""]
                #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"]
                #[doc = "malicious or inactive. As a result, we will slash the curator when possible."]
                #[doc = ""]
                #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"]
                #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"]
                #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"]
                #[doc = ""]
                #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"]
                #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"]
                #[doc = "we should pick a new curator. In this case the curator should also be slashed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct UnassignCurator {
                    #[codec(compact)]
                    pub bounty_id: unassign_curator::BountyId,
                }
                pub mod unassign_curator {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnassignCurator {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "unassign_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Accept the curator role for a bounty."]
                #[doc = "A deposit will be reserved from curator and refund upon successful payout."]
                #[doc = ""]
                #[doc = "May only be called from the curator."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct AcceptCurator {
                    #[codec(compact)]
                    pub bounty_id: accept_curator::BountyId,
                }
                pub mod accept_curator {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptCurator {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "accept_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"]
                #[doc = "after a delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to award."]
                #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct AwardBounty {
                    #[codec(compact)]
                    pub bounty_id: award_bounty::BountyId,
                    pub beneficiary: award_bounty::Beneficiary,
                }
                pub mod award_bounty {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                    pub type Beneficiary = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AwardBounty {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "award_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Claim the payout from an awarded bounty after payout delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to claim."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct ClaimBounty {
                    #[codec(compact)]
                    pub bounty_id: claim_bounty::BountyId,
                }
                pub mod claim_bounty {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimBounty {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "claim_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"]
                #[doc = "the curator deposit will be unreserved if possible."]
                #[doc = ""]
                #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to cancel."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct CloseBounty {
                    #[codec(compact)]
                    pub bounty_id: close_bounty::BountyId,
                }
                pub mod close_bounty {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CloseBounty {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "close_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Extend the expiry time of an active bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to extend."]
                #[doc = "- `remark`: additional information."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct ExtendBountyExpiry {
                    #[codec(compact)]
                    pub bounty_id: extend_bounty_expiry::BountyId,
                    pub remark: extend_bounty_expiry::Remark,
                }
                pub mod extend_bounty_expiry {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                    pub type Remark =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ExtendBountyExpiry {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "extend_bounty_expiry";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Approve bountry and propose a curator simultaneously."]
                #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to approve."]
                #[doc = "- `curator`: The curator account whom will manage this bounty."]
                #[doc = "- `fee`: The curator fee."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub struct ApproveBountyWithCurator {
                    #[codec(compact)]
                    pub bounty_id: approve_bounty_with_curator::BountyId,
                    pub curator: approve_bounty_with_curator::Curator,
                    #[codec(compact)]
                    pub fee: approve_bounty_with_curator::Fee,
                }
                pub mod approve_bounty_with_curator {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                    pub type Curator = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Fee = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApproveBountyWithCurator {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "approve_bounty_with_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke the deposit reserved for creating a bounty proposal."]
                #[doc = ""]
                #[doc = "This can be used by accounts to update their reserved amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `bounty_id`: The bounty id for which to adjust the deposit."]
                #[doc = ""]
                #[doc = "If the deposit is updated, the difference will be reserved/unreserved from the"]
                #[doc = "proposer's account."]
                #[doc = ""]
                #[doc = "The transaction is made free if the deposit is updated and paid otherwise."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if the deposit is updated."]
                pub struct PokeDeposit {
                    #[codec(compact)]
                    pub bounty_id: poke_deposit::BountyId,
                }
                pub mod poke_deposit {
                    use super::runtime_types;
                    pub type BountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "Bounties";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Propose a new bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"]
                #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"]
                #[doc = "or slashed when rejected."]
                #[doc = ""]
                #[doc = "- `curator`: The curator account whom will manage this bounty."]
                #[doc = "- `fee`: The curator fee."]
                #[doc = "- `value`: The total payment amount of this bounty, curator fee included."]
                #[doc = "- `description`: The description of this bounty."]
                pub fn propose_bounty(
                    &self,
                    value: types::propose_bounty::Value,
                    description: types::propose_bounty::Description,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ProposeBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "propose_bounty",
                        types::ProposeBounty { value, description },
                        [
                            131u8, 169u8, 55u8, 102u8, 212u8, 139u8, 9u8, 65u8, 75u8, 112u8, 6u8,
                            180u8, 92u8, 124u8, 43u8, 42u8, 38u8, 40u8, 226u8, 24u8, 28u8, 34u8,
                            169u8, 220u8, 184u8, 206u8, 109u8, 227u8, 53u8, 228u8, 88u8, 25u8,
                        ],
                    )
                }
                #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"]
                #[doc = "and the original deposit will be returned."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn approve_bounty(
                    &self,
                    bounty_id: types::approve_bounty::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ApproveBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "approve_bounty",
                        types::ApproveBounty { bounty_id },
                        [
                            85u8, 12u8, 177u8, 91u8, 183u8, 124u8, 175u8, 148u8, 188u8, 200u8,
                            237u8, 144u8, 6u8, 67u8, 159u8, 48u8, 177u8, 222u8, 183u8, 137u8,
                            173u8, 131u8, 128u8, 219u8, 255u8, 243u8, 80u8, 224u8, 126u8, 136u8,
                            90u8, 47u8,
                        ],
                    )
                }
                #[doc = "Propose a curator to a funded bounty."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn propose_curator(
                    &self,
                    bounty_id: types::propose_curator::BountyId,
                    curator: types::propose_curator::Curator,
                    fee: types::propose_curator::Fee,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ProposeCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "propose_curator",
                        types::ProposeCurator {
                            bounty_id,
                            curator,
                            fee,
                        },
                        [
                            238u8, 102u8, 86u8, 97u8, 169u8, 16u8, 133u8, 41u8, 24u8, 247u8, 149u8,
                            200u8, 95u8, 213u8, 45u8, 62u8, 41u8, 247u8, 170u8, 62u8, 211u8, 194u8,
                            5u8, 108u8, 129u8, 145u8, 108u8, 67u8, 84u8, 97u8, 237u8, 54u8,
                        ],
                    )
                }
                #[doc = "Unassign curator from a bounty."]
                #[doc = ""]
                #[doc = "This function can only be called by the `RejectOrigin` a signed origin."]
                #[doc = ""]
                #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"]
                #[doc = "malicious or inactive. As a result, we will slash the curator when possible."]
                #[doc = ""]
                #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"]
                #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"]
                #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"]
                #[doc = ""]
                #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"]
                #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"]
                #[doc = "we should pick a new curator. In this case the curator should also be slashed."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn unassign_curator(
                    &self,
                    bounty_id: types::unassign_curator::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UnassignCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "unassign_curator",
                        types::UnassignCurator { bounty_id },
                        [
                            98u8, 94u8, 107u8, 111u8, 151u8, 182u8, 71u8, 239u8, 214u8, 88u8,
                            108u8, 11u8, 51u8, 163u8, 102u8, 162u8, 245u8, 247u8, 244u8, 159u8,
                            197u8, 23u8, 171u8, 6u8, 60u8, 146u8, 144u8, 101u8, 68u8, 133u8, 245u8,
                            74u8,
                        ],
                    )
                }
                #[doc = "Accept the curator role for a bounty."]
                #[doc = "A deposit will be reserved from curator and refund upon successful payout."]
                #[doc = ""]
                #[doc = "May only be called from the curator."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn accept_curator(
                    &self,
                    bounty_id: types::accept_curator::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AcceptCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "accept_curator",
                        types::AcceptCurator { bounty_id },
                        [
                            178u8, 142u8, 138u8, 15u8, 243u8, 10u8, 222u8, 169u8, 150u8, 200u8,
                            85u8, 185u8, 39u8, 167u8, 134u8, 3u8, 186u8, 84u8, 43u8, 140u8, 11u8,
                            70u8, 56u8, 197u8, 39u8, 84u8, 138u8, 139u8, 198u8, 104u8, 41u8, 238u8,
                        ],
                    )
                }
                #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"]
                #[doc = "after a delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to award."]
                #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn award_bounty(
                    &self,
                    bounty_id: types::award_bounty::BountyId,
                    beneficiary: types::award_bounty::Beneficiary,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AwardBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "award_bounty",
                        types::AwardBounty {
                            bounty_id,
                            beneficiary,
                        },
                        [
                            231u8, 248u8, 65u8, 2u8, 199u8, 19u8, 126u8, 23u8, 206u8, 206u8, 230u8,
                            77u8, 53u8, 152u8, 230u8, 234u8, 211u8, 153u8, 82u8, 149u8, 93u8, 91u8,
                            19u8, 72u8, 214u8, 92u8, 65u8, 207u8, 142u8, 168u8, 133u8, 87u8,
                        ],
                    )
                }
                #[doc = "Claim the payout from an awarded bounty after payout delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to claim."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn claim_bounty(
                    &self,
                    bounty_id: types::claim_bounty::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "claim_bounty",
                        types::ClaimBounty { bounty_id },
                        [
                            211u8, 143u8, 123u8, 205u8, 140u8, 43u8, 176u8, 103u8, 110u8, 125u8,
                            158u8, 131u8, 103u8, 62u8, 69u8, 215u8, 220u8, 110u8, 11u8, 3u8, 30u8,
                            193u8, 235u8, 177u8, 96u8, 241u8, 140u8, 53u8, 62u8, 133u8, 170u8,
                            25u8,
                        ],
                    )
                }
                #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"]
                #[doc = "the curator deposit will be unreserved if possible."]
                #[doc = ""]
                #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to cancel."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn close_bounty(
                    &self,
                    bounty_id: types::close_bounty::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CloseBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "close_bounty",
                        types::CloseBounty { bounty_id },
                        [
                            144u8, 234u8, 109u8, 39u8, 227u8, 231u8, 104u8, 48u8, 45u8, 196u8,
                            217u8, 220u8, 241u8, 197u8, 157u8, 227u8, 154u8, 156u8, 181u8, 69u8,
                            146u8, 77u8, 203u8, 167u8, 79u8, 102u8, 15u8, 253u8, 135u8, 53u8, 96u8,
                            60u8,
                        ],
                    )
                }
                #[doc = "Extend the expiry time of an active bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to extend."]
                #[doc = "- `remark`: additional information."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn extend_bounty_expiry(
                    &self,
                    bounty_id: types::extend_bounty_expiry::BountyId,
                    remark: types::extend_bounty_expiry::Remark,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ExtendBountyExpiry>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "extend_bounty_expiry",
                        types::ExtendBountyExpiry { bounty_id, remark },
                        [
                            102u8, 118u8, 89u8, 189u8, 138u8, 157u8, 216u8, 10u8, 239u8, 3u8,
                            200u8, 217u8, 219u8, 19u8, 195u8, 182u8, 105u8, 220u8, 11u8, 146u8,
                            222u8, 79u8, 95u8, 136u8, 188u8, 230u8, 248u8, 119u8, 30u8, 6u8, 242u8,
                            194u8,
                        ],
                    )
                }
                #[doc = "Approve bountry and propose a curator simultaneously."]
                #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."]
                #[doc = ""]
                #[doc = "May only be called from `T::SpendOrigin`."]
                #[doc = ""]
                #[doc = "- `bounty_id`: Bounty ID to approve."]
                #[doc = "- `curator`: The curator account whom will manage this bounty."]
                #[doc = "- `fee`: The curator fee."]
                #[doc = ""]
                #[doc = "## Complexity"]
                #[doc = "- O(1)."]
                pub fn approve_bounty_with_curator(
                    &self,
                    bounty_id: types::approve_bounty_with_curator::BountyId,
                    curator: types::approve_bounty_with_curator::Curator,
                    fee: types::approve_bounty_with_curator::Fee,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ApproveBountyWithCurator,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "approve_bounty_with_curator",
                        types::ApproveBountyWithCurator {
                            bounty_id,
                            curator,
                            fee,
                        },
                        [
                            179u8, 96u8, 44u8, 148u8, 94u8, 210u8, 45u8, 243u8, 157u8, 192u8,
                            104u8, 213u8, 54u8, 81u8, 57u8, 172u8, 85u8, 128u8, 124u8, 66u8, 220u8,
                            241u8, 156u8, 49u8, 134u8, 125u8, 32u8, 121u8, 12u8, 54u8, 129u8,
                            155u8,
                        ],
                    )
                }
                #[doc = "Poke the deposit reserved for creating a bounty proposal."]
                #[doc = ""]
                #[doc = "This can be used by accounts to update their reserved amount."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `bounty_id`: The bounty id for which to adjust the deposit."]
                #[doc = ""]
                #[doc = "If the deposit is updated, the difference will be reserved/unreserved from the"]
                #[doc = "proposer's account."]
                #[doc = ""]
                #[doc = "The transaction is made free if the deposit is updated and paid otherwise."]
                #[doc = ""]
                #[doc = "Emits `DepositPoked` if the deposit is updated."]
                pub fn poke_deposit(
                    &self,
                    bounty_id: types::poke_deposit::BountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Bounties",
                        "poke_deposit",
                        types::PokeDeposit { bounty_id },
                        [
                            45u8, 230u8, 25u8, 162u8, 115u8, 101u8, 83u8, 123u8, 247u8, 131u8,
                            207u8, 156u8, 156u8, 190u8, 181u8, 219u8, 133u8, 238u8, 112u8, 238u8,
                            120u8, 40u8, 106u8, 52u8, 205u8, 76u8, 5u8, 143u8, 175u8, 241u8, 34u8,
                            85u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_bounties::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "New bounty proposal."]
            pub struct BountyProposed {
                pub index: bounty_proposed::Index,
            }
            pub mod bounty_proposed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyProposed {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyProposed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty proposal was rejected; funds were slashed."]
            pub struct BountyRejected {
                pub index: bounty_rejected::Index,
                pub bond: bounty_rejected::Bond,
            }
            pub mod bounty_rejected {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Bond = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyRejected {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyRejected";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty proposal is funded and became active."]
            pub struct BountyBecameActive {
                pub index: bounty_became_active::Index,
            }
            pub mod bounty_became_active {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyBecameActive {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyBecameActive";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty is awarded to a beneficiary."]
            pub struct BountyAwarded {
                pub index: bounty_awarded::Index,
                pub beneficiary: bounty_awarded::Beneficiary,
            }
            pub mod bounty_awarded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Beneficiary = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyAwarded {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyAwarded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty is claimed by beneficiary."]
            pub struct BountyClaimed {
                pub index: bounty_claimed::Index,
                pub payout: bounty_claimed::Payout,
                pub beneficiary: bounty_claimed::Beneficiary,
            }
            pub mod bounty_claimed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Payout = ::core::primitive::u128;
                pub type Beneficiary = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyClaimed {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyClaimed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty is cancelled."]
            pub struct BountyCanceled {
                pub index: bounty_canceled::Index,
            }
            pub mod bounty_canceled {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyCanceled {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyCanceled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty expiry is extended."]
            pub struct BountyExtended {
                pub index: bounty_extended::Index,
            }
            pub mod bounty_extended {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyExtended {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyExtended";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty is approved."]
            pub struct BountyApproved {
                pub index: bounty_approved::Index,
            }
            pub mod bounty_approved {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BountyApproved {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "BountyApproved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty curator is proposed."]
            pub struct CuratorProposed {
                pub bounty_id: curator_proposed::BountyId,
                pub curator: curator_proposed::Curator,
            }
            pub mod curator_proposed {
                use super::runtime_types;
                pub type BountyId = ::core::primitive::u32;
                pub type Curator = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CuratorProposed {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "CuratorProposed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty curator is unassigned."]
            pub struct CuratorUnassigned {
                pub bounty_id: curator_unassigned::BountyId,
            }
            pub mod curator_unassigned {
                use super::runtime_types;
                pub type BountyId = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CuratorUnassigned {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "CuratorUnassigned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty curator is accepted."]
            pub struct CuratorAccepted {
                pub bounty_id: curator_accepted::BountyId,
                pub curator: curator_accepted::Curator,
            }
            pub mod curator_accepted {
                use super::runtime_types;
                pub type BountyId = ::core::primitive::u32;
                pub type Curator = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CuratorAccepted {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "CuratorAccepted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bounty deposit has been poked."]
            pub struct DepositPoked {
                pub bounty_id: deposit_poked::BountyId,
                pub proposer: deposit_poked::Proposer,
                pub old_deposit: deposit_poked::OldDeposit,
                pub new_deposit: deposit_poked::NewDeposit,
            }
            pub mod deposit_poked {
                use super::runtime_types;
                pub type BountyId = ::core::primitive::u32;
                pub type Proposer = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type OldDeposit = ::core::primitive::u128;
                pub type NewDeposit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositPoked {
                const PALLET: &'static str = "Bounties";
                const EVENT: &'static str = "DepositPoked";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod bounty_count {
                    use super::runtime_types;
                    pub type BountyCount = ::core::primitive::u32;
                }
                pub mod bounties {
                    use super::runtime_types;
                    pub type Bounties = runtime_types::pallet_bounties::Bounty<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod bounty_descriptions {
                    use super::runtime_types;
                    pub type BountyDescriptions =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod bounty_approvals {
                    use super::runtime_types;
                    pub type BountyApprovals =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u32,
                        >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Number of bounty proposals that have been made."]
                pub fn bounty_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bounty_count::BountyCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyCount",
                        (),
                        [
                            120u8, 204u8, 26u8, 150u8, 37u8, 81u8, 43u8, 223u8, 180u8, 252u8,
                            142u8, 144u8, 109u8, 5u8, 184u8, 72u8, 223u8, 230u8, 66u8, 196u8, 14u8,
                            14u8, 164u8, 190u8, 246u8, 168u8, 190u8, 56u8, 212u8, 73u8, 175u8,
                            26u8,
                        ],
                    )
                }
                #[doc = " Bounties that have been made."]
                pub fn bounties_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bounties::Bounties,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "Bounties",
                        (),
                        [
                            69u8, 96u8, 25u8, 88u8, 96u8, 159u8, 96u8, 120u8, 90u8, 165u8, 177u8,
                            60u8, 61u8, 180u8, 13u8, 252u8, 154u8, 255u8, 249u8, 42u8, 179u8,
                            124u8, 182u8, 46u8, 84u8, 210u8, 145u8, 21u8, 197u8, 230u8, 242u8,
                            203u8,
                        ],
                    )
                }
                #[doc = " Bounties that have been made."]
                pub fn bounties(
                    &self,
                    _0: types::bounties::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::bounties::Param0,
                    >,
                    types::bounties::Bounties,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "Bounties",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            69u8, 96u8, 25u8, 88u8, 96u8, 159u8, 96u8, 120u8, 90u8, 165u8, 177u8,
                            60u8, 61u8, 180u8, 13u8, 252u8, 154u8, 255u8, 249u8, 42u8, 179u8,
                            124u8, 182u8, 46u8, 84u8, 210u8, 145u8, 21u8, 197u8, 230u8, 242u8,
                            203u8,
                        ],
                    )
                }
                #[doc = " The description of each bounty."]
                pub fn bounty_descriptions_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bounty_descriptions::BountyDescriptions,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyDescriptions",
                        (),
                        [
                            71u8, 40u8, 133u8, 84u8, 55u8, 207u8, 169u8, 189u8, 160u8, 51u8, 202u8,
                            144u8, 15u8, 226u8, 97u8, 114u8, 54u8, 247u8, 53u8, 26u8, 36u8, 54u8,
                            186u8, 163u8, 198u8, 100u8, 191u8, 121u8, 186u8, 160u8, 85u8, 97u8,
                        ],
                    )
                }
                #[doc = " The description of each bounty."]
                pub fn bounty_descriptions(
                    &self,
                    _0: types::bounty_descriptions::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::bounty_descriptions::Param0,
                    >,
                    types::bounty_descriptions::BountyDescriptions,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyDescriptions",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            71u8, 40u8, 133u8, 84u8, 55u8, 207u8, 169u8, 189u8, 160u8, 51u8, 202u8,
                            144u8, 15u8, 226u8, 97u8, 114u8, 54u8, 247u8, 53u8, 26u8, 36u8, 54u8,
                            186u8, 163u8, 198u8, 100u8, 191u8, 121u8, 186u8, 160u8, 85u8, 97u8,
                        ],
                    )
                }
                #[doc = " Bounty indices that have been approved but not yet funded."]
                pub fn bounty_approvals(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bounty_approvals::BountyApprovals,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyApprovals",
                        (),
                        [
                            182u8, 228u8, 0u8, 46u8, 176u8, 25u8, 222u8, 180u8, 51u8, 57u8, 14u8,
                            0u8, 69u8, 160u8, 64u8, 27u8, 88u8, 29u8, 227u8, 146u8, 2u8, 121u8,
                            27u8, 85u8, 45u8, 110u8, 244u8, 62u8, 134u8, 77u8, 175u8, 188u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The amount held on deposit for placing a bounty proposal."]
                pub fn bounty_deposit_base(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyDepositBase",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The delay period for which a bounty beneficiary need to wait before claim the payout."]
                pub fn bounty_deposit_payout_delay(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyDepositPayoutDelay",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The time limit for a curator to act before a bounty expires."]
                #[doc = ""]
                #[doc = " The period that starts when a curator is approved, during which they must execute or"]
                #[doc = " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the"]
                #[doc = " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,"]
                #[doc = " removing the need for `extend_bounty_expiry`."]
                pub fn bounty_update_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyUpdatePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The curator deposit is calculated as a percentage of the curator fee."]
                #[doc = ""]
                #[doc = " This deposit has optional upper and lower bounds with `CuratorDepositMax` and"]
                #[doc = " `CuratorDepositMin`."]
                pub fn curator_deposit_multiplier(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_arithmetic::per_things::Permill,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "CuratorDepositMultiplier",
                        [
                            65u8, 93u8, 120u8, 165u8, 204u8, 81u8, 159u8, 163u8, 93u8, 135u8,
                            114u8, 121u8, 147u8, 35u8, 215u8, 213u8, 4u8, 223u8, 83u8, 37u8, 225u8,
                            200u8, 189u8, 156u8, 140u8, 36u8, 58u8, 46u8, 42u8, 232u8, 155u8, 0u8,
                        ],
                    )
                }
                #[doc = " Maximum amount of funds that should be placed in a deposit for making a proposal."]
                pub fn curator_deposit_max(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::option::Option<::core::primitive::u128>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "CuratorDepositMax",
                        [
                            198u8, 51u8, 89u8, 159u8, 124u8, 251u8, 51u8, 80u8, 167u8, 193u8, 44u8,
                            199u8, 80u8, 36u8, 41u8, 130u8, 137u8, 229u8, 178u8, 208u8, 37u8,
                            215u8, 169u8, 183u8, 180u8, 191u8, 140u8, 240u8, 250u8, 61u8, 42u8,
                            147u8,
                        ],
                    )
                }
                #[doc = " Minimum amount of funds that should be placed in a deposit for making a proposal."]
                pub fn curator_deposit_min(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::option::Option<::core::primitive::u128>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "CuratorDepositMin",
                        [
                            198u8, 51u8, 89u8, 159u8, 124u8, 251u8, 51u8, 80u8, 167u8, 193u8, 44u8,
                            199u8, 80u8, 36u8, 41u8, 130u8, 137u8, 229u8, 178u8, 208u8, 37u8,
                            215u8, 169u8, 183u8, 180u8, 191u8, 140u8, 240u8, 250u8, 61u8, 42u8,
                            147u8,
                        ],
                    )
                }
                #[doc = " Minimum value for a bounty."]
                pub fn bounty_value_minimum(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "BountyValueMinimum",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The amount held on deposit per byte within the tip report reason or bounty description."]
                pub fn data_deposit_per_byte(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "DataDepositPerByte",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " Maximum acceptable reason length."]
                #[doc = ""]
                #[doc = " Benchmarks depend on this value, be sure to update weights file when changing this value"]
                pub fn maximum_reason_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Bounties",
                        "MaximumReasonLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod child_bounties {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_child_bounties::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_child_bounties::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add a new child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of parent"]
                #[doc = "bounty and the parent bounty must be in \"active\" state."]
                #[doc = ""]
                #[doc = "Child-bounty gets added successfully & fund gets transferred from"]
                #[doc = "parent bounty to child-bounty account, if parent bounty has enough"]
                #[doc = "funds, else the call fails."]
                #[doc = ""]
                #[doc = "Upper bound to maximum number of active  child bounties that can be"]
                #[doc = "added are managed via runtime trait config"]
                #[doc = "[`Config::MaxActiveChildBountyCount`]."]
                #[doc = ""]
                #[doc = "If the call is success, the status of child-bounty is updated to"]
                #[doc = "\"Added\"."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."]
                #[doc = "- `value`: Value for executing the proposal."]
                #[doc = "- `description`: Text description for the child-bounty."]
                pub struct AddChildBounty {
                    #[codec(compact)]
                    pub parent_bounty_id: add_child_bounty::ParentBountyId,
                    #[codec(compact)]
                    pub value: add_child_bounty::Value,
                    pub description: add_child_bounty::Description,
                }
                pub mod add_child_bounty {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type Value = ::core::primitive::u128;
                    pub type Description =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddChildBounty {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "add_child_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Propose curator for funded child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be curator of parent bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"]
                #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                #[doc = "- `curator`: Address of child-bounty curator."]
                #[doc = "- `fee`: payment fee to child-bounty curator for execution."]
                pub struct ProposeCurator {
                    #[codec(compact)]
                    pub parent_bounty_id: propose_curator::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: propose_curator::ChildBountyId,
                    pub curator: propose_curator::Curator,
                    #[codec(compact)]
                    pub fee: propose_curator::Fee,
                }
                pub mod propose_curator {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                    pub type Curator = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Fee = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProposeCurator {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "propose_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Accept the curator role for the child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this"]
                #[doc = "child-bounty."]
                #[doc = ""]
                #[doc = "A deposit will be reserved from the curator and refund upon"]
                #[doc = "successful payout or cancellation."]
                #[doc = ""]
                #[doc = "Fee for curator is deducted from curator fee of parent bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"]
                #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub struct AcceptCurator {
                    #[codec(compact)]
                    pub parent_bounty_id: accept_curator::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: accept_curator::ChildBountyId,
                }
                pub mod accept_curator {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptCurator {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "accept_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unassign curator from a child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"]
                #[doc = "the curator of the parent bounty, or any signed origin."]
                #[doc = ""]
                #[doc = "For the origin other than T::RejectOrigin and the child-bounty"]
                #[doc = "curator, parent bounty must be in active state, for this call to"]
                #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"]
                #[doc = "this call irrespective of the parent bounty state."]
                #[doc = ""]
                #[doc = "If this function is called by the `RejectOrigin` or the"]
                #[doc = "parent bounty curator, we assume that the child-bounty curator is"]
                #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"]
                #[doc = "slashed."]
                #[doc = ""]
                #[doc = "If the origin is the child-bounty curator, we take this as a sign"]
                #[doc = "that they are unable to do their job, and are willingly giving up."]
                #[doc = "We could slash the deposit, but for now we allow them to unreserve"]
                #[doc = "their deposit and exit without issue. (We may want to change this if"]
                #[doc = "it is abused.)"]
                #[doc = ""]
                #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"]
                #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"]
                #[doc = "inactive state of child-bounty curator."]
                #[doc = ""]
                #[doc = "This allows anyone in the community to call out that a child-bounty"]
                #[doc = "curator is not doing their due diligence, and we should pick a new"]
                #[doc = "one. In this case the child-bounty curator deposit is slashed."]
                #[doc = ""]
                #[doc = "State of child-bounty is moved to Added state on successful call"]
                #[doc = "completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub struct UnassignCurator {
                    #[codec(compact)]
                    pub parent_bounty_id: unassign_curator::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: unassign_curator::ChildBountyId,
                }
                pub mod unassign_curator {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnassignCurator {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "unassign_curator";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Award child-bounty to a beneficiary."]
                #[doc = ""]
                #[doc = "The beneficiary will be able to claim the funds after a delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the parent curator or"]
                #[doc = "curator of this child-bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in active state, for processing the call. And"]
                #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"]
                #[doc = "completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                #[doc = "- `beneficiary`: Beneficiary account."]
                pub struct AwardChildBounty {
                    #[codec(compact)]
                    pub parent_bounty_id: award_child_bounty::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: award_child_bounty::ChildBountyId,
                    pub beneficiary: award_child_bounty::Beneficiary,
                }
                pub mod award_child_bounty {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                    pub type Beneficiary = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AwardChildBounty {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "award_child_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Claim the payout from an awarded child-bounty after payout delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call may be any signed origin."]
                #[doc = ""]
                #[doc = "Call works independent of parent bounty state, No need for parent"]
                #[doc = "bounty to be in active state."]
                #[doc = ""]
                #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"]
                #[doc = "paid & curator deposit is unreserved."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"]
                #[doc = "call. And instance of child-bounty is removed from the state on"]
                #[doc = "successful call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub struct ClaimChildBounty {
                    #[codec(compact)]
                    pub parent_bounty_id: claim_child_bounty::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: claim_child_bounty::ChildBountyId,
                }
                pub mod claim_child_bounty {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimChildBounty {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "claim_child_bounty";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"]
                #[doc = "are transferred to parent bounty account. The child-bounty curator"]
                #[doc = "deposit may be unreserved if possible."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be either parent curator or"]
                #[doc = "`T::RejectOrigin`."]
                #[doc = ""]
                #[doc = "If the state of child-bounty is `Active`, curator deposit is"]
                #[doc = "unreserved."]
                #[doc = ""]
                #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"]
                #[doc = "returns `PendingPayout` error."]
                #[doc = ""]
                #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"]
                #[doc = "active state, for this child-bounty call to work. For origin"]
                #[doc = "T::RejectOrigin execution is forced."]
                #[doc = ""]
                #[doc = "Instance of child-bounty is removed from the state on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub struct CloseChildBounty {
                    #[codec(compact)]
                    pub parent_bounty_id: close_child_bounty::ParentBountyId,
                    #[codec(compact)]
                    pub child_bounty_id: close_child_bounty::ChildBountyId,
                }
                pub mod close_child_bounty {
                    use super::runtime_types;
                    pub type ParentBountyId = ::core::primitive::u32;
                    pub type ChildBountyId = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CloseChildBounty {
                    const PALLET: &'static str = "ChildBounties";
                    const CALL: &'static str = "close_child_bounty";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Add a new child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of parent"]
                #[doc = "bounty and the parent bounty must be in \"active\" state."]
                #[doc = ""]
                #[doc = "Child-bounty gets added successfully & fund gets transferred from"]
                #[doc = "parent bounty to child-bounty account, if parent bounty has enough"]
                #[doc = "funds, else the call fails."]
                #[doc = ""]
                #[doc = "Upper bound to maximum number of active  child bounties that can be"]
                #[doc = "added are managed via runtime trait config"]
                #[doc = "[`Config::MaxActiveChildBountyCount`]."]
                #[doc = ""]
                #[doc = "If the call is success, the status of child-bounty is updated to"]
                #[doc = "\"Added\"."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."]
                #[doc = "- `value`: Value for executing the proposal."]
                #[doc = "- `description`: Text description for the child-bounty."]
                pub fn add_child_bounty(
                    &self,
                    parent_bounty_id: types::add_child_bounty::ParentBountyId,
                    value: types::add_child_bounty::Value,
                    description: types::add_child_bounty::Description,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddChildBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "add_child_bounty",
                        types::AddChildBounty {
                            parent_bounty_id,
                            value,
                            description,
                        },
                        [
                            249u8, 159u8, 185u8, 144u8, 114u8, 142u8, 104u8, 215u8, 136u8, 52u8,
                            255u8, 125u8, 54u8, 243u8, 220u8, 171u8, 254u8, 49u8, 105u8, 134u8,
                            137u8, 221u8, 100u8, 111u8, 72u8, 38u8, 184u8, 122u8, 72u8, 204u8,
                            182u8, 123u8,
                        ],
                    )
                }
                #[doc = "Propose curator for funded child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be curator of parent bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"]
                #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                #[doc = "- `curator`: Address of child-bounty curator."]
                #[doc = "- `fee`: payment fee to child-bounty curator for execution."]
                pub fn propose_curator(
                    &self,
                    parent_bounty_id: types::propose_curator::ParentBountyId,
                    child_bounty_id: types::propose_curator::ChildBountyId,
                    curator: types::propose_curator::Curator,
                    fee: types::propose_curator::Fee,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ProposeCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "propose_curator",
                        types::ProposeCurator {
                            parent_bounty_id,
                            child_bounty_id,
                            curator,
                            fee,
                        },
                        [
                            30u8, 186u8, 200u8, 181u8, 73u8, 219u8, 129u8, 195u8, 100u8, 30u8,
                            36u8, 9u8, 131u8, 110u8, 136u8, 145u8, 146u8, 44u8, 96u8, 207u8, 74u8,
                            59u8, 61u8, 94u8, 186u8, 184u8, 89u8, 170u8, 126u8, 64u8, 234u8, 177u8,
                        ],
                    )
                }
                #[doc = "Accept the curator role for the child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the curator of this"]
                #[doc = "child-bounty."]
                #[doc = ""]
                #[doc = "A deposit will be reserved from the curator and refund upon"]
                #[doc = "successful payout or cancellation."]
                #[doc = ""]
                #[doc = "Fee for curator is deducted from curator fee of parent bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"]
                #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub fn accept_curator(
                    &self,
                    parent_bounty_id: types::accept_curator::ParentBountyId,
                    child_bounty_id: types::accept_curator::ChildBountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AcceptCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "accept_curator",
                        types::AcceptCurator {
                            parent_bounty_id,
                            child_bounty_id,
                        },
                        [
                            80u8, 117u8, 237u8, 83u8, 230u8, 230u8, 159u8, 136u8, 87u8, 17u8,
                            239u8, 110u8, 190u8, 12u8, 52u8, 63u8, 171u8, 118u8, 82u8, 168u8,
                            190u8, 255u8, 91u8, 85u8, 117u8, 226u8, 51u8, 28u8, 116u8, 230u8,
                            137u8, 123u8,
                        ],
                    )
                }
                #[doc = "Unassign curator from a child-bounty."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"]
                #[doc = "the curator of the parent bounty, or any signed origin."]
                #[doc = ""]
                #[doc = "For the origin other than T::RejectOrigin and the child-bounty"]
                #[doc = "curator, parent bounty must be in active state, for this call to"]
                #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"]
                #[doc = "this call irrespective of the parent bounty state."]
                #[doc = ""]
                #[doc = "If this function is called by the `RejectOrigin` or the"]
                #[doc = "parent bounty curator, we assume that the child-bounty curator is"]
                #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"]
                #[doc = "slashed."]
                #[doc = ""]
                #[doc = "If the origin is the child-bounty curator, we take this as a sign"]
                #[doc = "that they are unable to do their job, and are willingly giving up."]
                #[doc = "We could slash the deposit, but for now we allow them to unreserve"]
                #[doc = "their deposit and exit without issue. (We may want to change this if"]
                #[doc = "it is abused.)"]
                #[doc = ""]
                #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"]
                #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"]
                #[doc = "inactive state of child-bounty curator."]
                #[doc = ""]
                #[doc = "This allows anyone in the community to call out that a child-bounty"]
                #[doc = "curator is not doing their due diligence, and we should pick a new"]
                #[doc = "one. In this case the child-bounty curator deposit is slashed."]
                #[doc = ""]
                #[doc = "State of child-bounty is moved to Added state on successful call"]
                #[doc = "completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub fn unassign_curator(
                    &self,
                    parent_bounty_id: types::unassign_curator::ParentBountyId,
                    child_bounty_id: types::unassign_curator::ChildBountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UnassignCurator>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "unassign_curator",
                        types::UnassignCurator {
                            parent_bounty_id,
                            child_bounty_id,
                        },
                        [
                            120u8, 208u8, 75u8, 141u8, 220u8, 153u8, 79u8, 28u8, 255u8, 227u8,
                            239u8, 10u8, 243u8, 116u8, 0u8, 226u8, 205u8, 208u8, 91u8, 193u8,
                            154u8, 81u8, 169u8, 240u8, 120u8, 48u8, 102u8, 35u8, 25u8, 136u8, 92u8,
                            141u8,
                        ],
                    )
                }
                #[doc = "Award child-bounty to a beneficiary."]
                #[doc = ""]
                #[doc = "The beneficiary will be able to claim the funds after a delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be the parent curator or"]
                #[doc = "curator of this child-bounty."]
                #[doc = ""]
                #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                #[doc = "work."]
                #[doc = ""]
                #[doc = "Child-bounty must be in active state, for processing the call. And"]
                #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"]
                #[doc = "completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                #[doc = "- `beneficiary`: Beneficiary account."]
                pub fn award_child_bounty(
                    &self,
                    parent_bounty_id: types::award_child_bounty::ParentBountyId,
                    child_bounty_id: types::award_child_bounty::ChildBountyId,
                    beneficiary: types::award_child_bounty::Beneficiary,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AwardChildBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "award_child_bounty",
                        types::AwardChildBounty {
                            parent_bounty_id,
                            child_bounty_id,
                            beneficiary,
                        },
                        [
                            45u8, 172u8, 88u8, 8u8, 142u8, 34u8, 30u8, 132u8, 61u8, 31u8, 187u8,
                            174u8, 21u8, 5u8, 248u8, 185u8, 142u8, 193u8, 29u8, 83u8, 225u8, 213u8,
                            153u8, 247u8, 67u8, 219u8, 58u8, 206u8, 102u8, 55u8, 218u8, 154u8,
                        ],
                    )
                }
                #[doc = "Claim the payout from an awarded child-bounty after payout delay."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call may be any signed origin."]
                #[doc = ""]
                #[doc = "Call works independent of parent bounty state, No need for parent"]
                #[doc = "bounty to be in active state."]
                #[doc = ""]
                #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"]
                #[doc = "paid & curator deposit is unreserved."]
                #[doc = ""]
                #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"]
                #[doc = "call. And instance of child-bounty is removed from the state on"]
                #[doc = "successful call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub fn claim_child_bounty(
                    &self,
                    parent_bounty_id: types::claim_child_bounty::ParentBountyId,
                    child_bounty_id: types::claim_child_bounty::ChildBountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimChildBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "claim_child_bounty",
                        types::ClaimChildBounty {
                            parent_bounty_id,
                            child_bounty_id,
                        },
                        [
                            114u8, 134u8, 242u8, 240u8, 103u8, 141u8, 181u8, 214u8, 193u8, 222u8,
                            23u8, 19u8, 68u8, 174u8, 190u8, 60u8, 94u8, 235u8, 14u8, 115u8, 155u8,
                            199u8, 0u8, 106u8, 37u8, 144u8, 92u8, 188u8, 2u8, 149u8, 235u8, 244u8,
                        ],
                    )
                }
                #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"]
                #[doc = "are transferred to parent bounty account. The child-bounty curator"]
                #[doc = "deposit may be unreserved if possible."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be either parent curator or"]
                #[doc = "`T::RejectOrigin`."]
                #[doc = ""]
                #[doc = "If the state of child-bounty is `Active`, curator deposit is"]
                #[doc = "unreserved."]
                #[doc = ""]
                #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"]
                #[doc = "returns `PendingPayout` error."]
                #[doc = ""]
                #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"]
                #[doc = "active state, for this child-bounty call to work. For origin"]
                #[doc = "T::RejectOrigin execution is forced."]
                #[doc = ""]
                #[doc = "Instance of child-bounty is removed from the state on successful"]
                #[doc = "call completion."]
                #[doc = ""]
                #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                #[doc = "- `child_bounty_id`: Index of child bounty."]
                pub fn close_child_bounty(
                    &self,
                    parent_bounty_id: types::close_child_bounty::ParentBountyId,
                    child_bounty_id: types::close_child_bounty::ChildBountyId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CloseChildBounty>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ChildBounties",
                        "close_child_bounty",
                        types::CloseChildBounty {
                            parent_bounty_id,
                            child_bounty_id,
                        },
                        [
                            121u8, 20u8, 81u8, 13u8, 102u8, 102u8, 162u8, 24u8, 133u8, 35u8, 203u8,
                            58u8, 28u8, 195u8, 114u8, 31u8, 254u8, 252u8, 118u8, 57u8, 30u8, 211u8,
                            217u8, 124u8, 148u8, 244u8, 144u8, 224u8, 39u8, 155u8, 162u8, 91u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_child_bounties::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A child-bounty is added."]
            pub struct Added {
                pub index: added::Index,
                pub child_index: added::ChildIndex,
            }
            pub mod added {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type ChildIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Added {
                const PALLET: &'static str = "ChildBounties";
                const EVENT: &'static str = "Added";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A child-bounty is awarded to a beneficiary."]
            pub struct Awarded {
                pub index: awarded::Index,
                pub child_index: awarded::ChildIndex,
                pub beneficiary: awarded::Beneficiary,
            }
            pub mod awarded {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type ChildIndex = ::core::primitive::u32;
                pub type Beneficiary = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Awarded {
                const PALLET: &'static str = "ChildBounties";
                const EVENT: &'static str = "Awarded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A child-bounty is claimed by beneficiary."]
            pub struct Claimed {
                pub index: claimed::Index,
                pub child_index: claimed::ChildIndex,
                pub payout: claimed::Payout,
                pub beneficiary: claimed::Beneficiary,
            }
            pub mod claimed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type ChildIndex = ::core::primitive::u32;
                pub type Payout = ::core::primitive::u128;
                pub type Beneficiary = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Claimed {
                const PALLET: &'static str = "ChildBounties";
                const EVENT: &'static str = "Claimed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A child-bounty is cancelled."]
            pub struct Canceled {
                pub index: canceled::Index,
                pub child_index: canceled::ChildIndex,
            }
            pub mod canceled {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type ChildIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Canceled {
                const PALLET: &'static str = "ChildBounties";
                const EVENT: &'static str = "Canceled";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod child_bounty_count {
                    use super::runtime_types;
                    pub type ChildBountyCount = ::core::primitive::u32;
                }
                pub mod parent_child_bounties {
                    use super::runtime_types;
                    pub type ParentChildBounties = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod parent_total_child_bounties {
                    use super::runtime_types;
                    pub type ParentTotalChildBounties = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod child_bounties {
                    use super::runtime_types;
                    pub type ChildBounties = runtime_types::pallet_child_bounties::ChildBounty<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = ::core::primitive::u32;
                }
                pub mod child_bounty_descriptions_v1 {
                    use super::runtime_types;
                    pub type ChildBountyDescriptionsV1 =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = ::core::primitive::u32;
                }
                pub mod v0_to_v1_child_bounty_ids {
                    use super::runtime_types;
                    pub type V0ToV1ChildBountyIds =
                        (::core::primitive::u32, ::core::primitive::u32);
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod children_curator_fees {
                    use super::runtime_types;
                    pub type ChildrenCuratorFees = ::core::primitive::u128;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts"]
                #[doc = " for each parent bounty. Number of total child bounties. Will be removed in May 2025."]
                pub fn child_bounty_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::child_bounty_count::ChildBountyCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBountyCount",
                        (),
                        [
                            206u8, 1u8, 40u8, 132u8, 51u8, 139u8, 234u8, 20u8, 89u8, 86u8, 247u8,
                            107u8, 169u8, 252u8, 5u8, 180u8, 218u8, 24u8, 232u8, 94u8, 82u8, 135u8,
                            24u8, 16u8, 134u8, 23u8, 201u8, 86u8, 12u8, 19u8, 199u8, 0u8,
                        ],
                    )
                }
                #[doc = " Number of active child bounties per parent bounty."]
                #[doc = " Map of parent bounty index to number of child bounties."]
                pub fn parent_child_bounties_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parent_child_bounties::ParentChildBounties,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ParentChildBounties",
                        (),
                        [
                            52u8, 179u8, 242u8, 212u8, 91u8, 185u8, 176u8, 52u8, 100u8, 200u8, 1u8,
                            41u8, 184u8, 234u8, 234u8, 8u8, 123u8, 252u8, 131u8, 55u8, 109u8,
                            123u8, 89u8, 75u8, 101u8, 165u8, 117u8, 175u8, 92u8, 71u8, 62u8, 67u8,
                        ],
                    )
                }
                #[doc = " Number of active child bounties per parent bounty."]
                #[doc = " Map of parent bounty index to number of child bounties."]
                pub fn parent_child_bounties(
                    &self,
                    _0: types::parent_child_bounties::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::parent_child_bounties::Param0,
                    >,
                    types::parent_child_bounties::ParentChildBounties,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ParentChildBounties",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            52u8, 179u8, 242u8, 212u8, 91u8, 185u8, 176u8, 52u8, 100u8, 200u8, 1u8,
                            41u8, 184u8, 234u8, 234u8, 8u8, 123u8, 252u8, 131u8, 55u8, 109u8,
                            123u8, 89u8, 75u8, 101u8, 165u8, 117u8, 175u8, 92u8, 71u8, 62u8, 67u8,
                        ],
                    )
                }
                #[doc = " Number of total child bounties per parent bounty, including completed bounties."]
                pub fn parent_total_child_bounties_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parent_total_child_bounties::ParentTotalChildBounties,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ParentTotalChildBounties",
                        (),
                        [
                            219u8, 151u8, 60u8, 233u8, 115u8, 32u8, 180u8, 227u8, 121u8, 103u8,
                            197u8, 124u8, 86u8, 35u8, 140u8, 73u8, 158u8, 86u8, 240u8, 96u8, 49u8,
                            220u8, 3u8, 238u8, 20u8, 118u8, 200u8, 113u8, 117u8, 179u8, 89u8, 9u8,
                        ],
                    )
                }
                #[doc = " Number of total child bounties per parent bounty, including completed bounties."]
                pub fn parent_total_child_bounties(
                    &self,
                    _0: types::parent_total_child_bounties::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::parent_total_child_bounties::Param0,
                    >,
                    types::parent_total_child_bounties::ParentTotalChildBounties,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ParentTotalChildBounties",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            219u8, 151u8, 60u8, 233u8, 115u8, 32u8, 180u8, 227u8, 121u8, 103u8,
                            197u8, 124u8, 86u8, 35u8, 140u8, 73u8, 158u8, 86u8, 240u8, 96u8, 49u8,
                            220u8, 3u8, 238u8, 20u8, 118u8, 200u8, 113u8, 117u8, 179u8, 89u8, 9u8,
                        ],
                    )
                }
                #[doc = " Child bounties that have been added."]
                pub fn child_bounties_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::child_bounties::ChildBounties,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBounties",
                        (),
                        [
                            165u8, 240u8, 158u8, 204u8, 183u8, 190u8, 129u8, 65u8, 226u8, 8u8,
                            182u8, 103u8, 46u8, 162u8, 35u8, 155u8, 131u8, 45u8, 163u8, 64u8,
                            154u8, 137u8, 126u8, 249u8, 238u8, 156u8, 233u8, 78u8, 28u8, 95u8,
                            242u8, 147u8,
                        ],
                    )
                }
                #[doc = " Child bounties that have been added."]
                pub fn child_bounties_iter1(
                    &self,
                    _0: types::child_bounties::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::child_bounties::Param0,
                    >,
                    types::child_bounties::ChildBounties,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBounties",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            165u8, 240u8, 158u8, 204u8, 183u8, 190u8, 129u8, 65u8, 226u8, 8u8,
                            182u8, 103u8, 46u8, 162u8, 35u8, 155u8, 131u8, 45u8, 163u8, 64u8,
                            154u8, 137u8, 126u8, 249u8, 238u8, 156u8, 233u8, 78u8, 28u8, 95u8,
                            242u8, 147u8,
                        ],
                    )
                }
                #[doc = " Child bounties that have been added."]
                pub fn child_bounties(
                    &self,
                    _0: types::child_bounties::Param0,
                    _1: types::child_bounties::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::child_bounties::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::child_bounties::Param1,
                        >,
                    ),
                    types::child_bounties::ChildBounties,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBounties",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            165u8, 240u8, 158u8, 204u8, 183u8, 190u8, 129u8, 65u8, 226u8, 8u8,
                            182u8, 103u8, 46u8, 162u8, 35u8, 155u8, 131u8, 45u8, 163u8, 64u8,
                            154u8, 137u8, 126u8, 249u8, 238u8, 156u8, 233u8, 78u8, 28u8, 95u8,
                            242u8, 147u8,
                        ],
                    )
                }
                #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."]
                #[doc = ""]
                #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."]
                pub fn child_bounty_descriptions_v1_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBountyDescriptionsV1",
                        (),
                        [
                            143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8,
                            6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8,
                            59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8,
                        ],
                    )
                }
                #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."]
                #[doc = ""]
                #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."]
                pub fn child_bounty_descriptions_v1_iter1(
                    &self,
                    _0: types::child_bounty_descriptions_v1::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::child_bounty_descriptions_v1::Param0,
                    >,
                    types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBountyDescriptionsV1",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8,
                            6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8,
                            59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8,
                        ],
                    )
                }
                #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."]
                #[doc = ""]
                #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."]
                pub fn child_bounty_descriptions_v1(
                    &self,
                    _0: types::child_bounty_descriptions_v1::Param0,
                    _1: types::child_bounty_descriptions_v1::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::child_bounty_descriptions_v1::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::child_bounty_descriptions_v1::Param1,
                        >,
                    ),
                    types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBountyDescriptionsV1",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8,
                            6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8,
                            59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8,
                        ],
                    )
                }
                #[doc = " The mapping of the child bounty ids from storage version `V0` to the new `V1` version."]
                #[doc = ""]
                #[doc = " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids"]
                #[doc = " based on the child bounty count per parent bounty [`ParentTotalChildBounties`]."]
                #[doc = " The item intended solely for client convenience and not used in the pallet's core logic."]
                pub fn v0_to_v1_child_bounty_ids_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::v0_to_v1_child_bounty_ids::V0ToV1ChildBountyIds,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "V0ToV1ChildBountyIds",
                        (),
                        [
                            254u8, 251u8, 192u8, 11u8, 206u8, 216u8, 21u8, 48u8, 209u8, 242u8,
                            189u8, 46u8, 185u8, 122u8, 225u8, 237u8, 169u8, 99u8, 55u8, 245u8,
                            122u8, 27u8, 29u8, 235u8, 105u8, 99u8, 98u8, 208u8, 227u8, 227u8,
                            127u8, 206u8,
                        ],
                    )
                }
                #[doc = " The mapping of the child bounty ids from storage version `V0` to the new `V1` version."]
                #[doc = ""]
                #[doc = " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids"]
                #[doc = " based on the child bounty count per parent bounty [`ParentTotalChildBounties`]."]
                #[doc = " The item intended solely for client convenience and not used in the pallet's core logic."]
                pub fn v0_to_v1_child_bounty_ids(
                    &self,
                    _0: types::v0_to_v1_child_bounty_ids::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::v0_to_v1_child_bounty_ids::Param0,
                    >,
                    types::v0_to_v1_child_bounty_ids::V0ToV1ChildBountyIds,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "V0ToV1ChildBountyIds",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            254u8, 251u8, 192u8, 11u8, 206u8, 216u8, 21u8, 48u8, 209u8, 242u8,
                            189u8, 46u8, 185u8, 122u8, 225u8, 237u8, 169u8, 99u8, 55u8, 245u8,
                            122u8, 27u8, 29u8, 235u8, 105u8, 99u8, 98u8, 208u8, 227u8, 227u8,
                            127u8, 206u8,
                        ],
                    )
                }
                #[doc = " The cumulative child-bounty curator fee for each parent bounty."]
                pub fn children_curator_fees_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::children_curator_fees::ChildrenCuratorFees,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildrenCuratorFees",
                        (),
                        [
                            32u8, 16u8, 190u8, 193u8, 6u8, 80u8, 163u8, 16u8, 85u8, 111u8, 39u8,
                            141u8, 209u8, 70u8, 213u8, 167u8, 22u8, 12u8, 93u8, 17u8, 104u8, 94u8,
                            129u8, 37u8, 179u8, 41u8, 156u8, 117u8, 39u8, 202u8, 227u8, 235u8,
                        ],
                    )
                }
                #[doc = " The cumulative child-bounty curator fee for each parent bounty."]
                pub fn children_curator_fees(
                    &self,
                    _0: types::children_curator_fees::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::children_curator_fees::Param0,
                    >,
                    types::children_curator_fees::ChildrenCuratorFees,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildrenCuratorFees",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            32u8, 16u8, 190u8, 193u8, 6u8, 80u8, 163u8, 16u8, 85u8, 111u8, 39u8,
                            141u8, 209u8, 70u8, 213u8, 167u8, 22u8, 12u8, 93u8, 17u8, 104u8, 94u8,
                            129u8, 37u8, 179u8, 41u8, 156u8, 117u8, 39u8, 202u8, 227u8, 235u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " Maximum number of child bounties that can be added to a parent bounty."]
                pub fn max_active_child_bounty_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "ChildBounties",
                        "MaxActiveChildBountyCount",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Minimum value for a child-bounty."]
                pub fn child_bounty_value_minimum(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "ChildBounties",
                        "ChildBountyValueMinimum",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod nis {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_nis::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_nis::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Place a bid."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."]
                #[doc = ""]
                #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"]
                #[doc = "  consolidated, removed. Must be at least `MinBid`."]
                #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"]
                #[doc = "  thawed. Must be greater than 1 and no more than `QueueCount`."]
                #[doc = ""]
                #[doc = "Complexities:"]
                #[doc = "- `Queues[duration].len()` (just take max)."]
                pub struct PlaceBid {
                    #[codec(compact)]
                    pub amount: place_bid::Amount,
                    pub duration: place_bid::Duration,
                }
                pub mod place_bid {
                    use super::runtime_types;
                    pub type Amount = ::core::primitive::u128;
                    pub type Duration = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceBid {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "place_bid";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Retract a previously placed bid."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"]
                #[doc = "of `amount` for `duration`."]
                #[doc = ""]
                #[doc = "- `amount`: The amount of the previous bid."]
                #[doc = "- `duration`: The duration of the previous bid."]
                pub struct RetractBid {
                    #[codec(compact)]
                    pub amount: retract_bid::Amount,
                    pub duration: retract_bid::Duration,
                }
                pub mod retract_bid {
                    use super::runtime_types;
                    pub type Amount = ::core::primitive::u128;
                    pub type Duration = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RetractBid {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "retract_bid";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Ensure we have sufficient funding for all potential payouts."]
                #[doc = ""]
                #[doc = "- `origin`: Must be accepted by `FundOrigin`."]
                pub struct FundDeficit;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FundDeficit {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "fund_deficit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                #[doc = "the account of the owner."]
                #[doc = ""]
                #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"]
                #[doc = "  well as any fungible counterpart."]
                #[doc = "- `index`: The index of the receipt."]
                #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"]
                #[doc = "  `None`, then all of it should be."]
                pub struct ThawPrivate {
                    #[codec(compact)]
                    pub index: thaw_private::Index,
                    pub maybe_proportion: thaw_private::MaybeProportion,
                }
                pub mod thaw_private {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type MaybeProportion = ::core::option::Option<
                        runtime_types::sp_arithmetic::per_things::Perquintill,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ThawPrivate {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "thaw_private";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                #[doc = "the account of the owner."]
                #[doc = ""]
                #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"]
                #[doc = "  for receipt `index`."]
                #[doc = "- `index`: The index of the receipt."]
                pub struct ThawCommunal {
                    #[codec(compact)]
                    pub index: thaw_communal::Index,
                }
                pub mod thaw_communal {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ThawCommunal {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "thaw_communal";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make a private receipt communal and create fungible counterparts for its owner."]
                pub struct Communify {
                    #[codec(compact)]
                    pub index: communify::Index,
                }
                pub mod communify {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Communify {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "communify";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."]
                pub struct Privatize {
                    #[codec(compact)]
                    pub index: privatize::Index,
                }
                pub mod privatize {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Privatize {
                    const PALLET: &'static str = "Nis";
                    const CALL: &'static str = "privatize";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Place a bid."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."]
                #[doc = ""]
                #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"]
                #[doc = "  consolidated, removed. Must be at least `MinBid`."]
                #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"]
                #[doc = "  thawed. Must be greater than 1 and no more than `QueueCount`."]
                #[doc = ""]
                #[doc = "Complexities:"]
                #[doc = "- `Queues[duration].len()` (just take max)."]
                pub fn place_bid(
                    &self,
                    amount: types::place_bid::Amount,
                    duration: types::place_bid::Duration,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlaceBid>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "place_bid",
                        types::PlaceBid { amount, duration },
                        [
                            138u8, 214u8, 63u8, 53u8, 233u8, 95u8, 186u8, 83u8, 235u8, 121u8, 4u8,
                            41u8, 210u8, 214u8, 35u8, 196u8, 89u8, 102u8, 115u8, 130u8, 151u8,
                            212u8, 13u8, 34u8, 198u8, 103u8, 160u8, 39u8, 22u8, 151u8, 216u8,
                            243u8,
                        ],
                    )
                }
                #[doc = "Retract a previously placed bid."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"]
                #[doc = "of `amount` for `duration`."]
                #[doc = ""]
                #[doc = "- `amount`: The amount of the previous bid."]
                #[doc = "- `duration`: The duration of the previous bid."]
                pub fn retract_bid(
                    &self,
                    amount: types::retract_bid::Amount,
                    duration: types::retract_bid::Duration,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RetractBid>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "retract_bid",
                        types::RetractBid { amount, duration },
                        [
                            156u8, 140u8, 160u8, 45u8, 107u8, 72u8, 2u8, 129u8, 149u8, 89u8, 103u8,
                            95u8, 189u8, 42u8, 0u8, 21u8, 51u8, 236u8, 113u8, 33u8, 136u8, 115u8,
                            93u8, 223u8, 72u8, 139u8, 46u8, 76u8, 128u8, 134u8, 209u8, 252u8,
                        ],
                    )
                }
                #[doc = "Ensure we have sufficient funding for all potential payouts."]
                #[doc = ""]
                #[doc = "- `origin`: Must be accepted by `FundOrigin`."]
                pub fn fund_deficit(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::FundDeficit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "fund_deficit",
                        types::FundDeficit {},
                        [
                            49u8, 183u8, 23u8, 249u8, 232u8, 74u8, 238u8, 100u8, 165u8, 242u8,
                            42u8, 6u8, 58u8, 91u8, 28u8, 229u8, 5u8, 180u8, 108u8, 164u8, 63u8,
                            20u8, 92u8, 122u8, 222u8, 149u8, 190u8, 194u8, 64u8, 114u8, 22u8,
                            176u8,
                        ],
                    )
                }
                #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                #[doc = "the account of the owner."]
                #[doc = ""]
                #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"]
                #[doc = "  well as any fungible counterpart."]
                #[doc = "- `index`: The index of the receipt."]
                #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"]
                #[doc = "  `None`, then all of it should be."]
                pub fn thaw_private(
                    &self,
                    index: types::thaw_private::Index,
                    maybe_proportion: types::thaw_private::MaybeProportion,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ThawPrivate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "thaw_private",
                        types::ThawPrivate {
                            index,
                            maybe_proportion,
                        },
                        [
                            202u8, 131u8, 103u8, 88u8, 165u8, 203u8, 191u8, 48u8, 99u8, 26u8, 1u8,
                            133u8, 8u8, 139u8, 216u8, 195u8, 22u8, 91u8, 240u8, 188u8, 228u8, 54u8,
                            140u8, 156u8, 66u8, 13u8, 53u8, 184u8, 157u8, 177u8, 227u8, 52u8,
                        ],
                    )
                }
                #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                #[doc = "the account of the owner."]
                #[doc = ""]
                #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"]
                #[doc = "  for receipt `index`."]
                #[doc = "- `index`: The index of the receipt."]
                pub fn thaw_communal(
                    &self,
                    index: types::thaw_communal::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ThawCommunal>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "thaw_communal",
                        types::ThawCommunal { index },
                        [
                            106u8, 64u8, 53u8, 173u8, 59u8, 135u8, 254u8, 38u8, 119u8, 2u8, 4u8,
                            109u8, 21u8, 220u8, 218u8, 220u8, 34u8, 10u8, 86u8, 248u8, 166u8,
                            226u8, 183u8, 117u8, 211u8, 16u8, 53u8, 236u8, 0u8, 187u8, 140u8,
                            221u8,
                        ],
                    )
                }
                #[doc = "Make a private receipt communal and create fungible counterparts for its owner."]
                pub fn communify(
                    &self,
                    index: types::communify::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Communify>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "communify",
                        types::Communify { index },
                        [
                            206u8, 141u8, 231u8, 98u8, 101u8, 34u8, 101u8, 190u8, 22u8, 246u8,
                            238u8, 30u8, 48u8, 104u8, 128u8, 115u8, 49u8, 78u8, 30u8, 230u8, 59u8,
                            173u8, 70u8, 89u8, 82u8, 212u8, 105u8, 236u8, 86u8, 244u8, 248u8,
                            144u8,
                        ],
                    )
                }
                #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."]
                pub fn privatize(
                    &self,
                    index: types::privatize::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Privatize>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Nis",
                        "privatize",
                        types::Privatize { index },
                        [
                            228u8, 215u8, 197u8, 40u8, 194u8, 170u8, 139u8, 192u8, 214u8, 61u8,
                            107u8, 132u8, 89u8, 122u8, 58u8, 12u8, 11u8, 231u8, 186u8, 73u8, 106u8,
                            99u8, 134u8, 216u8, 206u8, 118u8, 221u8, 223u8, 187u8, 206u8, 246u8,
                            255u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_nis::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bid was successfully placed."]
            pub struct BidPlaced {
                pub who: bid_placed::Who,
                pub amount: bid_placed::Amount,
                pub duration: bid_placed::Duration,
            }
            pub mod bid_placed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
                pub type Duration = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BidPlaced {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "BidPlaced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bid was successfully removed (before being accepted)."]
            pub struct BidRetracted {
                pub who: bid_retracted::Who,
                pub amount: bid_retracted::Amount,
                pub duration: bid_retracted::Duration,
            }
            pub mod bid_retracted {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
                pub type Duration = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BidRetracted {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "BidRetracted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bid was dropped from a queue because of another, more substantial, bid was present."]
            pub struct BidDropped {
                pub who: bid_dropped::Who,
                pub amount: bid_dropped::Amount,
                pub duration: bid_dropped::Duration,
            }
            pub mod bid_dropped {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
                pub type Duration = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BidDropped {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "BidDropped";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A bid was accepted. The balance may not be released until expiry."]
            pub struct Issued {
                pub index: issued::Index,
                pub expiry: issued::Expiry,
                pub who: issued::Who,
                pub proportion: issued::Proportion,
                pub amount: issued::Amount,
            }
            pub mod issued {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Expiry = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Proportion = runtime_types::sp_arithmetic::per_things::Perquintill;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Issued {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "Issued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An receipt has been (at least partially) thawed."]
            pub struct Thawed {
                pub index: thawed::Index,
                pub who: thawed::Who,
                pub proportion: thawed::Proportion,
                pub amount: thawed::Amount,
                pub dropped: thawed::Dropped,
            }
            pub mod thawed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Proportion = runtime_types::sp_arithmetic::per_things::Perquintill;
                pub type Amount = ::core::primitive::u128;
                pub type Dropped = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Thawed {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "Thawed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An automatic funding of the deficit was made."]
            pub struct Funded {
                pub deficit: funded::Deficit,
            }
            pub mod funded {
                use super::runtime_types;
                pub type Deficit = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Funded {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "Funded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A receipt was transferred."]
            pub struct Transferred {
                pub from: transferred::From,
                pub to: transferred::To,
                pub index: transferred::Index,
            }
            pub mod transferred {
                use super::runtime_types;
                pub type From = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type To = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Transferred {
                const PALLET: &'static str = "Nis";
                const EVENT: &'static str = "Transferred";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod queue_totals {
                    use super::runtime_types;
                    pub type QueueTotals =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u32,
                            ::core::primitive::u128,
                        )>;
                }
                pub mod queues {
                    use super::runtime_types;
                    pub type Queues = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::pallet_nis::pallet::Bid<
                            ::core::primitive::u128,
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod summary {
                    use super::runtime_types;
                    pub type Summary = runtime_types::pallet_nis::pallet::SummaryRecord<
                        ::core::primitive::u32,
                        ::core::primitive::u128,
                    >;
                }
                pub mod receipts {
                    use super::runtime_types;
                    pub type Receipts = runtime_types::pallet_nis::pallet::ReceiptRecord<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u32,
                        ::core::primitive::u128,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The totals of items and balances within each queue. Saves a lot of storage reads in the"]
                #[doc = " case of sparsely packed queues."]
                #[doc = ""]
                #[doc = " The vector is indexed by duration in `Period`s, offset by one, so information on the queue"]
                #[doc = " whose duration is one `Period` would be storage `0`."]
                pub fn queue_totals(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queue_totals::QueueTotals,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "QueueTotals",
                        (),
                        [
                            40u8, 120u8, 43u8, 203u8, 97u8, 129u8, 61u8, 184u8, 137u8, 45u8, 201u8,
                            90u8, 227u8, 161u8, 52u8, 179u8, 9u8, 74u8, 104u8, 225u8, 209u8, 62u8,
                            69u8, 222u8, 124u8, 202u8, 36u8, 137u8, 183u8, 102u8, 234u8, 58u8,
                        ],
                    )
                }
                #[doc = " The queues of bids. Indexed by duration (in `Period`s)."]
                pub fn queues_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queues::Queues,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "Queues",
                        (),
                        [
                            144u8, 181u8, 173u8, 134u8, 6u8, 165u8, 174u8, 91u8, 75u8, 241u8,
                            142u8, 192u8, 246u8, 71u8, 132u8, 146u8, 181u8, 158u8, 125u8, 34u8,
                            5u8, 151u8, 136u8, 148u8, 228u8, 11u8, 226u8, 229u8, 8u8, 50u8, 205u8,
                            75u8,
                        ],
                    )
                }
                #[doc = " The queues of bids. Indexed by duration (in `Period`s)."]
                pub fn queues(
                    &self,
                    _0: types::queues::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::queues::Param0,
                    >,
                    types::queues::Queues,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "Queues",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            144u8, 181u8, 173u8, 134u8, 6u8, 165u8, 174u8, 91u8, 75u8, 241u8,
                            142u8, 192u8, 246u8, 71u8, 132u8, 146u8, 181u8, 158u8, 125u8, 34u8,
                            5u8, 151u8, 136u8, 148u8, 228u8, 11u8, 226u8, 229u8, 8u8, 50u8, 205u8,
                            75u8,
                        ],
                    )
                }
                #[doc = " Summary information over the general state."]
                pub fn summary(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::summary::Summary,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "Summary",
                        (),
                        [
                            106u8, 21u8, 103u8, 47u8, 211u8, 234u8, 50u8, 222u8, 25u8, 209u8, 67u8,
                            117u8, 111u8, 6u8, 231u8, 245u8, 109u8, 52u8, 177u8, 20u8, 179u8,
                            253u8, 251u8, 197u8, 218u8, 163u8, 229u8, 187u8, 172u8, 122u8, 126u8,
                            57u8,
                        ],
                    )
                }
                #[doc = " The currently outstanding receipts, indexed according to the order of creation."]
                pub fn receipts_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::receipts::Receipts,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "Receipts",
                        (),
                        [
                            123u8, 179u8, 0u8, 14u8, 5u8, 132u8, 165u8, 192u8, 163u8, 22u8, 174u8,
                            22u8, 252u8, 44u8, 167u8, 22u8, 116u8, 170u8, 186u8, 118u8, 131u8, 5u8,
                            237u8, 121u8, 35u8, 146u8, 206u8, 239u8, 155u8, 108u8, 46u8, 0u8,
                        ],
                    )
                }
                #[doc = " The currently outstanding receipts, indexed according to the order of creation."]
                pub fn receipts(
                    &self,
                    _0: types::receipts::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::receipts::Param0,
                    >,
                    types::receipts::Receipts,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Nis",
                        "Receipts",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            123u8, 179u8, 0u8, 14u8, 5u8, 132u8, 165u8, 192u8, 163u8, 22u8, 174u8,
                            22u8, 252u8, 44u8, 167u8, 22u8, 116u8, 170u8, 186u8, 118u8, 131u8, 5u8,
                            237u8, 121u8, 35u8, 146u8, 206u8, 239u8, 155u8, 108u8, 46u8, 0u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The treasury's pallet id, used for deriving its sovereign account ID."]
                pub fn pallet_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_support::PalletId,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "PalletId",
                        [
                            56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8,
                            161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8,
                            129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8,
                        ],
                    )
                }
                #[doc = " Number of duration queues in total. This sets the maximum duration supported, which is"]
                #[doc = " this value multiplied by `Period`."]
                pub fn queue_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "QueueCount",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Maximum number of items that may be in each duration queue."]
                #[doc = ""]
                #[doc = " Must be larger than zero."]
                pub fn max_queue_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "MaxQueueLen",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Portion of the queue which is free from ordering and just a FIFO."]
                #[doc = ""]
                #[doc = " Must be no greater than `MaxQueueLen`."]
                pub fn fifo_queue_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "FifoQueueLen",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The base period for the duration queues. This is the common multiple across all"]
                #[doc = " supported freezing durations that can be bid upon."]
                pub fn base_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "BasePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The minimum amount of funds that may be placed in a bid. Note that this"]
                #[doc = " does not actually limit the amount which may be represented in a receipt since bids may"]
                #[doc = " be split up by the system."]
                #[doc = ""]
                #[doc = " It should be at least big enough to ensure that there is no possible storage spam attack"]
                #[doc = " or queue-filling attack."]
                pub fn min_bid(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "MinBid",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The minimum amount of funds which may intentionally be left remaining under a single"]
                #[doc = " receipt."]
                pub fn min_receipt(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_arithmetic::per_things::Perquintill,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "MinReceipt",
                        [
                            184u8, 78u8, 161u8, 6u8, 214u8, 205u8, 82u8, 205u8, 126u8, 46u8, 7u8,
                            198u8, 186u8, 10u8, 66u8, 116u8, 191u8, 223u8, 17u8, 246u8, 196u8,
                            190u8, 222u8, 226u8, 62u8, 35u8, 191u8, 127u8, 60u8, 171u8, 85u8,
                            201u8,
                        ],
                    )
                }
                #[doc = " The number of blocks between consecutive attempts to dequeue bids and create receipts."]
                #[doc = ""]
                #[doc = " A larger value results in fewer storage hits each block, but a slower period to get to"]
                #[doc = " the target."]
                pub fn intake_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "IntakePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of bids that can consolidated into receipts in a single intake. A"]
                #[doc = " larger value here means less of the block available for transactions should there be a"]
                #[doc = " glut of bids."]
                pub fn max_intake_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_weights::weight_v2::Weight,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "MaxIntakeWeight",
                        [
                            149u8, 252u8, 129u8, 80u8, 169u8, 36u8, 79u8, 127u8, 240u8, 156u8,
                            56u8, 202u8, 219u8, 86u8, 5u8, 65u8, 245u8, 148u8, 138u8, 243u8, 210u8,
                            128u8, 234u8, 216u8, 240u8, 219u8, 123u8, 235u8, 21u8, 158u8, 237u8,
                            112u8,
                        ],
                    )
                }
                #[doc = " The maximum proportion which may be thawed and the period over which it is reset."]
                pub fn thaw_throttle(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<(
                    runtime_types::sp_arithmetic::per_things::Perquintill,
                    ::core::primitive::u32,
                )> {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Nis",
                        "ThawThrottle",
                        [
                            41u8, 240u8, 41u8, 161u8, 238u8, 241u8, 63u8, 205u8, 122u8, 230u8,
                            158u8, 65u8, 212u8, 229u8, 123u8, 215u8, 69u8, 204u8, 207u8, 193u8,
                            149u8, 229u8, 193u8, 245u8, 210u8, 63u8, 106u8, 42u8, 27u8, 182u8,
                            66u8, 167u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod nis_counterpart_balances {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_balances::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_balances::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer some liquid free balance to another account."]
                #[doc = ""]
                #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."]
                #[doc = "If the sender's account is below the existential deposit as a result"]
                #[doc = "of the transfer, the account will be reaped."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
                pub struct TransferAllowDeath {
                    pub dest: transfer_allow_death::Dest,
                    #[codec(compact)]
                    pub value: transfer_allow_death::Value,
                }
                pub mod transfer_allow_death {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAllowDeath {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "transfer_allow_death";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"]
                #[doc = "may be specified."]
                pub struct ForceTransfer {
                    pub source: force_transfer::Source,
                    pub dest: force_transfer::Dest,
                    #[codec(compact)]
                    pub value: force_transfer::Value,
                }
                pub mod force_transfer {
                    use super::runtime_types;
                    pub type Source = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceTransfer {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "force_transfer";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"]
                #[doc = "kill the origin account."]
                #[doc = ""]
                #[doc = "99% of the time you want [`transfer_allow_death`] instead."]
                #[doc = ""]
                #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"]
                pub struct TransferKeepAlive {
                    pub dest: transfer_keep_alive::Dest,
                    #[codec(compact)]
                    pub value: transfer_keep_alive::Value,
                }
                pub mod transfer_keep_alive {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Value = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferKeepAlive {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "transfer_keep_alive";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer the entire transferable balance from the caller account."]
                #[doc = ""]
                #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"]
                #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"]
                #[doc = "transferred by this function. To ensure that this function results in a killed account,"]
                #[doc = "you might need to prepare the account by removing any reference counters, storage"]
                #[doc = "deposits, etc..."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be Signed."]
                #[doc = ""]
                #[doc = "- `dest`: The recipient of the transfer."]
                #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"]
                #[doc = "  of the funds the account has, causing the sender account to be killed (false), or"]
                #[doc = "  transfer everything except at least the existential deposit, which will guarantee to"]
                #[doc = "  keep the sender account alive (true)."]
                pub struct TransferAll {
                    pub dest: transfer_all::Dest,
                    pub keep_alive: transfer_all::KeepAlive,
                }
                pub mod transfer_all {
                    use super::runtime_types;
                    pub type Dest = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type KeepAlive = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAll {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "transfer_all";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unreserve some balance from a user by force."]
                #[doc = ""]
                #[doc = "Can only be called by ROOT."]
                pub struct ForceUnreserve {
                    pub who: force_unreserve::Who,
                    pub amount: force_unreserve::Amount,
                }
                pub mod force_unreserve {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Amount = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnreserve {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "force_unreserve";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Upgrade a specified account."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `who`: The account to be upgraded."]
                #[doc = ""]
                #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"]
                #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"]
                #[doc = "possibility of churn)."]
                pub struct UpgradeAccounts {
                    pub who: upgrade_accounts::Who,
                }
                pub mod upgrade_accounts {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UpgradeAccounts {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "upgrade_accounts";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the regular balance of a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call is `root`."]
                pub struct ForceSetBalance {
                    pub who: force_set_balance::Who,
                    #[codec(compact)]
                    pub new_free: force_set_balance::NewFree,
                }
                pub mod force_set_balance {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type NewFree = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetBalance {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "force_set_balance";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Adjust the total issuance in a saturating way."]
                #[doc = ""]
                #[doc = "Can only be called by root and always needs a positive `delta`."]
                #[doc = ""]
                #[doc = "# Example"]
                pub struct ForceAdjustTotalIssuance {
                    pub direction: force_adjust_total_issuance::Direction,
                    #[codec(compact)]
                    pub delta: force_adjust_total_issuance::Delta,
                }
                pub mod force_adjust_total_issuance {
                    use super::runtime_types;
                    pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection;
                    pub type Delta = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "force_adjust_total_issuance";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Burn the specified liquid free balance from the origin account."]
                #[doc = ""]
                #[doc = "If the origin's account ends up below the existential deposit as a result"]
                #[doc = "of the burn and `keep_alive` is false, the account will be reaped."]
                #[doc = ""]
                #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"]
                #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."]
                pub struct Burn {
                    #[codec(compact)]
                    pub value: burn::Value,
                    pub keep_alive: burn::KeepAlive,
                }
                pub mod burn {
                    use super::runtime_types;
                    pub type Value = ::core::primitive::u128;
                    pub type KeepAlive = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Burn {
                    const PALLET: &'static str = "NisCounterpartBalances";
                    const CALL: &'static str = "burn";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Transfer some liquid free balance to another account."]
                #[doc = ""]
                #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."]
                #[doc = "If the sender's account is below the existential deposit as a result"]
                #[doc = "of the transfer, the account will be reaped."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
                pub fn transfer_allow_death(
                    &self,
                    dest: types::transfer_allow_death::Dest,
                    value: types::transfer_allow_death::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferAllowDeath>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "transfer_allow_death",
                        types::TransferAllowDeath { dest, value },
                        [
                            51u8, 166u8, 195u8, 10u8, 139u8, 218u8, 55u8, 130u8, 6u8, 194u8, 35u8,
                            140u8, 27u8, 205u8, 214u8, 222u8, 102u8, 43u8, 143u8, 145u8, 86u8,
                            219u8, 210u8, 147u8, 13u8, 39u8, 51u8, 21u8, 237u8, 179u8, 132u8,
                            130u8,
                        ],
                    )
                }
                #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"]
                #[doc = "may be specified."]
                pub fn force_transfer(
                    &self,
                    source: types::force_transfer::Source,
                    dest: types::force_transfer::Dest,
                    value: types::force_transfer::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceTransfer>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "force_transfer",
                        types::ForceTransfer {
                            source,
                            dest,
                            value,
                        },
                        [
                            154u8, 93u8, 222u8, 27u8, 12u8, 248u8, 63u8, 213u8, 224u8, 86u8, 250u8,
                            153u8, 249u8, 102u8, 83u8, 160u8, 79u8, 125u8, 105u8, 222u8, 77u8,
                            180u8, 90u8, 105u8, 81u8, 217u8, 60u8, 25u8, 213u8, 51u8, 185u8, 96u8,
                        ],
                    )
                }
                #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"]
                #[doc = "kill the origin account."]
                #[doc = ""]
                #[doc = "99% of the time you want [`transfer_allow_death`] instead."]
                #[doc = ""]
                #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"]
                pub fn transfer_keep_alive(
                    &self,
                    dest: types::transfer_keep_alive::Dest,
                    value: types::transfer_keep_alive::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferKeepAlive>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "transfer_keep_alive",
                        types::TransferKeepAlive { dest, value },
                        [
                            245u8, 14u8, 190u8, 193u8, 32u8, 210u8, 74u8, 92u8, 25u8, 182u8, 76u8,
                            55u8, 247u8, 83u8, 114u8, 75u8, 143u8, 236u8, 117u8, 25u8, 54u8, 157u8,
                            208u8, 207u8, 233u8, 89u8, 70u8, 161u8, 235u8, 242u8, 222u8, 59u8,
                        ],
                    )
                }
                #[doc = "Transfer the entire transferable balance from the caller account."]
                #[doc = ""]
                #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"]
                #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"]
                #[doc = "transferred by this function. To ensure that this function results in a killed account,"]
                #[doc = "you might need to prepare the account by removing any reference counters, storage"]
                #[doc = "deposits, etc..."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be Signed."]
                #[doc = ""]
                #[doc = "- `dest`: The recipient of the transfer."]
                #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"]
                #[doc = "  of the funds the account has, causing the sender account to be killed (false), or"]
                #[doc = "  transfer everything except at least the existential deposit, which will guarantee to"]
                #[doc = "  keep the sender account alive (true)."]
                pub fn transfer_all(
                    &self,
                    dest: types::transfer_all::Dest,
                    keep_alive: types::transfer_all::KeepAlive,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferAll>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "transfer_all",
                        types::TransferAll { dest, keep_alive },
                        [
                            105u8, 132u8, 49u8, 144u8, 195u8, 250u8, 34u8, 46u8, 213u8, 248u8,
                            112u8, 188u8, 81u8, 228u8, 136u8, 18u8, 67u8, 172u8, 37u8, 38u8, 238u8,
                            9u8, 34u8, 15u8, 67u8, 34u8, 148u8, 195u8, 223u8, 29u8, 154u8, 6u8,
                        ],
                    )
                }
                #[doc = "Unreserve some balance from a user by force."]
                #[doc = ""]
                #[doc = "Can only be called by ROOT."]
                pub fn force_unreserve(
                    &self,
                    who: types::force_unreserve::Who,
                    amount: types::force_unreserve::Amount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceUnreserve>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "force_unreserve",
                        types::ForceUnreserve { who, amount },
                        [
                            142u8, 151u8, 64u8, 205u8, 46u8, 64u8, 62u8, 122u8, 108u8, 49u8, 223u8,
                            140u8, 120u8, 153u8, 35u8, 165u8, 187u8, 38u8, 157u8, 200u8, 123u8,
                            199u8, 198u8, 168u8, 208u8, 159u8, 39u8, 134u8, 92u8, 103u8, 84u8,
                            171u8,
                        ],
                    )
                }
                #[doc = "Upgrade a specified account."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `who`: The account to be upgraded."]
                #[doc = ""]
                #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"]
                #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"]
                #[doc = "possibility of churn)."]
                pub fn upgrade_accounts(
                    &self,
                    who: types::upgrade_accounts::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::UpgradeAccounts>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "upgrade_accounts",
                        types::UpgradeAccounts { who },
                        [
                            66u8, 200u8, 179u8, 104u8, 65u8, 2u8, 101u8, 56u8, 130u8, 161u8, 224u8,
                            233u8, 255u8, 124u8, 70u8, 122u8, 8u8, 49u8, 103u8, 178u8, 68u8, 47u8,
                            214u8, 166u8, 217u8, 116u8, 178u8, 50u8, 212u8, 164u8, 98u8, 226u8,
                        ],
                    )
                }
                #[doc = "Set the regular balance of a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call is `root`."]
                pub fn force_set_balance(
                    &self,
                    who: types::force_set_balance::Who,
                    new_free: types::force_set_balance::NewFree,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetBalance>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "force_set_balance",
                        types::ForceSetBalance { who, new_free },
                        [
                            114u8, 229u8, 59u8, 204u8, 180u8, 83u8, 17u8, 4u8, 59u8, 4u8, 55u8,
                            39u8, 151u8, 196u8, 124u8, 60u8, 209u8, 65u8, 193u8, 11u8, 44u8, 164u8,
                            116u8, 93u8, 169u8, 30u8, 199u8, 165u8, 55u8, 231u8, 223u8, 43u8,
                        ],
                    )
                }
                #[doc = "Adjust the total issuance in a saturating way."]
                #[doc = ""]
                #[doc = "Can only be called by root and always needs a positive `delta`."]
                #[doc = ""]
                #[doc = "# Example"]
                pub fn force_adjust_total_issuance(
                    &self,
                    direction: types::force_adjust_total_issuance::Direction,
                    delta: types::force_adjust_total_issuance::Delta,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceAdjustTotalIssuance,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "force_adjust_total_issuance",
                        types::ForceAdjustTotalIssuance { direction, delta },
                        [
                            208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8,
                            190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8,
                            176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8,
                            202u8,
                        ],
                    )
                }
                #[doc = "Burn the specified liquid free balance from the origin account."]
                #[doc = ""]
                #[doc = "If the origin's account ends up below the existential deposit as a result"]
                #[doc = "of the burn and `keep_alive` is false, the account will be reaped."]
                #[doc = ""]
                #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"]
                #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."]
                pub fn burn(
                    &self,
                    value: types::burn::Value,
                    keep_alive: types::burn::KeepAlive,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Burn>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "NisCounterpartBalances",
                        "burn",
                        types::Burn { value, keep_alive },
                        [
                            176u8, 64u8, 7u8, 109u8, 16u8, 44u8, 145u8, 125u8, 147u8, 152u8, 130u8,
                            114u8, 221u8, 201u8, 150u8, 162u8, 118u8, 71u8, 52u8, 92u8, 240u8,
                            116u8, 203u8, 98u8, 5u8, 22u8, 43u8, 102u8, 94u8, 208u8, 101u8, 57u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_balances::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was created with some free balance."]
            pub struct Endowed {
                pub account: endowed::Account,
                pub free_balance: endowed::FreeBalance,
            }
            pub mod endowed {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type FreeBalance = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Endowed {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Endowed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"]
            #[doc = "resulting in an outright loss."]
            pub struct DustLost {
                pub account: dust_lost::Account,
                pub amount: dust_lost::Amount,
            }
            pub mod dust_lost {
                use super::runtime_types;
                pub type Account = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DustLost {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "DustLost";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Transfer succeeded."]
            pub struct Transfer {
                pub from: transfer::From,
                pub to: transfer::To,
                pub amount: transfer::Amount,
            }
            pub mod transfer {
                use super::runtime_types;
                pub type From = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type To = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Transfer {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Transfer";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A balance was set by root."]
            pub struct BalanceSet {
                pub who: balance_set::Who,
                pub free: balance_set::Free,
            }
            pub mod balance_set {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Free = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BalanceSet {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "BalanceSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was reserved (moved from free to reserved)."]
            pub struct Reserved {
                pub who: reserved::Who,
                pub amount: reserved::Amount,
            }
            pub mod reserved {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Reserved {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Reserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was unreserved (moved from reserved to free)."]
            pub struct Unreserved {
                pub who: unreserved::Who,
                pub amount: unreserved::Amount,
            }
            pub mod unreserved {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unreserved {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Unreserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was moved from the reserve of the first account to the second account."]
            #[doc = "Final argument indicates the destination balance type."]
            pub struct ReserveRepatriated {
                pub from: reserve_repatriated::From,
                pub to: reserve_repatriated::To,
                pub amount: reserve_repatriated::Amount,
                pub destination_status: reserve_repatriated::DestinationStatus,
            }
            pub mod reserve_repatriated {
                use super::runtime_types;
                pub type From = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type To = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
                pub type DestinationStatus =
                    runtime_types::frame_support::traits::tokens::misc::BalanceStatus;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ReserveRepatriated {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "ReserveRepatriated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was deposited (e.g. for transaction fees)."]
            pub struct Deposit {
                pub who: deposit::Who,
                pub amount: deposit::Amount,
            }
            pub mod deposit {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Deposit {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Deposit";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."]
            pub struct Withdraw {
                pub who: withdraw::Who,
                pub amount: withdraw::Amount,
            }
            pub mod withdraw {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Withdraw {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Withdraw";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was removed from the account (e.g. for misbehavior)."]
            pub struct Slashed {
                pub who: slashed::Who,
                pub amount: slashed::Amount,
            }
            pub mod slashed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Slashed {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Slashed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was minted into an account."]
            pub struct Minted {
                pub who: minted::Who,
                pub amount: minted::Amount,
            }
            pub mod minted {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Minted {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Minted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was burned from an account."]
            pub struct Burned {
                pub who: burned::Who,
                pub amount: burned::Amount,
            }
            pub mod burned {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Burned {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Burned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was suspended from an account (it can be restored later)."]
            pub struct Suspended {
                pub who: suspended::Who,
                pub amount: suspended::Amount,
            }
            pub mod suspended {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Suspended {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Suspended";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some amount was restored into an account."]
            pub struct Restored {
                pub who: restored::Who,
                pub amount: restored::Amount,
            }
            pub mod restored {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Restored {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Restored";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was upgraded."]
            pub struct Upgraded {
                pub who: upgraded::Who,
            }
            pub mod upgraded {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Upgraded {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Upgraded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."]
            pub struct Issued {
                pub amount: issued::Amount,
            }
            pub mod issued {
                use super::runtime_types;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Issued {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Issued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."]
            pub struct Rescinded {
                pub amount: rescinded::Amount,
            }
            pub mod rescinded {
                use super::runtime_types;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Rescinded {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Rescinded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was locked."]
            pub struct Locked {
                pub who: locked::Who,
                pub amount: locked::Amount,
            }
            pub mod locked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Locked {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Locked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was unlocked."]
            pub struct Unlocked {
                pub who: unlocked::Who,
                pub amount: unlocked::Amount,
            }
            pub mod unlocked {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unlocked {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Unlocked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was frozen."]
            pub struct Frozen {
                pub who: frozen::Who,
                pub amount: frozen::Amount,
            }
            pub mod frozen {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Frozen {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Frozen";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some balance was thawed."]
            pub struct Thawed {
                pub who: thawed::Who,
                pub amount: thawed::Amount,
            }
            pub mod thawed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Thawed {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "Thawed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The `TotalIssuance` was forcefully changed."]
            pub struct TotalIssuanceForced {
                pub old: total_issuance_forced::Old,
                pub new: total_issuance_forced::New,
            }
            pub mod total_issuance_forced {
                use super::runtime_types;
                pub type Old = ::core::primitive::u128;
                pub type New = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced {
                const PALLET: &'static str = "NisCounterpartBalances";
                const EVENT: &'static str = "TotalIssuanceForced";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod total_issuance {
                    use super::runtime_types;
                    pub type TotalIssuance = ::core::primitive::u128;
                }
                pub mod inactive_issuance {
                    use super::runtime_types;
                    pub type InactiveIssuance = ::core::primitive::u128;
                }
                pub mod account {
                    use super::runtime_types;
                    pub type Account =
                        runtime_types::pallet_balances::types::AccountData<::core::primitive::u128>;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod locks {
                    use super::runtime_types;
                    pub type Locks =
                        runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<
                            runtime_types::pallet_balances::types::BalanceLock<
                                ::core::primitive::u128,
                            >,
                        >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod reserves {
                    use super::runtime_types;
                    pub type Reserves = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::pallet_balances::types::ReserveData<
                            [::core::primitive::u8; 8usize],
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod holds {
                    use super::runtime_types;
                    pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::frame_support::traits::tokens::misc::IdAmount<
                            runtime_types::rococo_runtime::RuntimeHoldReason,
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod freezes {
                    use super::runtime_types;
                    pub type Freezes = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        runtime_types::frame_support::traits::tokens::misc::IdAmount<
                            (),
                            ::core::primitive::u128,
                        >,
                    >;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The total units issued in the system."]
                pub fn total_issuance(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::total_issuance::TotalIssuance,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "TotalIssuance",
                        (),
                        [
                            116u8, 70u8, 119u8, 194u8, 69u8, 37u8, 116u8, 206u8, 171u8, 70u8,
                            171u8, 210u8, 226u8, 111u8, 184u8, 204u8, 206u8, 11u8, 68u8, 72u8,
                            255u8, 19u8, 194u8, 11u8, 27u8, 194u8, 81u8, 204u8, 59u8, 224u8, 202u8,
                            185u8,
                        ],
                    )
                }
                #[doc = " The total units of outstanding deactivated balance in the system."]
                pub fn inactive_issuance(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::inactive_issuance::InactiveIssuance,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "InactiveIssuance",
                        (),
                        [
                            212u8, 185u8, 19u8, 50u8, 250u8, 72u8, 173u8, 50u8, 4u8, 104u8, 161u8,
                            249u8, 77u8, 247u8, 204u8, 248u8, 11u8, 18u8, 57u8, 4u8, 82u8, 110u8,
                            30u8, 216u8, 16u8, 37u8, 87u8, 67u8, 189u8, 235u8, 214u8, 155u8,
                        ],
                    )
                }
                #[doc = " The Balances pallet example of storing the balance of an account."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "    type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " You can also store the balance of an account in the `System` pallet."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "   type AccountStore = System"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"]
                #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"]
                #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."]
                #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."]
                pub fn account_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::account::Account,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Account",
                        (),
                        [
                            213u8, 38u8, 200u8, 69u8, 218u8, 0u8, 112u8, 181u8, 160u8, 23u8, 96u8,
                            90u8, 3u8, 88u8, 126u8, 22u8, 103u8, 74u8, 64u8, 69u8, 29u8, 247u8,
                            18u8, 17u8, 234u8, 143u8, 189u8, 22u8, 247u8, 194u8, 154u8, 249u8,
                        ],
                    )
                }
                #[doc = " The Balances pallet example of storing the balance of an account."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "    type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " You can also store the balance of an account in the `System` pallet."]
                #[doc = ""]
                #[doc = " # Example"]
                #[doc = ""]
                #[doc = " ```nocompile"]
                #[doc = "  impl pallet_balances::Config for Runtime {"]
                #[doc = "   type AccountStore = System"]
                #[doc = "  }"]
                #[doc = " ```"]
                #[doc = ""]
                #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"]
                #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"]
                #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."]
                #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."]
                pub fn account(
                    &self,
                    _0: types::account::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::account::Param0,
                    >,
                    types::account::Account,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Account",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            213u8, 38u8, 200u8, 69u8, 218u8, 0u8, 112u8, 181u8, 160u8, 23u8, 96u8,
                            90u8, 3u8, 88u8, 126u8, 22u8, 103u8, 74u8, 64u8, 69u8, 29u8, 247u8,
                            18u8, 17u8, 234u8, 143u8, 189u8, 22u8, 247u8, 194u8, 154u8, 249u8,
                        ],
                    )
                }
                #[doc = " Any liquidity locks on some account balances."]
                #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn locks_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::locks::Locks,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Locks",
                        (),
                        [
                            10u8, 223u8, 55u8, 0u8, 249u8, 69u8, 168u8, 41u8, 75u8, 35u8, 120u8,
                            167u8, 18u8, 132u8, 9u8, 20u8, 91u8, 51u8, 27u8, 69u8, 136u8, 187u8,
                            13u8, 220u8, 163u8, 122u8, 26u8, 141u8, 174u8, 249u8, 85u8, 37u8,
                        ],
                    )
                }
                #[doc = " Any liquidity locks on some account balances."]
                #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn locks(
                    &self,
                    _0: types::locks::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::locks::Param0,
                    >,
                    types::locks::Locks,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Locks",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            10u8, 223u8, 55u8, 0u8, 249u8, 69u8, 168u8, 41u8, 75u8, 35u8, 120u8,
                            167u8, 18u8, 132u8, 9u8, 20u8, 91u8, 51u8, 27u8, 69u8, 136u8, 187u8,
                            13u8, 220u8, 163u8, 122u8, 26u8, 141u8, 174u8, 249u8, 85u8, 37u8,
                        ],
                    )
                }
                #[doc = " Named reserves on some account balances."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn reserves_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::reserves::Reserves,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Reserves",
                        (),
                        [
                            112u8, 10u8, 241u8, 77u8, 64u8, 187u8, 106u8, 159u8, 13u8, 153u8,
                            140u8, 178u8, 182u8, 50u8, 1u8, 55u8, 149u8, 92u8, 196u8, 229u8, 170u8,
                            106u8, 193u8, 88u8, 255u8, 244u8, 2u8, 193u8, 62u8, 235u8, 204u8, 91u8,
                        ],
                    )
                }
                #[doc = " Named reserves on some account balances."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn reserves(
                    &self,
                    _0: types::reserves::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::reserves::Param0,
                    >,
                    types::reserves::Reserves,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Reserves",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            112u8, 10u8, 241u8, 77u8, 64u8, 187u8, 106u8, 159u8, 13u8, 153u8,
                            140u8, 178u8, 182u8, 50u8, 1u8, 55u8, 149u8, 92u8, 196u8, 229u8, 170u8,
                            106u8, 193u8, 88u8, 255u8, 244u8, 2u8, 193u8, 62u8, 235u8, 204u8, 91u8,
                        ],
                    )
                }
                #[doc = " Holds on account balances."]
                pub fn holds_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::holds::Holds,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Holds",
                        (),
                        [
                            6u8, 68u8, 133u8, 169u8, 100u8, 31u8, 19u8, 164u8, 80u8, 22u8, 132u8,
                            73u8, 190u8, 31u8, 34u8, 82u8, 132u8, 79u8, 92u8, 15u8, 204u8, 149u8,
                            109u8, 203u8, 169u8, 162u8, 250u8, 223u8, 182u8, 170u8, 251u8, 178u8,
                        ],
                    )
                }
                #[doc = " Holds on account balances."]
                pub fn holds(
                    &self,
                    _0: types::holds::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::holds::Param0,
                    >,
                    types::holds::Holds,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Holds",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            6u8, 68u8, 133u8, 169u8, 100u8, 31u8, 19u8, 164u8, 80u8, 22u8, 132u8,
                            73u8, 190u8, 31u8, 34u8, 82u8, 132u8, 79u8, 92u8, 15u8, 204u8, 149u8,
                            109u8, 203u8, 169u8, 162u8, 250u8, 223u8, 182u8, 170u8, 251u8, 178u8,
                        ],
                    )
                }
                #[doc = " Freeze locks on account balances."]
                pub fn freezes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::freezes::Freezes,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Freezes",
                        (),
                        [
                            69u8, 49u8, 165u8, 76u8, 135u8, 142u8, 179u8, 118u8, 50u8, 109u8, 53u8,
                            112u8, 110u8, 94u8, 30u8, 93u8, 173u8, 38u8, 27u8, 142u8, 19u8, 5u8,
                            163u8, 4u8, 68u8, 218u8, 179u8, 224u8, 118u8, 218u8, 115u8, 64u8,
                        ],
                    )
                }
                #[doc = " Freeze locks on account balances."]
                pub fn freezes(
                    &self,
                    _0: types::freezes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::freezes::Param0,
                    >,
                    types::freezes::Freezes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "Freezes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            69u8, 49u8, 165u8, 76u8, 135u8, 142u8, 179u8, 118u8, 50u8, 109u8, 53u8,
                            112u8, 110u8, 94u8, 30u8, 93u8, 173u8, 38u8, 27u8, 142u8, 19u8, 5u8,
                            163u8, 4u8, 68u8, 218u8, 179u8, 224u8, 118u8, 218u8, 115u8, 64u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!"]
                #[doc = ""]
                #[doc = " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for"]
                #[doc = " this pallet. However, you do so at your own risk: this will open up a major DoS vector."]
                #[doc = " In case you have multiple sources of provider references, you may also get unexpected"]
                #[doc = " behaviour if you set this to zero."]
                #[doc = ""]
                #[doc = " Bottom line: Do yourself a favour and make it at least one!"]
                pub fn existential_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "ExistentialDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The maximum number of locks that should exist on an account."]
                #[doc = " Not strictly enforced, but used for weight estimation."]
                #[doc = ""]
                #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn max_locks(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "MaxLocks",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of named reserves that can exist on an account."]
                #[doc = ""]
                #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"]
                pub fn max_reserves(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "MaxReserves",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of individual freeze locks that can exist on an account at any time."]
                pub fn max_freezes(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "NisCounterpartBalances",
                        "MaxFreezes",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod parachains_origin {
        use super::root_mod;
        use super::runtime_types;
    }
    pub mod configuration {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::configuration::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::configuration::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the validation upgrade cooldown."]
                pub struct SetValidationUpgradeCooldown {
                    pub new: set_validation_upgrade_cooldown::New,
                }
                pub mod set_validation_upgrade_cooldown {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetValidationUpgradeCooldown {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_validation_upgrade_cooldown";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the validation upgrade delay."]
                pub struct SetValidationUpgradeDelay {
                    pub new: set_validation_upgrade_delay::New,
                }
                pub mod set_validation_upgrade_delay {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetValidationUpgradeDelay {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_validation_upgrade_delay";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the acceptance period for an included candidate."]
                pub struct SetCodeRetentionPeriod {
                    pub new: set_code_retention_period::New,
                }
                pub mod set_code_retention_period {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCodeRetentionPeriod {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_code_retention_period";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the max validation code size for incoming upgrades."]
                pub struct SetMaxCodeSize {
                    pub new: set_max_code_size::New,
                }
                pub mod set_max_code_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxCodeSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_code_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the max POV block size for incoming upgrades."]
                pub struct SetMaxPovSize {
                    pub new: set_max_pov_size::New,
                }
                pub mod set_max_pov_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxPovSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_pov_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the max head data size for paras."]
                pub struct SetMaxHeadDataSize {
                    pub new: set_max_head_data_size::New,
                }
                pub mod set_max_head_data_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxHeadDataSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_head_data_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the number of coretime execution cores."]
                #[doc = ""]
                #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"]
                #[doc = "this, if you really know what you are doing!"]
                pub struct SetCoretimeCores {
                    pub new: set_coretime_cores::New,
                }
                pub mod set_coretime_cores {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCoretimeCores {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_coretime_cores";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the parachain validator-group rotation frequency"]
                pub struct SetGroupRotationFrequency {
                    pub new: set_group_rotation_frequency::New,
                }
                pub mod set_group_rotation_frequency {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetGroupRotationFrequency {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_group_rotation_frequency";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the availability period for paras."]
                pub struct SetParasAvailabilityPeriod {
                    pub new: set_paras_availability_period::New,
                }
                pub mod set_paras_availability_period {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetParasAvailabilityPeriod {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_paras_availability_period";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."]
                pub struct SetSchedulingLookahead {
                    pub new: set_scheduling_lookahead::New,
                }
                pub mod set_scheduling_lookahead {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSchedulingLookahead {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_scheduling_lookahead";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the maximum number of validators to assign to any core."]
                pub struct SetMaxValidatorsPerCore {
                    pub new: set_max_validators_per_core::New,
                }
                pub mod set_max_validators_per_core {
                    use super::runtime_types;
                    pub type New = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxValidatorsPerCore {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_validators_per_core";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the maximum number of validators to use in parachain consensus."]
                pub struct SetMaxValidators {
                    pub new: set_max_validators::New,
                }
                pub mod set_max_validators {
                    use super::runtime_types;
                    pub type New = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxValidators {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_validators";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the dispute period, in number of sessions to keep for disputes."]
                pub struct SetDisputePeriod {
                    pub new: set_dispute_period::New,
                }
                pub mod set_dispute_period {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetDisputePeriod {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_dispute_period";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the dispute post conclusion acceptance period."]
                pub struct SetDisputePostConclusionAcceptancePeriod {
                    pub new: set_dispute_post_conclusion_acceptance_period::New,
                }
                pub mod set_dispute_post_conclusion_acceptance_period {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic
                    for SetDisputePostConclusionAcceptancePeriod
                {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_dispute_post_conclusion_acceptance_period";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the no show slots, in number of number of consensus slots."]
                #[doc = "Must be at least 1."]
                pub struct SetNoShowSlots {
                    pub new: set_no_show_slots::New,
                }
                pub mod set_no_show_slots {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNoShowSlots {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_no_show_slots";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the total number of delay tranches."]
                pub struct SetNDelayTranches {
                    pub new: set_n_delay_tranches::New,
                }
                pub mod set_n_delay_tranches {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNDelayTranches {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_n_delay_tranches";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the zeroth delay tranche width."]
                pub struct SetZerothDelayTrancheWidth {
                    pub new: set_zeroth_delay_tranche_width::New,
                }
                pub mod set_zeroth_delay_tranche_width {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetZerothDelayTrancheWidth {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_zeroth_delay_tranche_width";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the number of validators needed to approve a block."]
                pub struct SetNeededApprovals {
                    pub new: set_needed_approvals::New,
                }
                pub mod set_needed_approvals {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNeededApprovals {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_needed_approvals";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."]
                pub struct SetRelayVrfModuloSamples {
                    pub new: set_relay_vrf_modulo_samples::New,
                }
                pub mod set_relay_vrf_modulo_samples {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRelayVrfModuloSamples {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_relay_vrf_modulo_samples";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."]
                pub struct SetMaxUpwardQueueCount {
                    pub new: set_max_upward_queue_count::New,
                }
                pub mod set_max_upward_queue_count {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxUpwardQueueCount {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_upward_queue_count";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"]
                #[doc = "once."]
                pub struct SetMaxUpwardQueueSize {
                    pub new: set_max_upward_queue_size::New,
                }
                pub mod set_max_upward_queue_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxUpwardQueueSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_upward_queue_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the critical downward message size."]
                pub struct SetMaxDownwardMessageSize {
                    pub new: set_max_downward_message_size::New,
                }
                pub mod set_max_downward_message_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxDownwardMessageSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_downward_message_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."]
                pub struct SetMaxUpwardMessageSize {
                    pub new: set_max_upward_message_size::New,
                }
                pub mod set_max_upward_message_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxUpwardMessageSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_upward_message_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum number of messages that a candidate can contain."]
                pub struct SetMaxUpwardMessageNumPerCandidate {
                    pub new: set_max_upward_message_num_per_candidate::New,
                }
                pub mod set_max_upward_message_num_per_candidate {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxUpwardMessageNumPerCandidate {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_max_upward_message_num_per_candidate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the number of sessions after which an HRMP open channel request expires."]
                pub struct SetHrmpOpenRequestTtl {
                    pub new: set_hrmp_open_request_ttl::New,
                }
                pub mod set_hrmp_open_request_ttl {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpOpenRequestTtl {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_open_request_ttl";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."]
                pub struct SetHrmpSenderDeposit {
                    pub new: set_hrmp_sender_deposit::New,
                }
                pub mod set_hrmp_sender_deposit {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpSenderDeposit {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_sender_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"]
                #[doc = "channel."]
                pub struct SetHrmpRecipientDeposit {
                    pub new: set_hrmp_recipient_deposit::New,
                }
                pub mod set_hrmp_recipient_deposit {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpRecipientDeposit {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_recipient_deposit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."]
                pub struct SetHrmpChannelMaxCapacity {
                    pub new: set_hrmp_channel_max_capacity::New,
                }
                pub mod set_hrmp_channel_max_capacity {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpChannelMaxCapacity {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_channel_max_capacity";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."]
                pub struct SetHrmpChannelMaxTotalSize {
                    pub new: set_hrmp_channel_max_total_size::New,
                }
                pub mod set_hrmp_channel_max_total_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpChannelMaxTotalSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_channel_max_total_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."]
                pub struct SetHrmpMaxParachainInboundChannels {
                    pub new: set_hrmp_max_parachain_inbound_channels::New,
                }
                pub mod set_hrmp_max_parachain_inbound_channels {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpMaxParachainInboundChannels {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_max_parachain_inbound_channels";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."]
                pub struct SetHrmpChannelMaxMessageSize {
                    pub new: set_hrmp_channel_max_message_size::New,
                }
                pub mod set_hrmp_channel_max_message_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpChannelMaxMessageSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_channel_max_message_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."]
                pub struct SetHrmpMaxParachainOutboundChannels {
                    pub new: set_hrmp_max_parachain_outbound_channels::New,
                }
                pub mod set_hrmp_max_parachain_outbound_channels {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpMaxParachainOutboundChannels {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_max_parachain_outbound_channels";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."]
                pub struct SetHrmpMaxMessageNumPerCandidate {
                    pub new: set_hrmp_max_message_num_per_candidate::New,
                }
                pub mod set_hrmp_max_message_num_per_candidate {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetHrmpMaxMessageNumPerCandidate {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_hrmp_max_message_num_per_candidate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."]
                pub struct SetPvfVotingTtl {
                    pub new: set_pvf_voting_ttl::New,
                }
                pub mod set_pvf_voting_ttl {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetPvfVotingTtl {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_pvf_voting_ttl";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"]
                #[doc = "upgrade taking place."]
                #[doc = ""]
                #[doc = "See the field documentation for information and constraints for the new value."]
                pub struct SetMinimumValidationUpgradeDelay {
                    pub new: set_minimum_validation_upgrade_delay::New,
                }
                pub mod set_minimum_validation_upgrade_delay {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMinimumValidationUpgradeDelay {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_minimum_validation_upgrade_delay";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Setting this to true will disable consistency checks for the configuration setters."]
                #[doc = "Use with caution."]
                pub struct SetBypassConsistencyCheck {
                    pub new: set_bypass_consistency_check::New,
                }
                pub mod set_bypass_consistency_check {
                    use super::runtime_types;
                    pub type New = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetBypassConsistencyCheck {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_bypass_consistency_check";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the asynchronous backing parameters."]
                pub struct SetAsyncBackingParams {
                    pub new: set_async_backing_params::New,
                }
                pub mod set_async_backing_params {
                    use super::runtime_types;
                    pub type New =
                        runtime_types::polkadot_primitives::v8::async_backing::AsyncBackingParams;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetAsyncBackingParams {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_async_backing_params";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set PVF executor parameters."]
                pub struct SetExecutorParams {
                    pub new: set_executor_params::New,
                }
                pub mod set_executor_params {
                    use super::runtime_types;
                    pub type New =
                        runtime_types::polkadot_primitives::v8::executor_params::ExecutorParams;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetExecutorParams {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_executor_params";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the on demand (parathreads) base fee."]
                pub struct SetOnDemandBaseFee {
                    pub new: set_on_demand_base_fee::New,
                }
                pub mod set_on_demand_base_fee {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandBaseFee {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_on_demand_base_fee";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the on demand (parathreads) fee variability."]
                pub struct SetOnDemandFeeVariability {
                    pub new: set_on_demand_fee_variability::New,
                }
                pub mod set_on_demand_fee_variability {
                    use super::runtime_types;
                    pub type New = runtime_types::sp_arithmetic::per_things::Perbill;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandFeeVariability {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_on_demand_fee_variability";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the on demand (parathreads) queue max size."]
                pub struct SetOnDemandQueueMaxSize {
                    pub new: set_on_demand_queue_max_size::New,
                }
                pub mod set_on_demand_queue_max_size {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandQueueMaxSize {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_on_demand_queue_max_size";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the on demand (parathreads) fee variability."]
                pub struct SetOnDemandTargetQueueUtilization {
                    pub new: set_on_demand_target_queue_utilization::New,
                }
                pub mod set_on_demand_target_queue_utilization {
                    use super::runtime_types;
                    pub type New = runtime_types::sp_arithmetic::per_things::Perbill;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandTargetQueueUtilization {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_on_demand_target_queue_utilization";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the minimum backing votes threshold."]
                pub struct SetMinimumBackingVotes {
                    pub new: set_minimum_backing_votes::New,
                }
                pub mod set_minimum_backing_votes {
                    use super::runtime_types;
                    pub type New = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMinimumBackingVotes {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_minimum_backing_votes";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set/Unset a node feature."]
                pub struct SetNodeFeature {
                    pub index: set_node_feature::Index,
                    pub value: set_node_feature::Value,
                }
                pub mod set_node_feature {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u8;
                    pub type Value = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNodeFeature {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_node_feature";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set approval-voting-params."]
                pub struct SetApprovalVotingParams {
                    pub new: set_approval_voting_params::New,
                }
                pub mod set_approval_voting_params {
                    use super::runtime_types;
                    pub type New = runtime_types::polkadot_primitives::v8::ApprovalVotingParams;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetApprovalVotingParams {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_approval_voting_params";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set scheduler-params."]
                pub struct SetSchedulerParams {
                    pub new: set_scheduler_params::New,
                }
                pub mod set_scheduler_params {
                    use super::runtime_types;
                    pub type New = runtime_types::polkadot_primitives::v8::SchedulerParams<
                        ::core::primitive::u32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSchedulerParams {
                    const PALLET: &'static str = "Configuration";
                    const CALL: &'static str = "set_scheduler_params";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Set the validation upgrade cooldown."]
                pub fn set_validation_upgrade_cooldown(
                    &self,
                    new: types::set_validation_upgrade_cooldown::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetValidationUpgradeCooldown,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_validation_upgrade_cooldown",
                        types::SetValidationUpgradeCooldown { new },
                        [
                            233u8, 224u8, 19u8, 198u8, 27u8, 104u8, 64u8, 248u8, 223u8, 51u8,
                            175u8, 162u8, 183u8, 43u8, 108u8, 246u8, 162u8, 210u8, 53u8, 56u8,
                            174u8, 203u8, 79u8, 143u8, 13u8, 101u8, 100u8, 11u8, 127u8, 76u8, 71u8,
                            228u8,
                        ],
                    )
                }
                #[doc = "Set the validation upgrade delay."]
                pub fn set_validation_upgrade_delay(
                    &self,
                    new: types::set_validation_upgrade_delay::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetValidationUpgradeDelay,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_validation_upgrade_delay",
                        types::SetValidationUpgradeDelay { new },
                        [
                            13u8, 139u8, 210u8, 115u8, 20u8, 121u8, 55u8, 118u8, 101u8, 236u8,
                            95u8, 79u8, 46u8, 44u8, 129u8, 129u8, 60u8, 198u8, 13u8, 17u8, 115u8,
                            187u8, 181u8, 37u8, 75u8, 153u8, 13u8, 196u8, 49u8, 204u8, 26u8, 198u8,
                        ],
                    )
                }
                #[doc = "Set the acceptance period for an included candidate."]
                pub fn set_code_retention_period(
                    &self,
                    new: types::set_code_retention_period::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetCodeRetentionPeriod,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_code_retention_period",
                        types::SetCodeRetentionPeriod { new },
                        [
                            169u8, 77u8, 107u8, 175u8, 172u8, 177u8, 169u8, 194u8, 219u8, 6u8,
                            192u8, 40u8, 55u8, 241u8, 128u8, 111u8, 95u8, 67u8, 173u8, 247u8,
                            220u8, 66u8, 45u8, 76u8, 108u8, 137u8, 220u8, 194u8, 86u8, 41u8, 245u8,
                            226u8,
                        ],
                    )
                }
                #[doc = "Set the max validation code size for incoming upgrades."]
                pub fn set_max_code_size(
                    &self,
                    new: types::set_max_code_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxCodeSize>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_code_size",
                        types::SetMaxCodeSize { new },
                        [
                            122u8, 74u8, 244u8, 226u8, 89u8, 175u8, 191u8, 163u8, 34u8, 79u8,
                            118u8, 254u8, 236u8, 215u8, 8u8, 182u8, 71u8, 180u8, 224u8, 165u8,
                            226u8, 242u8, 124u8, 34u8, 38u8, 27u8, 29u8, 140u8, 187u8, 93u8, 131u8,
                            168u8,
                        ],
                    )
                }
                #[doc = "Set the max POV block size for incoming upgrades."]
                pub fn set_max_pov_size(
                    &self,
                    new: types::set_max_pov_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxPovSize>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_pov_size",
                        types::SetMaxPovSize { new },
                        [
                            170u8, 106u8, 163u8, 4u8, 27u8, 72u8, 250u8, 59u8, 133u8, 128u8, 177u8,
                            209u8, 22u8, 42u8, 230u8, 40u8, 192u8, 198u8, 56u8, 195u8, 31u8, 20u8,
                            35u8, 196u8, 119u8, 183u8, 141u8, 38u8, 52u8, 54u8, 31u8, 122u8,
                        ],
                    )
                }
                #[doc = "Set the max head data size for paras."]
                pub fn set_max_head_data_size(
                    &self,
                    new: types::set_max_head_data_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxHeadDataSize>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_head_data_size",
                        types::SetMaxHeadDataSize { new },
                        [
                            216u8, 146u8, 104u8, 253u8, 123u8, 192u8, 123u8, 82u8, 149u8, 22u8,
                            31u8, 107u8, 67u8, 102u8, 163u8, 239u8, 57u8, 183u8, 93u8, 20u8, 126u8,
                            39u8, 36u8, 242u8, 252u8, 68u8, 150u8, 121u8, 147u8, 186u8, 39u8,
                            181u8,
                        ],
                    )
                }
                #[doc = "Set the number of coretime execution cores."]
                #[doc = ""]
                #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"]
                #[doc = "this, if you really know what you are doing!"]
                pub fn set_coretime_cores(
                    &self,
                    new: types::set_coretime_cores::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetCoretimeCores>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_coretime_cores",
                        types::SetCoretimeCores { new },
                        [
                            179u8, 131u8, 211u8, 152u8, 167u8, 6u8, 108u8, 94u8, 179u8, 97u8, 87u8,
                            227u8, 57u8, 120u8, 133u8, 130u8, 59u8, 243u8, 224u8, 2u8, 11u8, 86u8,
                            251u8, 77u8, 159u8, 177u8, 145u8, 34u8, 117u8, 93u8, 28u8, 52u8,
                        ],
                    )
                }
                #[doc = "Set the parachain validator-group rotation frequency"]
                pub fn set_group_rotation_frequency(
                    &self,
                    new: types::set_group_rotation_frequency::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetGroupRotationFrequency,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_group_rotation_frequency",
                        types::SetGroupRotationFrequency { new },
                        [
                            33u8, 142u8, 63u8, 205u8, 128u8, 109u8, 157u8, 33u8, 122u8, 91u8, 57u8,
                            223u8, 134u8, 80u8, 108u8, 187u8, 147u8, 120u8, 104u8, 170u8, 32u8,
                            135u8, 102u8, 38u8, 82u8, 20u8, 123u8, 211u8, 245u8, 91u8, 134u8, 44u8,
                        ],
                    )
                }
                #[doc = "Set the availability period for paras."]
                pub fn set_paras_availability_period(
                    &self,
                    new: types::set_paras_availability_period::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetParasAvailabilityPeriod,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_paras_availability_period",
                        types::SetParasAvailabilityPeriod { new },
                        [
                            83u8, 171u8, 219u8, 129u8, 231u8, 54u8, 45u8, 19u8, 167u8, 21u8, 232u8,
                            205u8, 166u8, 83u8, 234u8, 101u8, 205u8, 248u8, 74u8, 39u8, 130u8,
                            15u8, 92u8, 39u8, 239u8, 111u8, 215u8, 165u8, 149u8, 11u8, 89u8, 119u8,
                        ],
                    )
                }
                #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."]
                pub fn set_scheduling_lookahead(
                    &self,
                    new: types::set_scheduling_lookahead::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetSchedulingLookahead,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_scheduling_lookahead",
                        types::SetSchedulingLookahead { new },
                        [
                            176u8, 115u8, 251u8, 197u8, 19u8, 106u8, 253u8, 224u8, 149u8, 96u8,
                            238u8, 106u8, 19u8, 19u8, 89u8, 249u8, 186u8, 89u8, 144u8, 116u8,
                            251u8, 30u8, 157u8, 237u8, 125u8, 153u8, 86u8, 6u8, 251u8, 170u8, 73u8,
                            216u8,
                        ],
                    )
                }
                #[doc = "Set the maximum number of validators to assign to any core."]
                pub fn set_max_validators_per_core(
                    &self,
                    new: types::set_max_validators_per_core::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxValidatorsPerCore,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_validators_per_core",
                        types::SetMaxValidatorsPerCore { new },
                        [
                            152u8, 112u8, 244u8, 133u8, 209u8, 166u8, 55u8, 155u8, 12u8, 216u8,
                            62u8, 111u8, 81u8, 52u8, 194u8, 121u8, 172u8, 201u8, 204u8, 139u8,
                            198u8, 238u8, 9u8, 49u8, 119u8, 236u8, 46u8, 0u8, 179u8, 234u8, 92u8,
                            45u8,
                        ],
                    )
                }
                #[doc = "Set the maximum number of validators to use in parachain consensus."]
                pub fn set_max_validators(
                    &self,
                    new: types::set_max_validators::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxValidators>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_validators",
                        types::SetMaxValidators { new },
                        [
                            219u8, 76u8, 191u8, 139u8, 250u8, 154u8, 232u8, 176u8, 248u8, 154u8,
                            185u8, 89u8, 135u8, 151u8, 183u8, 132u8, 72u8, 63u8, 101u8, 183u8,
                            142u8, 169u8, 163u8, 226u8, 24u8, 139u8, 78u8, 155u8, 3u8, 136u8,
                            142u8, 137u8,
                        ],
                    )
                }
                #[doc = "Set the dispute period, in number of sessions to keep for disputes."]
                pub fn set_dispute_period(
                    &self,
                    new: types::set_dispute_period::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetDisputePeriod>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_dispute_period",
                        types::SetDisputePeriod { new },
                        [
                            104u8, 229u8, 235u8, 207u8, 136u8, 207u8, 181u8, 99u8, 0u8, 84u8,
                            200u8, 244u8, 220u8, 52u8, 64u8, 26u8, 232u8, 212u8, 242u8, 190u8,
                            67u8, 180u8, 171u8, 200u8, 181u8, 23u8, 32u8, 240u8, 231u8, 217u8,
                            23u8, 146u8,
                        ],
                    )
                }
                #[doc = "Set the dispute post conclusion acceptance period."]
                pub fn set_dispute_post_conclusion_acceptance_period(
                    &self,
                    new: types::set_dispute_post_conclusion_acceptance_period::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetDisputePostConclusionAcceptancePeriod,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_dispute_post_conclusion_acceptance_period",
                        types::SetDisputePostConclusionAcceptancePeriod { new },
                        [
                            251u8, 176u8, 139u8, 76u8, 7u8, 246u8, 198u8, 190u8, 39u8, 249u8, 95u8,
                            226u8, 53u8, 186u8, 112u8, 101u8, 229u8, 80u8, 240u8, 185u8, 108u8,
                            228u8, 91u8, 103u8, 128u8, 218u8, 231u8, 210u8, 164u8, 197u8, 84u8,
                            149u8,
                        ],
                    )
                }
                #[doc = "Set the no show slots, in number of number of consensus slots."]
                #[doc = "Must be at least 1."]
                pub fn set_no_show_slots(
                    &self,
                    new: types::set_no_show_slots::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetNoShowSlots>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_no_show_slots",
                        types::SetNoShowSlots { new },
                        [
                            123u8, 204u8, 253u8, 222u8, 224u8, 215u8, 247u8, 154u8, 225u8, 79u8,
                            29u8, 171u8, 107u8, 216u8, 215u8, 14u8, 8u8, 230u8, 49u8, 97u8, 20u8,
                            84u8, 70u8, 33u8, 254u8, 63u8, 186u8, 7u8, 184u8, 135u8, 74u8, 139u8,
                        ],
                    )
                }
                #[doc = "Set the total number of delay tranches."]
                pub fn set_n_delay_tranches(
                    &self,
                    new: types::set_n_delay_tranches::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetNDelayTranches>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_n_delay_tranches",
                        types::SetNDelayTranches { new },
                        [
                            157u8, 177u8, 251u8, 227u8, 118u8, 250u8, 129u8, 254u8, 33u8, 250u8,
                            61u8, 148u8, 189u8, 92u8, 49u8, 119u8, 107u8, 40u8, 255u8, 119u8,
                            241u8, 188u8, 109u8, 240u8, 229u8, 169u8, 31u8, 62u8, 174u8, 14u8,
                            247u8, 235u8,
                        ],
                    )
                }
                #[doc = "Set the zeroth delay tranche width."]
                pub fn set_zeroth_delay_tranche_width(
                    &self,
                    new: types::set_zeroth_delay_tranche_width::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetZerothDelayTrancheWidth,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_zeroth_delay_tranche_width",
                        types::SetZerothDelayTrancheWidth { new },
                        [
                            30u8, 195u8, 15u8, 51u8, 210u8, 159u8, 254u8, 207u8, 121u8, 172u8,
                            107u8, 241u8, 55u8, 100u8, 159u8, 55u8, 76u8, 47u8, 86u8, 93u8, 221u8,
                            34u8, 136u8, 97u8, 224u8, 141u8, 46u8, 181u8, 246u8, 137u8, 79u8, 57u8,
                        ],
                    )
                }
                #[doc = "Set the number of validators needed to approve a block."]
                pub fn set_needed_approvals(
                    &self,
                    new: types::set_needed_approvals::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetNeededApprovals>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_needed_approvals",
                        types::SetNeededApprovals { new },
                        [
                            245u8, 105u8, 16u8, 120u8, 28u8, 231u8, 6u8, 50u8, 143u8, 102u8, 1u8,
                            97u8, 224u8, 232u8, 187u8, 164u8, 200u8, 31u8, 129u8, 139u8, 79u8,
                            170u8, 14u8, 147u8, 117u8, 13u8, 98u8, 16u8, 64u8, 169u8, 46u8, 41u8,
                        ],
                    )
                }
                #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."]
                pub fn set_relay_vrf_modulo_samples(
                    &self,
                    new: types::set_relay_vrf_modulo_samples::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetRelayVrfModuloSamples,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_relay_vrf_modulo_samples",
                        types::SetRelayVrfModuloSamples { new },
                        [
                            96u8, 100u8, 42u8, 61u8, 244u8, 226u8, 135u8, 187u8, 56u8, 193u8,
                            247u8, 236u8, 38u8, 40u8, 242u8, 222u8, 176u8, 209u8, 211u8, 217u8,
                            178u8, 32u8, 160u8, 56u8, 23u8, 60u8, 222u8, 166u8, 134u8, 72u8, 153u8,
                            14u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."]
                pub fn set_max_upward_queue_count(
                    &self,
                    new: types::set_max_upward_queue_count::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxUpwardQueueCount,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_upward_queue_count",
                        types::SetMaxUpwardQueueCount { new },
                        [
                            187u8, 102u8, 178u8, 141u8, 245u8, 8u8, 221u8, 174u8, 128u8, 239u8,
                            104u8, 120u8, 202u8, 220u8, 46u8, 27u8, 175u8, 26u8, 1u8, 170u8, 193u8,
                            70u8, 176u8, 13u8, 223u8, 57u8, 153u8, 161u8, 228u8, 175u8, 226u8,
                            202u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"]
                #[doc = "once."]
                pub fn set_max_upward_queue_size(
                    &self,
                    new: types::set_max_upward_queue_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxUpwardQueueSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_upward_queue_size",
                        types::SetMaxUpwardQueueSize { new },
                        [
                            245u8, 234u8, 151u8, 232u8, 49u8, 193u8, 60u8, 21u8, 103u8, 238u8,
                            194u8, 73u8, 238u8, 160u8, 48u8, 88u8, 143u8, 197u8, 110u8, 230u8,
                            213u8, 149u8, 171u8, 94u8, 77u8, 6u8, 139u8, 191u8, 158u8, 62u8, 181u8,
                            32u8,
                        ],
                    )
                }
                #[doc = "Set the critical downward message size."]
                pub fn set_max_downward_message_size(
                    &self,
                    new: types::set_max_downward_message_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxDownwardMessageSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_downward_message_size",
                        types::SetMaxDownwardMessageSize { new },
                        [
                            63u8, 112u8, 231u8, 193u8, 226u8, 6u8, 119u8, 35u8, 60u8, 34u8, 85u8,
                            15u8, 168u8, 16u8, 176u8, 116u8, 169u8, 114u8, 42u8, 208u8, 89u8,
                            188u8, 22u8, 145u8, 248u8, 87u8, 74u8, 168u8, 0u8, 202u8, 112u8, 13u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."]
                pub fn set_max_upward_message_size(
                    &self,
                    new: types::set_max_upward_message_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxUpwardMessageSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_upward_message_size",
                        types::SetMaxUpwardMessageSize { new },
                        [
                            237u8, 108u8, 33u8, 245u8, 65u8, 209u8, 201u8, 97u8, 126u8, 194u8,
                            195u8, 8u8, 144u8, 223u8, 148u8, 242u8, 97u8, 214u8, 38u8, 231u8,
                            123u8, 143u8, 34u8, 199u8, 100u8, 183u8, 211u8, 111u8, 250u8, 245u8,
                            10u8, 38u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum number of messages that a candidate can contain."]
                pub fn set_max_upward_message_num_per_candidate(
                    &self,
                    new: types::set_max_upward_message_num_per_candidate::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMaxUpwardMessageNumPerCandidate,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_max_upward_message_num_per_candidate",
                        types::SetMaxUpwardMessageNumPerCandidate { new },
                        [
                            183u8, 121u8, 87u8, 193u8, 8u8, 160u8, 107u8, 80u8, 50u8, 8u8, 75u8,
                            185u8, 195u8, 248u8, 75u8, 174u8, 210u8, 108u8, 149u8, 20u8, 66u8,
                            153u8, 20u8, 203u8, 92u8, 99u8, 27u8, 69u8, 212u8, 212u8, 35u8, 49u8,
                        ],
                    )
                }
                #[doc = "Sets the number of sessions after which an HRMP open channel request expires."]
                pub fn set_hrmp_open_request_ttl(
                    &self,
                    new: types::set_hrmp_open_request_ttl::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpOpenRequestTtl,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_open_request_ttl",
                        types::SetHrmpOpenRequestTtl { new },
                        [
                            233u8, 46u8, 165u8, 59u8, 196u8, 77u8, 161u8, 124u8, 252u8, 98u8, 8u8,
                            52u8, 80u8, 17u8, 12u8, 50u8, 25u8, 127u8, 143u8, 252u8, 230u8, 10u8,
                            193u8, 251u8, 167u8, 73u8, 40u8, 63u8, 203u8, 119u8, 208u8, 254u8,
                        ],
                    )
                }
                #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."]
                pub fn set_hrmp_sender_deposit(
                    &self,
                    new: types::set_hrmp_sender_deposit::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetHrmpSenderDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_sender_deposit",
                        types::SetHrmpSenderDeposit { new },
                        [
                            4u8, 141u8, 15u8, 87u8, 237u8, 39u8, 225u8, 108u8, 159u8, 240u8, 121u8,
                            212u8, 225u8, 155u8, 168u8, 28u8, 61u8, 119u8, 232u8, 216u8, 194u8,
                            172u8, 147u8, 16u8, 50u8, 100u8, 146u8, 146u8, 69u8, 252u8, 94u8, 47u8,
                        ],
                    )
                }
                #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"]
                #[doc = "channel."]
                pub fn set_hrmp_recipient_deposit(
                    &self,
                    new: types::set_hrmp_recipient_deposit::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpRecipientDeposit,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_recipient_deposit",
                        types::SetHrmpRecipientDeposit { new },
                        [
                            242u8, 193u8, 202u8, 91u8, 69u8, 252u8, 101u8, 52u8, 162u8, 107u8,
                            165u8, 69u8, 90u8, 150u8, 62u8, 239u8, 167u8, 2u8, 221u8, 3u8, 231u8,
                            252u8, 82u8, 125u8, 212u8, 174u8, 47u8, 216u8, 219u8, 237u8, 242u8,
                            144u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."]
                pub fn set_hrmp_channel_max_capacity(
                    &self,
                    new: types::set_hrmp_channel_max_capacity::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpChannelMaxCapacity,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_channel_max_capacity",
                        types::SetHrmpChannelMaxCapacity { new },
                        [
                            140u8, 138u8, 197u8, 45u8, 144u8, 102u8, 150u8, 172u8, 110u8, 6u8,
                            99u8, 130u8, 62u8, 217u8, 119u8, 110u8, 180u8, 132u8, 102u8, 161u8,
                            78u8, 59u8, 209u8, 44u8, 120u8, 183u8, 13u8, 88u8, 89u8, 15u8, 224u8,
                            224u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."]
                pub fn set_hrmp_channel_max_total_size(
                    &self,
                    new: types::set_hrmp_channel_max_total_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpChannelMaxTotalSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_channel_max_total_size",
                        types::SetHrmpChannelMaxTotalSize { new },
                        [
                            149u8, 21u8, 229u8, 107u8, 125u8, 28u8, 17u8, 155u8, 45u8, 230u8, 50u8,
                            64u8, 16u8, 171u8, 24u8, 58u8, 246u8, 57u8, 247u8, 20u8, 34u8, 217u8,
                            206u8, 157u8, 40u8, 205u8, 187u8, 205u8, 199u8, 24u8, 115u8, 214u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."]
                pub fn set_hrmp_max_parachain_inbound_channels(
                    &self,
                    new: types::set_hrmp_max_parachain_inbound_channels::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpMaxParachainInboundChannels,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_max_parachain_inbound_channels",
                        types::SetHrmpMaxParachainInboundChannels { new },
                        [
                            203u8, 10u8, 55u8, 21u8, 21u8, 254u8, 74u8, 97u8, 34u8, 117u8, 160u8,
                            183u8, 168u8, 235u8, 11u8, 9u8, 137u8, 141u8, 150u8, 80u8, 32u8, 41u8,
                            118u8, 40u8, 28u8, 74u8, 155u8, 7u8, 63u8, 217u8, 39u8, 104u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."]
                pub fn set_hrmp_channel_max_message_size(
                    &self,
                    new: types::set_hrmp_channel_max_message_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpChannelMaxMessageSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_channel_max_message_size",
                        types::SetHrmpChannelMaxMessageSize { new },
                        [
                            153u8, 216u8, 55u8, 31u8, 189u8, 173u8, 23u8, 6u8, 213u8, 103u8, 205u8,
                            154u8, 115u8, 105u8, 84u8, 133u8, 94u8, 254u8, 47u8, 128u8, 130u8,
                            114u8, 227u8, 102u8, 214u8, 146u8, 215u8, 183u8, 179u8, 151u8, 43u8,
                            187u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."]
                pub fn set_hrmp_max_parachain_outbound_channels(
                    &self,
                    new: types::set_hrmp_max_parachain_outbound_channels::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpMaxParachainOutboundChannels,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_max_parachain_outbound_channels",
                        types::SetHrmpMaxParachainOutboundChannels { new },
                        [
                            91u8, 100u8, 158u8, 17u8, 123u8, 31u8, 6u8, 92u8, 80u8, 92u8, 83u8,
                            195u8, 234u8, 207u8, 55u8, 88u8, 75u8, 81u8, 219u8, 131u8, 234u8, 5u8,
                            75u8, 236u8, 57u8, 93u8, 70u8, 145u8, 255u8, 171u8, 25u8, 174u8,
                        ],
                    )
                }
                #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."]
                pub fn set_hrmp_max_message_num_per_candidate(
                    &self,
                    new: types::set_hrmp_max_message_num_per_candidate::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetHrmpMaxMessageNumPerCandidate,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_hrmp_max_message_num_per_candidate",
                        types::SetHrmpMaxMessageNumPerCandidate { new },
                        [
                            179u8, 44u8, 231u8, 12u8, 166u8, 160u8, 223u8, 164u8, 218u8, 173u8,
                            157u8, 49u8, 16u8, 220u8, 0u8, 224u8, 67u8, 194u8, 210u8, 207u8, 237u8,
                            96u8, 96u8, 24u8, 71u8, 237u8, 30u8, 152u8, 105u8, 245u8, 157u8, 218u8,
                        ],
                    )
                }
                #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."]
                pub fn set_pvf_voting_ttl(
                    &self,
                    new: types::set_pvf_voting_ttl::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetPvfVotingTtl>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_pvf_voting_ttl",
                        types::SetPvfVotingTtl { new },
                        [
                            115u8, 135u8, 76u8, 222u8, 214u8, 80u8, 103u8, 250u8, 194u8, 34u8,
                            129u8, 245u8, 216u8, 69u8, 166u8, 247u8, 138u8, 94u8, 135u8, 228u8,
                            90u8, 145u8, 2u8, 244u8, 73u8, 178u8, 61u8, 251u8, 21u8, 197u8, 202u8,
                            246u8,
                        ],
                    )
                }
                #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"]
                #[doc = "upgrade taking place."]
                #[doc = ""]
                #[doc = "See the field documentation for information and constraints for the new value."]
                pub fn set_minimum_validation_upgrade_delay(
                    &self,
                    new: types::set_minimum_validation_upgrade_delay::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMinimumValidationUpgradeDelay,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_minimum_validation_upgrade_delay",
                        types::SetMinimumValidationUpgradeDelay { new },
                        [
                            143u8, 217u8, 201u8, 206u8, 206u8, 244u8, 116u8, 118u8, 13u8, 169u8,
                            132u8, 125u8, 253u8, 178u8, 196u8, 12u8, 251u8, 32u8, 201u8, 133u8,
                            50u8, 59u8, 37u8, 169u8, 198u8, 112u8, 136u8, 47u8, 205u8, 141u8,
                            191u8, 212u8,
                        ],
                    )
                }
                #[doc = "Setting this to true will disable consistency checks for the configuration setters."]
                #[doc = "Use with caution."]
                pub fn set_bypass_consistency_check(
                    &self,
                    new: types::set_bypass_consistency_check::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetBypassConsistencyCheck,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_bypass_consistency_check",
                        types::SetBypassConsistencyCheck { new },
                        [
                            11u8, 211u8, 68u8, 221u8, 178u8, 108u8, 101u8, 55u8, 107u8, 135u8,
                            203u8, 112u8, 173u8, 161u8, 23u8, 104u8, 95u8, 200u8, 46u8, 231u8,
                            114u8, 3u8, 8u8, 89u8, 147u8, 141u8, 55u8, 65u8, 125u8, 45u8, 218u8,
                            78u8,
                        ],
                    )
                }
                #[doc = "Set the asynchronous backing parameters."]
                pub fn set_async_backing_params(
                    &self,
                    new: types::set_async_backing_params::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetAsyncBackingParams,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_async_backing_params",
                        types::SetAsyncBackingParams { new },
                        [
                            28u8, 148u8, 243u8, 41u8, 68u8, 91u8, 113u8, 162u8, 126u8, 115u8,
                            122u8, 220u8, 126u8, 19u8, 119u8, 236u8, 20u8, 112u8, 181u8, 76u8,
                            191u8, 225u8, 44u8, 207u8, 85u8, 246u8, 10u8, 167u8, 132u8, 211u8,
                            14u8, 83u8,
                        ],
                    )
                }
                #[doc = "Set PVF executor parameters."]
                pub fn set_executor_params(
                    &self,
                    new: types::set_executor_params::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetExecutorParams>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_executor_params",
                        types::SetExecutorParams { new },
                        [
                            79u8, 167u8, 242u8, 14u8, 22u8, 177u8, 240u8, 134u8, 154u8, 77u8,
                            233u8, 188u8, 110u8, 223u8, 25u8, 52u8, 58u8, 241u8, 226u8, 255u8, 2u8,
                            26u8, 8u8, 241u8, 125u8, 33u8, 63u8, 204u8, 93u8, 31u8, 229u8, 0u8,
                        ],
                    )
                }
                #[doc = "Set the on demand (parathreads) base fee."]
                pub fn set_on_demand_base_fee(
                    &self,
                    new: types::set_on_demand_base_fee::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetOnDemandBaseFee>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_on_demand_base_fee",
                        types::SetOnDemandBaseFee { new },
                        [
                            181u8, 205u8, 34u8, 186u8, 152u8, 91u8, 76u8, 55u8, 128u8, 116u8, 44u8,
                            32u8, 71u8, 33u8, 247u8, 146u8, 134u8, 15u8, 181u8, 229u8, 105u8, 67u8,
                            148u8, 214u8, 211u8, 84u8, 93u8, 122u8, 235u8, 204u8, 63u8, 13u8,
                        ],
                    )
                }
                #[doc = "Set the on demand (parathreads) fee variability."]
                pub fn set_on_demand_fee_variability(
                    &self,
                    new: types::set_on_demand_fee_variability::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetOnDemandFeeVariability,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_on_demand_fee_variability",
                        types::SetOnDemandFeeVariability { new },
                        [
                            255u8, 132u8, 238u8, 200u8, 152u8, 248u8, 89u8, 87u8, 160u8, 38u8,
                            38u8, 7u8, 137u8, 178u8, 176u8, 10u8, 63u8, 250u8, 95u8, 68u8, 39u8,
                            147u8, 5u8, 214u8, 223u8, 44u8, 225u8, 10u8, 233u8, 155u8, 202u8,
                            232u8,
                        ],
                    )
                }
                #[doc = "Set the on demand (parathreads) queue max size."]
                pub fn set_on_demand_queue_max_size(
                    &self,
                    new: types::set_on_demand_queue_max_size::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetOnDemandQueueMaxSize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_on_demand_queue_max_size",
                        types::SetOnDemandQueueMaxSize { new },
                        [
                            207u8, 222u8, 29u8, 91u8, 8u8, 250u8, 0u8, 153u8, 230u8, 206u8, 87u8,
                            4u8, 248u8, 28u8, 120u8, 55u8, 24u8, 45u8, 103u8, 75u8, 25u8, 239u8,
                            61u8, 238u8, 11u8, 63u8, 82u8, 219u8, 154u8, 27u8, 130u8, 173u8,
                        ],
                    )
                }
                #[doc = "Set the on demand (parathreads) fee variability."]
                pub fn set_on_demand_target_queue_utilization(
                    &self,
                    new: types::set_on_demand_target_queue_utilization::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetOnDemandTargetQueueUtilization,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_on_demand_target_queue_utilization",
                        types::SetOnDemandTargetQueueUtilization { new },
                        [
                            78u8, 98u8, 234u8, 149u8, 254u8, 231u8, 174u8, 232u8, 246u8, 16u8,
                            218u8, 142u8, 156u8, 247u8, 70u8, 214u8, 144u8, 159u8, 71u8, 241u8,
                            178u8, 102u8, 251u8, 153u8, 208u8, 222u8, 121u8, 139u8, 66u8, 146u8,
                            94u8, 147u8,
                        ],
                    )
                }
                #[doc = "Set the minimum backing votes threshold."]
                pub fn set_minimum_backing_votes(
                    &self,
                    new: types::set_minimum_backing_votes::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetMinimumBackingVotes,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_minimum_backing_votes",
                        types::SetMinimumBackingVotes { new },
                        [
                            55u8, 209u8, 98u8, 156u8, 31u8, 150u8, 61u8, 19u8, 3u8, 55u8, 113u8,
                            209u8, 171u8, 143u8, 241u8, 93u8, 178u8, 169u8, 39u8, 241u8, 98u8,
                            53u8, 12u8, 148u8, 175u8, 50u8, 164u8, 38u8, 34u8, 183u8, 105u8, 178u8,
                        ],
                    )
                }
                #[doc = "Set/Unset a node feature."]
                pub fn set_node_feature(
                    &self,
                    index: types::set_node_feature::Index,
                    value: types::set_node_feature::Value,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetNodeFeature>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_node_feature",
                        types::SetNodeFeature { index, value },
                        [
                            255u8, 19u8, 208u8, 76u8, 122u8, 6u8, 42u8, 182u8, 118u8, 151u8, 245u8,
                            80u8, 162u8, 243u8, 45u8, 57u8, 122u8, 148u8, 98u8, 170u8, 157u8, 40u8,
                            92u8, 234u8, 12u8, 141u8, 54u8, 80u8, 97u8, 249u8, 115u8, 27u8,
                        ],
                    )
                }
                #[doc = "Set approval-voting-params."]
                pub fn set_approval_voting_params(
                    &self,
                    new: types::set_approval_voting_params::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SetApprovalVotingParams,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_approval_voting_params",
                        types::SetApprovalVotingParams { new },
                        [
                            248u8, 81u8, 74u8, 103u8, 28u8, 108u8, 190u8, 177u8, 201u8, 252u8,
                            87u8, 236u8, 20u8, 189u8, 192u8, 173u8, 40u8, 160u8, 170u8, 187u8,
                            42u8, 108u8, 184u8, 131u8, 120u8, 237u8, 229u8, 240u8, 128u8, 49u8,
                            163u8, 11u8,
                        ],
                    )
                }
                #[doc = "Set scheduler-params."]
                pub fn set_scheduler_params(
                    &self,
                    new: types::set_scheduler_params::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetSchedulerParams>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Configuration",
                        "set_scheduler_params",
                        types::SetSchedulerParams { new },
                        [
                            191u8, 87u8, 235u8, 71u8, 143u8, 46u8, 2u8, 88u8, 111u8, 15u8, 251u8,
                            230u8, 241u8, 172u8, 183u8, 110u8, 33u8, 26u8, 43u8, 119u8, 74u8, 62u8,
                            200u8, 226u8, 83u8, 180u8, 123u8, 132u8, 171u8, 65u8, 30u8, 13u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod active_config {
                    use super::runtime_types;
                    pub type ActiveConfig = runtime_types :: polkadot_runtime_parachains :: configuration :: HostConfiguration < :: core :: primitive :: u32 > ;
                }
                pub mod pending_configs {
                    use super::runtime_types;
                    pub type PendingConfigs = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (:: core :: primitive :: u32 , runtime_types :: polkadot_runtime_parachains :: configuration :: HostConfiguration < :: core :: primitive :: u32 > ,) > ;
                }
                pub mod bypass_consistency_check {
                    use super::runtime_types;
                    pub type BypassConsistencyCheck = ::core::primitive::bool;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The active configuration for the current session."]
                pub fn active_config(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::active_config::ActiveConfig,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Configuration",
                        "ActiveConfig",
                        (),
                        [
                            9u8, 85u8, 45u8, 253u8, 3u8, 175u8, 115u8, 58u8, 71u8, 169u8, 68u8,
                            163u8, 231u8, 24u8, 231u8, 216u8, 61u8, 134u8, 59u8, 89u8, 31u8, 103u8,
                            105u8, 8u8, 182u8, 99u8, 51u8, 130u8, 255u8, 2u8, 0u8, 147u8,
                        ],
                    )
                }
                #[doc = " Pending configuration changes."]
                #[doc = ""]
                #[doc = " This is a list of configuration changes, each with a session index at which it should"]
                #[doc = " be applied."]
                #[doc = ""]
                #[doc = " The list is sorted ascending by session index. Also, this list can only contain at most"]
                #[doc = " 2 items: for the next session and for the `scheduled_session`."]
                pub fn pending_configs(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pending_configs::PendingConfigs,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Configuration",
                        "PendingConfigs",
                        (),
                        [
                            7u8, 170u8, 38u8, 177u8, 76u8, 75u8, 198u8, 192u8, 247u8, 137u8, 85u8,
                            17u8, 74u8, 93u8, 170u8, 177u8, 198u8, 208u8, 183u8, 28u8, 178u8, 5u8,
                            39u8, 246u8, 175u8, 78u8, 145u8, 37u8, 212u8, 20u8, 52u8, 110u8,
                        ],
                    )
                }
                #[doc = " If this is set, then the configuration setters will bypass the consistency checks. This"]
                #[doc = " is meant to be used only as the last resort."]
                pub fn bypass_consistency_check(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::bypass_consistency_check::BypassConsistencyCheck,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Configuration",
                        "BypassConsistencyCheck",
                        (),
                        [
                            109u8, 201u8, 130u8, 189u8, 167u8, 112u8, 171u8, 180u8, 100u8, 146u8,
                            23u8, 174u8, 199u8, 230u8, 185u8, 155u8, 178u8, 45u8, 24u8, 66u8,
                            211u8, 234u8, 11u8, 103u8, 148u8, 12u8, 247u8, 101u8, 147u8, 18u8,
                            11u8, 89u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod paras_shared {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::shared::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
            }
            pub struct TransactionApi;
            impl TransactionApi {}
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod current_session_index {
                    use super::runtime_types;
                    pub type CurrentSessionIndex = ::core::primitive::u32;
                }
                pub mod active_validator_indices {
                    use super::runtime_types;
                    pub type ActiveValidatorIndices = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                    >;
                }
                pub mod active_validator_keys {
                    use super::runtime_types;
                    pub type ActiveValidatorKeys = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::validator_app::Public,
                    >;
                }
                pub mod allowed_relay_parents {
                    use super::runtime_types;
                    pub type AllowedRelayParents = runtime_types :: polkadot_runtime_parachains :: shared :: AllowedRelayParentsTracker < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > ;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The current session index."]
                pub fn current_session_index(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_session_index::CurrentSessionIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasShared",
                        "CurrentSessionIndex",
                        (),
                        [
                            250u8, 164u8, 179u8, 84u8, 199u8, 245u8, 116u8, 48u8, 86u8, 127u8,
                            50u8, 117u8, 236u8, 41u8, 107u8, 238u8, 151u8, 236u8, 68u8, 78u8,
                            152u8, 5u8, 155u8, 107u8, 69u8, 197u8, 222u8, 94u8, 150u8, 2u8, 31u8,
                            191u8,
                        ],
                    )
                }
                #[doc = " All the validators actively participating in parachain consensus."]
                #[doc = " Indices are into the broader validator set."]
                pub fn active_validator_indices(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::active_validator_indices::ActiveValidatorIndices,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasShared",
                        "ActiveValidatorIndices",
                        (),
                        [
                            80u8, 207u8, 217u8, 195u8, 69u8, 151u8, 27u8, 205u8, 227u8, 89u8, 71u8,
                            180u8, 91u8, 116u8, 82u8, 193u8, 108u8, 115u8, 40u8, 247u8, 160u8,
                            39u8, 85u8, 99u8, 42u8, 87u8, 54u8, 168u8, 230u8, 201u8, 212u8, 39u8,
                        ],
                    )
                }
                #[doc = " The parachain attestation keys of the validators actively participating in parachain"]
                #[doc = " consensus. This should be the same length as `ActiveValidatorIndices`."]
                pub fn active_validator_keys(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::active_validator_keys::ActiveValidatorKeys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasShared",
                        "ActiveValidatorKeys",
                        (),
                        [
                            228u8, 111u8, 152u8, 198u8, 158u8, 9u8, 193u8, 222u8, 92u8, 190u8,
                            91u8, 24u8, 98u8, 156u8, 88u8, 231u8, 255u8, 1u8, 74u8, 56u8, 44u8,
                            110u8, 175u8, 29u8, 45u8, 242u8, 129u8, 181u8, 145u8, 5u8, 28u8, 40u8,
                        ],
                    )
                }
                #[doc = " All allowed relay-parents."]
                pub fn allowed_relay_parents(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::allowed_relay_parents::AllowedRelayParents,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasShared",
                        "AllowedRelayParents",
                        (),
                        [
                            19u8, 136u8, 83u8, 71u8, 147u8, 131u8, 0u8, 128u8, 2u8, 78u8, 136u8,
                            126u8, 42u8, 42u8, 76u8, 33u8, 22u8, 254u8, 25u8, 74u8, 140u8, 126u8,
                            142u8, 229u8, 76u8, 163u8, 30u8, 192u8, 104u8, 50u8, 6u8, 121u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod para_inclusion {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::inclusion::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::inclusion::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
            }
            pub struct TransactionApi;
            impl TransactionApi {}
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::inclusion::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate was backed. `[candidate, head_data]`"]
            pub struct CandidateBacked(
                pub candidate_backed::Field0,
                pub candidate_backed::Field1,
                pub candidate_backed::Field2,
                pub candidate_backed::Field3,
            );
            pub mod candidate_backed {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                    ::subxt::ext::subxt_core::utils::H256,
                >;
                pub type Field1 =
                    runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                pub type Field2 = runtime_types::polkadot_primitives::v8::CoreIndex;
                pub type Field3 = runtime_types::polkadot_primitives::v8::GroupIndex;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateBacked {
                const PALLET: &'static str = "ParaInclusion";
                const EVENT: &'static str = "CandidateBacked";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate was included. `[candidate, head_data]`"]
            pub struct CandidateIncluded(
                pub candidate_included::Field0,
                pub candidate_included::Field1,
                pub candidate_included::Field2,
                pub candidate_included::Field3,
            );
            pub mod candidate_included {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                    ::subxt::ext::subxt_core::utils::H256,
                >;
                pub type Field1 =
                    runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                pub type Field2 = runtime_types::polkadot_primitives::v8::CoreIndex;
                pub type Field3 = runtime_types::polkadot_primitives::v8::GroupIndex;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateIncluded {
                const PALLET: &'static str = "ParaInclusion";
                const EVENT: &'static str = "CandidateIncluded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A candidate timed out. `[candidate, head_data]`"]
            pub struct CandidateTimedOut(
                pub candidate_timed_out::Field0,
                pub candidate_timed_out::Field1,
                pub candidate_timed_out::Field2,
            );
            pub mod candidate_timed_out {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                    ::subxt::ext::subxt_core::utils::H256,
                >;
                pub type Field1 =
                    runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                pub type Field2 = runtime_types::polkadot_primitives::v8::CoreIndex;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateTimedOut {
                const PALLET: &'static str = "ParaInclusion";
                const EVENT: &'static str = "CandidateTimedOut";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some upward messages have been received and will be processed."]
            pub struct UpwardMessagesReceived {
                pub from: upward_messages_received::From,
                pub count: upward_messages_received::Count,
            }
            pub mod upward_messages_received {
                use super::runtime_types;
                pub type From = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Count = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpwardMessagesReceived {
                const PALLET: &'static str = "ParaInclusion";
                const EVENT: &'static str = "UpwardMessagesReceived";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod v1 {
                    use super::runtime_types;
                    pub type V1 = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: inclusion :: CandidatePendingAvailability < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > > ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"]
                #[doc = " included head of the para."]
                #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"]
                #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"]
                #[doc = " the migration."]
                pub fn v1_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::v1::V1,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaInclusion",
                        "V1",
                        (),
                        [
                            163u8, 193u8, 111u8, 157u8, 84u8, 109u8, 186u8, 223u8, 76u8, 169u8,
                            221u8, 212u8, 74u8, 197u8, 126u8, 44u8, 170u8, 85u8, 158u8, 255u8,
                            144u8, 62u8, 61u8, 171u8, 59u8, 97u8, 242u8, 92u8, 252u8, 196u8, 225u8,
                            205u8,
                        ],
                    )
                }
                #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"]
                #[doc = " included head of the para."]
                #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"]
                #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"]
                #[doc = " the migration."]
                pub fn v1(
                    &self,
                    _0: types::v1::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<types::v1::Param0>,
                    types::v1::V1,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaInclusion",
                        "V1",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            163u8, 193u8, 111u8, 157u8, 84u8, 109u8, 186u8, 223u8, 76u8, 169u8,
                            221u8, 212u8, 74u8, 197u8, 126u8, 44u8, 170u8, 85u8, 158u8, 255u8,
                            144u8, 62u8, 61u8, 171u8, 59u8, 97u8, 242u8, 92u8, 252u8, 196u8, 225u8,
                            205u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod para_inherent {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::paras_inherent::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::paras_inherent::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."]
                pub struct Enter {
                    pub data: enter::Data,
                }
                pub mod enter {
                    use super::runtime_types;
                    pub type Data = runtime_types::polkadot_primitives::vstaging::InherentData<
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Enter {
                    const PALLET: &'static str = "ParaInherent";
                    const CALL: &'static str = "enter";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."]
                pub fn enter(
                    &self,
                    data: types::enter::Data,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Enter>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParaInherent",
                        "enter",
                        types::Enter { data },
                        [
                            114u8, 11u8, 29u8, 115u8, 182u8, 217u8, 229u8, 138u8, 140u8, 35u8,
                            241u8, 16u8, 118u8, 196u8, 206u8, 209u8, 82u8, 253u8, 75u8, 243u8, 1u8,
                            251u8, 4u8, 141u8, 246u8, 107u8, 153u8, 196u8, 228u8, 8u8, 40u8, 8u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod included {
                    use super::runtime_types;
                    pub type Included = ();
                }
                pub mod on_chain_votes {
                    use super::runtime_types;
                    pub type OnChainVotes =
                        runtime_types::polkadot_primitives::vstaging::ScrapedOnChainVotes<
                            ::subxt::ext::subxt_core::utils::H256,
                        >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Whether the paras inherent was included within this block."]
                #[doc = ""]
                #[doc = " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant"]
                #[doc = " due to the guarantees of FRAME's storage APIs."]
                #[doc = ""]
                #[doc = " If this is `None` at the end of the block, we panic and render the block invalid."]
                pub fn included(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::included::Included,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaInherent",
                        "Included",
                        (),
                        [
                            108u8, 164u8, 163u8, 34u8, 27u8, 124u8, 202u8, 167u8, 48u8, 130u8,
                            155u8, 211u8, 148u8, 130u8, 76u8, 16u8, 5u8, 250u8, 211u8, 174u8, 90u8,
                            77u8, 198u8, 153u8, 175u8, 168u8, 131u8, 244u8, 27u8, 93u8, 60u8, 46u8,
                        ],
                    )
                }
                #[doc = " Scraped on chain data for extracting resolved disputes as well as backing votes."]
                pub fn on_chain_votes(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::on_chain_votes::OnChainVotes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaInherent",
                        "OnChainVotes",
                        (),
                        [
                            77u8, 63u8, 4u8, 215u8, 83u8, 144u8, 57u8, 27u8, 119u8, 37u8, 195u8,
                            53u8, 237u8, 133u8, 118u8, 231u8, 158u8, 207u8, 91u8, 48u8, 85u8,
                            102u8, 235u8, 118u8, 188u8, 88u8, 132u8, 60u8, 200u8, 33u8, 67u8,
                            159u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod para_scheduler {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod validator_groups {
                    use super::runtime_types;
                    pub type ValidatorGroups = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        >,
                    >;
                }
                pub mod session_start_block {
                    use super::runtime_types;
                    pub type SessionStartBlock = ::core::primitive::u32;
                }
                pub mod claim_queue {
                    use super::runtime_types;
                    pub type ClaimQueue = :: subxt :: ext :: subxt_core :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v8 :: CoreIndex , :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: scheduler :: common :: Assignment > > ;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the"]
                #[doc = " broader set of Polkadot validators, but instead just the subset used for parachains during"]
                #[doc = " this session."]
                #[doc = ""]
                #[doc = " Bound: The number of cores is the sum of the numbers of parachains and parathread"]
                #[doc = " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe"]
                #[doc = " upper bound at 10k."]
                pub fn validator_groups(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validator_groups::ValidatorGroups,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaScheduler",
                        "ValidatorGroups",
                        (),
                        [
                            129u8, 58u8, 65u8, 112u8, 4u8, 172u8, 167u8, 19u8, 96u8, 154u8, 159u8,
                            83u8, 94u8, 125u8, 60u8, 43u8, 60u8, 70u8, 1u8, 58u8, 222u8, 31u8,
                            73u8, 53u8, 71u8, 181u8, 49u8, 64u8, 212u8, 90u8, 128u8, 185u8,
                        ],
                    )
                }
                #[doc = " The block number where the session start occurred. Used to track how many group rotations"]
                #[doc = " have occurred."]
                #[doc = ""]
                #[doc = " Note that in the context of parachains modules the session change is signaled during"]
                #[doc = " the block and enacted at the end of the block (at the finalization stage, to be exact)."]
                #[doc = " Thus for all intents and purposes the effect of the session change is observed at the"]
                #[doc = " block following the session change, block number of which we save in this storage value."]
                pub fn session_start_block(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::session_start_block::SessionStartBlock,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaScheduler",
                        "SessionStartBlock",
                        (),
                        [
                            185u8, 76u8, 120u8, 75u8, 154u8, 31u8, 33u8, 243u8, 16u8, 77u8, 100u8,
                            249u8, 21u8, 44u8, 199u8, 195u8, 37u8, 9u8, 218u8, 148u8, 222u8, 90u8,
                            113u8, 34u8, 152u8, 215u8, 114u8, 134u8, 81u8, 139u8, 164u8, 71u8,
                        ],
                    )
                }
                #[doc = " One entry for each availability core. The `VecDeque` represents the assignments to be"]
                #[doc = " scheduled on that core."]
                pub fn claim_queue(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::claim_queue::ClaimQueue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaScheduler",
                        "ClaimQueue",
                        (),
                        [
                            240u8, 46u8, 91u8, 20u8, 166u8, 224u8, 110u8, 71u8, 239u8, 139u8, 55u8,
                            228u8, 184u8, 34u8, 165u8, 115u8, 192u8, 243u8, 244u8, 44u8, 107u8,
                            14u8, 67u8, 146u8, 186u8, 179u8, 9u8, 134u8, 181u8, 240u8, 254u8,
                            112u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod paras {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::paras::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::paras::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the storage for the parachain validation code immediately."]
                pub struct ForceSetCurrentCode {
                    pub para: force_set_current_code::Para,
                    pub new_code: force_set_current_code::NewCode,
                }
                pub mod force_set_current_code {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetCurrentCode {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_set_current_code";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the storage for the current parachain head data immediately."]
                pub struct ForceSetCurrentHead {
                    pub para: force_set_current_head::Para,
                    pub new_head: force_set_current_head::NewHead,
                }
                pub mod force_set_current_head {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewHead =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetCurrentHead {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_set_current_head";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."]
                pub struct ForceScheduleCodeUpgrade {
                    pub para: force_schedule_code_upgrade::Para,
                    pub new_code: force_schedule_code_upgrade::NewCode,
                    pub relay_parent_number: force_schedule_code_upgrade::RelayParentNumber,
                }
                pub mod force_schedule_code_upgrade {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                    pub type RelayParentNumber = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceScheduleCodeUpgrade {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_schedule_code_upgrade";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Note a new block head for para within the context of the current block."]
                pub struct ForceNoteNewHead {
                    pub para: force_note_new_head::Para,
                    pub new_head: force_note_new_head::NewHead,
                }
                pub mod force_note_new_head {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewHead =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceNoteNewHead {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_note_new_head";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Put a parachain directly into the next session's action queue."]
                #[doc = "We can't queue it any sooner than this without going into the"]
                #[doc = "initializer..."]
                pub struct ForceQueueAction {
                    pub para: force_queue_action::Para,
                }
                pub mod force_queue_action {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceQueueAction {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_queue_action";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Adds the validation code to the storage."]
                #[doc = ""]
                #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"]
                #[doc = "is running for that code, it will be instantly accepted."]
                #[doc = ""]
                #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"]
                #[doc = "into storage with reference count 0. This is to account the fact that there are no users"]
                #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"]
                #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"]
                #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"]
                #[doc = "manipulation."]
                #[doc = ""]
                #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"]
                #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."]
                pub struct AddTrustedValidationCode {
                    pub validation_code: add_trusted_validation_code::ValidationCode,
                }
                pub mod add_trusted_validation_code {
                    use super::runtime_types;
                    pub type ValidationCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddTrustedValidationCode {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "add_trusted_validation_code";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove the validation code from the storage iff the reference count is 0."]
                #[doc = ""]
                #[doc = "This is better than removing the storage directly, because it will not remove the code"]
                #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"]
                #[doc = "dispatching."]
                pub struct PokeUnusedValidationCode {
                    pub validation_code_hash: poke_unused_validation_code::ValidationCodeHash,
                }
                pub mod poke_unused_validation_code {
                    use super::runtime_types;
                    pub type ValidationCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeUnusedValidationCode {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "poke_unused_validation_code";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"]
                #[doc = "enacts the results if that was the last vote before achieving the supermajority."]
                pub struct IncludePvfCheckStatement {
                    pub stmt: include_pvf_check_statement::Stmt,
                    pub signature: include_pvf_check_statement::Signature,
                }
                pub mod include_pvf_check_statement {
                    use super::runtime_types;
                    pub type Stmt = runtime_types::polkadot_primitives::v8::PvfCheckStatement;
                    pub type Signature =
                        runtime_types::polkadot_primitives::v8::validator_app::Signature;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for IncludePvfCheckStatement {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "include_pvf_check_statement";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the storage for the current parachain head data immediately."]
                pub struct ForceSetMostRecentContext {
                    pub para: force_set_most_recent_context::Para,
                    pub context: force_set_most_recent_context::Context,
                }
                pub mod force_set_most_recent_context {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Context = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetMostRecentContext {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "force_set_most_recent_context";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove an upgrade cooldown for a parachain."]
                #[doc = ""]
                #[doc = "The cost for removing the cooldown earlier depends on the time left for the cooldown"]
                #[doc = "multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned."]
                pub struct RemoveUpgradeCooldown {
                    pub para: remove_upgrade_cooldown::Para,
                }
                pub mod remove_upgrade_cooldown {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUpgradeCooldown {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "remove_upgrade_cooldown";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the storage for the authorized current code hash of the parachain."]
                #[doc = "If not applied, it will be removed at the `System::block_number() + valid_period` block."]
                #[doc = ""]
                #[doc = "This can be useful, when triggering `Paras::force_set_current_code(para, code)`"]
                #[doc = "from a different chain than the one where the `Paras` pallet is deployed."]
                #[doc = ""]
                #[doc = "The main purpose is to avoid transferring the entire `code` Wasm blob between chains."]
                #[doc = "Instead, we authorize `code_hash` with `root`, which can later be applied by"]
                #[doc = "`Paras::apply_authorized_force_set_current_code(para, code)` by anyone."]
                #[doc = ""]
                #[doc = "Authorizations are stored in an **overwriting manner**."]
                pub struct AuthorizeForceSetCurrentCodeHash {
                    pub para: authorize_force_set_current_code_hash::Para,
                    pub new_code_hash: authorize_force_set_current_code_hash::NewCodeHash,
                    pub valid_period: authorize_force_set_current_code_hash::ValidPeriod,
                }
                pub mod authorize_force_set_current_code_hash {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                    pub type ValidPeriod = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeForceSetCurrentCodeHash {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "authorize_force_set_current_code_hash";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Applies the already authorized current code for the parachain,"]
                #[doc = "triggering the same functionality as `force_set_current_code`."]
                pub struct ApplyAuthorizedForceSetCurrentCode {
                    pub para: apply_authorized_force_set_current_code::Para,
                    pub new_code: apply_authorized_force_set_current_code::NewCode,
                }
                pub mod apply_authorized_force_set_current_code {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApplyAuthorizedForceSetCurrentCode {
                    const PALLET: &'static str = "Paras";
                    const CALL: &'static str = "apply_authorized_force_set_current_code";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Set the storage for the parachain validation code immediately."]
                pub fn force_set_current_code(
                    &self,
                    para: types::force_set_current_code::Para,
                    new_code: types::force_set_current_code::NewCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetCurrentCode>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_set_current_code",
                        types::ForceSetCurrentCode { para, new_code },
                        [
                            204u8, 159u8, 184u8, 235u8, 65u8, 225u8, 223u8, 130u8, 139u8, 140u8,
                            219u8, 58u8, 142u8, 253u8, 236u8, 239u8, 148u8, 190u8, 27u8, 234u8,
                            165u8, 125u8, 129u8, 235u8, 98u8, 33u8, 172u8, 71u8, 90u8, 41u8, 182u8,
                            80u8,
                        ],
                    )
                }
                #[doc = "Set the storage for the current parachain head data immediately."]
                pub fn force_set_current_head(
                    &self,
                    para: types::force_set_current_head::Para,
                    new_head: types::force_set_current_head::NewHead,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetCurrentHead>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_set_current_head",
                        types::ForceSetCurrentHead { para, new_head },
                        [
                            184u8, 247u8, 184u8, 248u8, 89u8, 64u8, 18u8, 193u8, 254u8, 71u8,
                            220u8, 195u8, 124u8, 212u8, 178u8, 169u8, 155u8, 189u8, 11u8, 135u8,
                            247u8, 39u8, 253u8, 196u8, 111u8, 242u8, 189u8, 91u8, 226u8, 219u8,
                            232u8, 238u8,
                        ],
                    )
                }
                #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."]
                pub fn force_schedule_code_upgrade(
                    &self,
                    para: types::force_schedule_code_upgrade::Para,
                    new_code: types::force_schedule_code_upgrade::NewCode,
                    relay_parent_number: types::force_schedule_code_upgrade::RelayParentNumber,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceScheduleCodeUpgrade,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_schedule_code_upgrade",
                        types::ForceScheduleCodeUpgrade {
                            para,
                            new_code,
                            relay_parent_number,
                        },
                        [
                            131u8, 179u8, 138u8, 151u8, 167u8, 191u8, 2u8, 68u8, 85u8, 111u8,
                            166u8, 65u8, 67u8, 52u8, 201u8, 41u8, 132u8, 128u8, 35u8, 177u8, 91u8,
                            185u8, 114u8, 2u8, 123u8, 133u8, 164u8, 121u8, 170u8, 243u8, 223u8,
                            61u8,
                        ],
                    )
                }
                #[doc = "Note a new block head for para within the context of the current block."]
                pub fn force_note_new_head(
                    &self,
                    para: types::force_note_new_head::Para,
                    new_head: types::force_note_new_head::NewHead,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceNoteNewHead>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_note_new_head",
                        types::ForceNoteNewHead { para, new_head },
                        [
                            215u8, 12u8, 228u8, 208u8, 7u8, 24u8, 207u8, 60u8, 183u8, 241u8, 212u8,
                            203u8, 139u8, 149u8, 9u8, 236u8, 77u8, 15u8, 242u8, 70u8, 62u8, 204u8,
                            187u8, 91u8, 110u8, 73u8, 210u8, 2u8, 8u8, 118u8, 182u8, 171u8,
                        ],
                    )
                }
                #[doc = "Put a parachain directly into the next session's action queue."]
                #[doc = "We can't queue it any sooner than this without going into the"]
                #[doc = "initializer..."]
                pub fn force_queue_action(
                    &self,
                    para: types::force_queue_action::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceQueueAction>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_queue_action",
                        types::ForceQueueAction { para },
                        [
                            112u8, 247u8, 239u8, 8u8, 91u8, 23u8, 111u8, 84u8, 179u8, 61u8, 235u8,
                            49u8, 140u8, 110u8, 40u8, 226u8, 150u8, 253u8, 146u8, 193u8, 136u8,
                            133u8, 100u8, 127u8, 38u8, 165u8, 159u8, 17u8, 205u8, 190u8, 6u8,
                            117u8,
                        ],
                    )
                }
                #[doc = "Adds the validation code to the storage."]
                #[doc = ""]
                #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"]
                #[doc = "is running for that code, it will be instantly accepted."]
                #[doc = ""]
                #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"]
                #[doc = "into storage with reference count 0. This is to account the fact that there are no users"]
                #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"]
                #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"]
                #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"]
                #[doc = "manipulation."]
                #[doc = ""]
                #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"]
                #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."]
                pub fn add_trusted_validation_code(
                    &self,
                    validation_code: types::add_trusted_validation_code::ValidationCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::AddTrustedValidationCode,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "add_trusted_validation_code",
                        types::AddTrustedValidationCode { validation_code },
                        [
                            196u8, 123u8, 133u8, 223u8, 3u8, 205u8, 127u8, 23u8, 82u8, 201u8,
                            107u8, 47u8, 23u8, 75u8, 139u8, 198u8, 178u8, 171u8, 160u8, 61u8,
                            132u8, 250u8, 76u8, 110u8, 3u8, 144u8, 90u8, 253u8, 89u8, 141u8, 162u8,
                            135u8,
                        ],
                    )
                }
                #[doc = "Remove the validation code from the storage iff the reference count is 0."]
                #[doc = ""]
                #[doc = "This is better than removing the storage directly, because it will not remove the code"]
                #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"]
                #[doc = "dispatching."]
                pub fn poke_unused_validation_code(
                    &self,
                    validation_code_hash: types::poke_unused_validation_code::ValidationCodeHash,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::PokeUnusedValidationCode,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "poke_unused_validation_code",
                        types::PokeUnusedValidationCode {
                            validation_code_hash,
                        },
                        [
                            180u8, 53u8, 213u8, 27u8, 150u8, 195u8, 50u8, 1u8, 62u8, 246u8, 244u8,
                            229u8, 115u8, 202u8, 55u8, 140u8, 108u8, 28u8, 245u8, 66u8, 165u8,
                            128u8, 105u8, 221u8, 7u8, 87u8, 242u8, 19u8, 88u8, 132u8, 36u8, 32u8,
                        ],
                    )
                }
                #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"]
                #[doc = "enacts the results if that was the last vote before achieving the supermajority."]
                pub fn include_pvf_check_statement(
                    &self,
                    stmt: types::include_pvf_check_statement::Stmt,
                    signature: types::include_pvf_check_statement::Signature,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::IncludePvfCheckStatement,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "include_pvf_check_statement",
                        types::IncludePvfCheckStatement { stmt, signature },
                        [
                            207u8, 92u8, 120u8, 222u8, 183u8, 105u8, 82u8, 155u8, 62u8, 41u8, 87u8,
                            66u8, 240u8, 71u8, 160u8, 114u8, 99u8, 195u8, 247u8, 190u8, 40u8,
                            132u8, 71u8, 161u8, 109u8, 207u8, 9u8, 163u8, 125u8, 98u8, 71u8, 107u8,
                        ],
                    )
                }
                #[doc = "Set the storage for the current parachain head data immediately."]
                pub fn force_set_most_recent_context(
                    &self,
                    para: types::force_set_most_recent_context::Para,
                    context: types::force_set_most_recent_context::Context,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceSetMostRecentContext,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "force_set_most_recent_context",
                        types::ForceSetMostRecentContext { para, context },
                        [
                            243u8, 17u8, 20u8, 229u8, 91u8, 87u8, 42u8, 159u8, 119u8, 61u8, 201u8,
                            246u8, 79u8, 151u8, 209u8, 183u8, 35u8, 31u8, 2u8, 210u8, 187u8, 105u8,
                            66u8, 106u8, 119u8, 241u8, 63u8, 63u8, 233u8, 68u8, 244u8, 137u8,
                        ],
                    )
                }
                #[doc = "Remove an upgrade cooldown for a parachain."]
                #[doc = ""]
                #[doc = "The cost for removing the cooldown earlier depends on the time left for the cooldown"]
                #[doc = "multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned."]
                pub fn remove_upgrade_cooldown(
                    &self,
                    para: types::remove_upgrade_cooldown::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveUpgradeCooldown,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "remove_upgrade_cooldown",
                        types::RemoveUpgradeCooldown { para },
                        [
                            97u8, 182u8, 203u8, 33u8, 194u8, 209u8, 1u8, 8u8, 237u8, 63u8, 156u8,
                            50u8, 23u8, 179u8, 171u8, 89u8, 74u8, 73u8, 191u8, 28u8, 102u8, 166u8,
                            89u8, 180u8, 166u8, 219u8, 110u8, 170u8, 77u8, 170u8, 151u8, 87u8,
                        ],
                    )
                }
                #[doc = "Sets the storage for the authorized current code hash of the parachain."]
                #[doc = "If not applied, it will be removed at the `System::block_number() + valid_period` block."]
                #[doc = ""]
                #[doc = "This can be useful, when triggering `Paras::force_set_current_code(para, code)`"]
                #[doc = "from a different chain than the one where the `Paras` pallet is deployed."]
                #[doc = ""]
                #[doc = "The main purpose is to avoid transferring the entire `code` Wasm blob between chains."]
                #[doc = "Instead, we authorize `code_hash` with `root`, which can later be applied by"]
                #[doc = "`Paras::apply_authorized_force_set_current_code(para, code)` by anyone."]
                #[doc = ""]
                #[doc = "Authorizations are stored in an **overwriting manner**."]
                pub fn authorize_force_set_current_code_hash(
                    &self,
                    para: types::authorize_force_set_current_code_hash::Para,
                    new_code_hash: types::authorize_force_set_current_code_hash::NewCodeHash,
                    valid_period: types::authorize_force_set_current_code_hash::ValidPeriod,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::AuthorizeForceSetCurrentCodeHash,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "authorize_force_set_current_code_hash",
                        types::AuthorizeForceSetCurrentCodeHash {
                            para,
                            new_code_hash,
                            valid_period,
                        },
                        [
                            58u8, 211u8, 30u8, 92u8, 73u8, 11u8, 68u8, 77u8, 96u8, 192u8, 34u8,
                            32u8, 13u8, 63u8, 34u8, 80u8, 193u8, 56u8, 218u8, 241u8, 64u8, 9u8,
                            91u8, 130u8, 73u8, 246u8, 233u8, 65u8, 225u8, 244u8, 22u8, 60u8,
                        ],
                    )
                }
                #[doc = "Applies the already authorized current code for the parachain,"]
                #[doc = "triggering the same functionality as `force_set_current_code`."]
                pub fn apply_authorized_force_set_current_code(
                    &self,
                    para: types::apply_authorized_force_set_current_code::Para,
                    new_code: types::apply_authorized_force_set_current_code::NewCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ApplyAuthorizedForceSetCurrentCode,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Paras",
                        "apply_authorized_force_set_current_code",
                        types::ApplyAuthorizedForceSetCurrentCode { para, new_code },
                        [
                            214u8, 157u8, 64u8, 213u8, 9u8, 144u8, 81u8, 217u8, 8u8, 212u8, 12u8,
                            39u8, 87u8, 21u8, 255u8, 6u8, 131u8, 104u8, 92u8, 81u8, 140u8, 104u8,
                            185u8, 225u8, 90u8, 4u8, 50u8, 42u8, 175u8, 243u8, 78u8, 62u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::paras::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Current code has been updated for a Para. `para_id`"]
            pub struct CurrentCodeUpdated(pub current_code_updated::Field0);
            pub mod current_code_updated {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CurrentCodeUpdated {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "CurrentCodeUpdated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Current head has been updated for a Para. `para_id`"]
            pub struct CurrentHeadUpdated(pub current_head_updated::Field0);
            pub mod current_head_updated {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CurrentHeadUpdated {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "CurrentHeadUpdated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A code upgrade has been scheduled for a Para. `para_id`"]
            pub struct CodeUpgradeScheduled(pub code_upgrade_scheduled::Field0);
            pub mod code_upgrade_scheduled {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CodeUpgradeScheduled {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "CodeUpgradeScheduled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new head has been noted for a Para. `para_id`"]
            pub struct NewHeadNoted(pub new_head_noted::Field0);
            pub mod new_head_noted {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewHeadNoted {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "NewHeadNoted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A para has been queued to execute pending actions. `para_id`"]
            pub struct ActionQueued(pub action_queued::Field0, pub action_queued::Field1);
            pub mod action_queued {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Field1 = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ActionQueued {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "ActionQueued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given para either initiated or subscribed to a PVF check for the given validation"]
            #[doc = "code. `code_hash` `para_id`"]
            pub struct PvfCheckStarted(
                pub pvf_check_started::Field0,
                pub pvf_check_started::Field1,
            );
            pub mod pvf_check_started {
                use super::runtime_types;
                pub type Field0 =
                    runtime_types::polkadot_parachain_primitives::primitives::ValidationCodeHash;
                pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PvfCheckStarted {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "PvfCheckStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given validation code was accepted by the PVF pre-checking vote."]
            #[doc = "`code_hash` `para_id`"]
            pub struct PvfCheckAccepted(
                pub pvf_check_accepted::Field0,
                pub pvf_check_accepted::Field1,
            );
            pub mod pvf_check_accepted {
                use super::runtime_types;
                pub type Field0 =
                    runtime_types::polkadot_parachain_primitives::primitives::ValidationCodeHash;
                pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PvfCheckAccepted {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "PvfCheckAccepted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The given validation code was rejected by the PVF pre-checking vote."]
            #[doc = "`code_hash` `para_id`"]
            pub struct PvfCheckRejected(
                pub pvf_check_rejected::Field0,
                pub pvf_check_rejected::Field1,
            );
            pub mod pvf_check_rejected {
                use super::runtime_types;
                pub type Field0 =
                    runtime_types::polkadot_parachain_primitives::primitives::ValidationCodeHash;
                pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PvfCheckRejected {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "PvfCheckRejected";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The upgrade cooldown was removed."]
            pub struct UpgradeCooldownRemoved {
                pub para_id: upgrade_cooldown_removed::ParaId,
            }
            pub mod upgrade_cooldown_removed {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeCooldownRemoved {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "UpgradeCooldownRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new code hash has been authorized for a Para."]
            pub struct CodeAuthorized {
                pub para_id: code_authorized::ParaId,
                pub code_hash: code_authorized::CodeHash,
                pub expire_at: code_authorized::ExpireAt,
            }
            pub mod code_authorized {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type CodeHash =
                    runtime_types::polkadot_parachain_primitives::primitives::ValidationCodeHash;
                pub type ExpireAt = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CodeAuthorized {
                const PALLET: &'static str = "Paras";
                const EVENT: &'static str = "CodeAuthorized";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod pvf_active_vote_map {
                    use super::runtime_types;
                    pub type PvfActiveVoteMap =
                        runtime_types::polkadot_runtime_parachains::paras::PvfCheckActiveVoteState<
                            ::core::primitive::u32,
                        >;
                    pub type Param0 = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                }
                pub mod pvf_active_vote_list {
                    use super::runtime_types;
                    pub type PvfActiveVoteList = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash > ;
                }
                pub mod parachains {
                    use super::runtime_types;
                    pub type Parachains = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    >;
                }
                pub mod para_lifecycles {
                    use super::runtime_types;
                    pub type ParaLifecycles =
                        runtime_types::polkadot_runtime_parachains::paras::ParaLifecycle;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod heads {
                    use super::runtime_types;
                    pub type Heads =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod most_recent_context {
                    use super::runtime_types;
                    pub type MostRecentContext = ::core::primitive::u32;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod current_code_hash {
                    use super::runtime_types;
                    pub type CurrentCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod past_code_hash {
                    use super::runtime_types;
                    pub type PastCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                    pub type Param0 = (
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u32,
                    );
                }
                pub mod past_code_meta {
                    use super::runtime_types;
                    pub type PastCodeMeta =
                        runtime_types::polkadot_runtime_parachains::paras::ParaPastCodeMeta<
                            ::core::primitive::u32,
                        >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod past_code_pruning {
                    use super::runtime_types;
                    pub type PastCodePruning = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u32,
                    )>;
                }
                pub mod future_code_upgrades {
                    use super::runtime_types;
                    pub type FutureCodeUpgrades = ::core::primitive::u32;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod future_code_upgrades_at {
                    use super::runtime_types;
                    pub type FutureCodeUpgradesAt = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u32,
                    )>;
                }
                pub mod future_code_hash {
                    use super::runtime_types;
                    pub type FutureCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod authorized_code_hash {
                    use super::runtime_types;
                    pub type AuthorizedCodeHash = runtime_types :: polkadot_runtime_parachains :: paras :: AuthorizedCodeHashAndExpiry < :: core :: primitive :: u32 > ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod upgrade_go_ahead_signal {
                    use super::runtime_types;
                    pub type UpgradeGoAheadSignal =
                        runtime_types::polkadot_primitives::v8::UpgradeGoAhead;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod upgrade_restriction_signal {
                    use super::runtime_types;
                    pub type UpgradeRestrictionSignal =
                        runtime_types::polkadot_primitives::v8::UpgradeRestriction;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod upgrade_cooldowns {
                    use super::runtime_types;
                    pub type UpgradeCooldowns = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u32,
                    )>;
                }
                pub mod upcoming_upgrades {
                    use super::runtime_types;
                    pub type UpcomingUpgrades = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u32,
                    )>;
                }
                pub mod actions_queue {
                    use super::runtime_types;
                    pub type ActionsQueue = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod upcoming_paras_genesis {
                    use super::runtime_types;
                    pub type UpcomingParasGenesis =
                        runtime_types::polkadot_runtime_parachains::paras::ParaGenesisArgs;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod code_by_hash_refs {
                    use super::runtime_types;
                    pub type CodeByHashRefs = ::core::primitive::u32;
                    pub type Param0 = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                }
                pub mod code_by_hash {
                    use super::runtime_types;
                    pub type CodeByHash =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                    pub type Param0 = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " All currently active PVF pre-checking votes."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa."]
                pub fn pvf_active_vote_map_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pvf_active_vote_map::PvfActiveVoteMap,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PvfActiveVoteMap",
                        (),
                        [
                            180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8,
                            245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8,
                            72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8,
                        ],
                    )
                }
                #[doc = " All currently active PVF pre-checking votes."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa."]
                pub fn pvf_active_vote_map(
                    &self,
                    _0: types::pvf_active_vote_map::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::pvf_active_vote_map::Param0,
                    >,
                    types::pvf_active_vote_map::PvfActiveVoteMap,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PvfActiveVoteMap",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8,
                            245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8,
                            72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8,
                        ],
                    )
                }
                #[doc = " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`."]
                pub fn pvf_active_vote_list(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pvf_active_vote_list::PvfActiveVoteList,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PvfActiveVoteList",
                        (),
                        [
                            172u8, 215u8, 137u8, 191u8, 52u8, 104u8, 106u8, 118u8, 134u8, 82u8,
                            137u8, 6u8, 175u8, 158u8, 58u8, 230u8, 231u8, 152u8, 195u8, 17u8, 51u8,
                            133u8, 10u8, 205u8, 212u8, 6u8, 24u8, 59u8, 114u8, 222u8, 96u8, 42u8,
                        ],
                    )
                }
                #[doc = " All lease holding parachains. Ordered ascending by `ParaId`. On demand parachains are not"]
                #[doc = " included."]
                #[doc = ""]
                #[doc = " Consider using the [`ParachainsCache`] type of modifying."]
                pub fn parachains(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::parachains::Parachains,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "Parachains",
                        (),
                        [
                            242u8, 228u8, 175u8, 107u8, 242u8, 39u8, 52u8, 181u8, 32u8, 171u8,
                            21u8, 169u8, 204u8, 19u8, 21u8, 217u8, 121u8, 239u8, 218u8, 252u8,
                            80u8, 188u8, 119u8, 157u8, 235u8, 218u8, 221u8, 113u8, 0u8, 108u8,
                            245u8, 210u8,
                        ],
                    )
                }
                #[doc = " The current lifecycle of a all known Para IDs."]
                pub fn para_lifecycles_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::para_lifecycles::ParaLifecycles,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "ParaLifecycles",
                        (),
                        [
                            2u8, 203u8, 32u8, 194u8, 76u8, 227u8, 250u8, 9u8, 168u8, 201u8, 171u8,
                            180u8, 18u8, 169u8, 206u8, 183u8, 48u8, 189u8, 204u8, 192u8, 237u8,
                            233u8, 156u8, 255u8, 102u8, 22u8, 101u8, 110u8, 194u8, 55u8, 118u8,
                            81u8,
                        ],
                    )
                }
                #[doc = " The current lifecycle of a all known Para IDs."]
                pub fn para_lifecycles(
                    &self,
                    _0: types::para_lifecycles::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::para_lifecycles::Param0,
                    >,
                    types::para_lifecycles::ParaLifecycles,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "ParaLifecycles",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            2u8, 203u8, 32u8, 194u8, 76u8, 227u8, 250u8, 9u8, 168u8, 201u8, 171u8,
                            180u8, 18u8, 169u8, 206u8, 183u8, 48u8, 189u8, 204u8, 192u8, 237u8,
                            233u8, 156u8, 255u8, 102u8, 22u8, 101u8, 110u8, 194u8, 55u8, 118u8,
                            81u8,
                        ],
                    )
                }
                #[doc = " The head-data of every registered para."]
                pub fn heads_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::heads::Heads,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "Heads",
                        (),
                        [
                            222u8, 116u8, 180u8, 190u8, 172u8, 192u8, 174u8, 132u8, 225u8, 180u8,
                            119u8, 90u8, 5u8, 39u8, 92u8, 230u8, 116u8, 202u8, 92u8, 99u8, 135u8,
                            201u8, 10u8, 58u8, 55u8, 211u8, 209u8, 86u8, 93u8, 133u8, 99u8, 139u8,
                        ],
                    )
                }
                #[doc = " The head-data of every registered para."]
                pub fn heads(
                    &self,
                    _0: types::heads::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::heads::Param0,
                    >,
                    types::heads::Heads,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "Heads",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            222u8, 116u8, 180u8, 190u8, 172u8, 192u8, 174u8, 132u8, 225u8, 180u8,
                            119u8, 90u8, 5u8, 39u8, 92u8, 230u8, 116u8, 202u8, 92u8, 99u8, 135u8,
                            201u8, 10u8, 58u8, 55u8, 211u8, 209u8, 86u8, 93u8, 133u8, 99u8, 139u8,
                        ],
                    )
                }
                #[doc = " The context (relay-chain block number) of the most recent parachain head."]
                pub fn most_recent_context_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::most_recent_context::MostRecentContext,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "MostRecentContext",
                        (),
                        [
                            196u8, 150u8, 125u8, 121u8, 196u8, 182u8, 2u8, 5u8, 244u8, 170u8, 75u8,
                            57u8, 162u8, 8u8, 104u8, 94u8, 114u8, 32u8, 192u8, 236u8, 120u8, 91u8,
                            84u8, 118u8, 216u8, 143u8, 61u8, 208u8, 57u8, 180u8, 216u8, 243u8,
                        ],
                    )
                }
                #[doc = " The context (relay-chain block number) of the most recent parachain head."]
                pub fn most_recent_context(
                    &self,
                    _0: types::most_recent_context::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::most_recent_context::Param0,
                    >,
                    types::most_recent_context::MostRecentContext,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "MostRecentContext",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            196u8, 150u8, 125u8, 121u8, 196u8, 182u8, 2u8, 5u8, 244u8, 170u8, 75u8,
                            57u8, 162u8, 8u8, 104u8, 94u8, 114u8, 32u8, 192u8, 236u8, 120u8, 91u8,
                            84u8, 118u8, 216u8, 143u8, 61u8, 208u8, 57u8, 180u8, 216u8, 243u8,
                        ],
                    )
                }
                #[doc = " The validation code hash of every live para."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn current_code_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_code_hash::CurrentCodeHash,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CurrentCodeHash",
                        (),
                        [
                            251u8, 100u8, 30u8, 46u8, 191u8, 60u8, 45u8, 221u8, 218u8, 20u8, 154u8,
                            233u8, 211u8, 198u8, 151u8, 195u8, 99u8, 210u8, 126u8, 165u8, 240u8,
                            129u8, 183u8, 252u8, 104u8, 119u8, 38u8, 155u8, 150u8, 198u8, 127u8,
                            103u8,
                        ],
                    )
                }
                #[doc = " The validation code hash of every live para."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn current_code_hash(
                    &self,
                    _0: types::current_code_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::current_code_hash::Param0,
                    >,
                    types::current_code_hash::CurrentCodeHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CurrentCodeHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            251u8, 100u8, 30u8, 46u8, 191u8, 60u8, 45u8, 221u8, 218u8, 20u8, 154u8,
                            233u8, 211u8, 198u8, 151u8, 195u8, 99u8, 210u8, 126u8, 165u8, 240u8,
                            129u8, 183u8, 252u8, 104u8, 119u8, 38u8, 155u8, 150u8, 198u8, 127u8,
                            103u8,
                        ],
                    )
                }
                #[doc = " Actual past code hash, indicated by the para id as well as the block number at which it"]
                #[doc = " became outdated."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn past_code_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::past_code_hash::PastCodeHash,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PastCodeHash",
                        (),
                        [
                            73u8, 209u8, 188u8, 36u8, 127u8, 42u8, 171u8, 136u8, 29u8, 126u8,
                            220u8, 209u8, 230u8, 22u8, 12u8, 63u8, 8u8, 102u8, 45u8, 158u8, 178u8,
                            232u8, 8u8, 6u8, 71u8, 188u8, 140u8, 41u8, 10u8, 215u8, 22u8, 153u8,
                        ],
                    )
                }
                #[doc = " Actual past code hash, indicated by the para id as well as the block number at which it"]
                #[doc = " became outdated."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn past_code_hash(
                    &self,
                    _0: types::past_code_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::past_code_hash::Param0,
                    >,
                    types::past_code_hash::PastCodeHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PastCodeHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            73u8, 209u8, 188u8, 36u8, 127u8, 42u8, 171u8, 136u8, 29u8, 126u8,
                            220u8, 209u8, 230u8, 22u8, 12u8, 63u8, 8u8, 102u8, 45u8, 158u8, 178u8,
                            232u8, 8u8, 6u8, 71u8, 188u8, 140u8, 41u8, 10u8, 215u8, 22u8, 153u8,
                        ],
                    )
                }
                #[doc = " Past code of parachains. The parachains themselves may not be registered anymore,"]
                #[doc = " but we also keep their code on-chain for the same amount of time as outdated code"]
                #[doc = " to keep it available for approval checkers."]
                pub fn past_code_meta_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::past_code_meta::PastCodeMeta,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PastCodeMeta",
                        (),
                        [
                            233u8, 47u8, 137u8, 174u8, 98u8, 64u8, 11u8, 75u8, 93u8, 222u8, 78u8,
                            58u8, 66u8, 245u8, 151u8, 39u8, 144u8, 36u8, 84u8, 176u8, 239u8, 183u8,
                            197u8, 176u8, 158u8, 139u8, 121u8, 189u8, 29u8, 244u8, 229u8, 73u8,
                        ],
                    )
                }
                #[doc = " Past code of parachains. The parachains themselves may not be registered anymore,"]
                #[doc = " but we also keep their code on-chain for the same amount of time as outdated code"]
                #[doc = " to keep it available for approval checkers."]
                pub fn past_code_meta(
                    &self,
                    _0: types::past_code_meta::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::past_code_meta::Param0,
                    >,
                    types::past_code_meta::PastCodeMeta,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PastCodeMeta",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            233u8, 47u8, 137u8, 174u8, 98u8, 64u8, 11u8, 75u8, 93u8, 222u8, 78u8,
                            58u8, 66u8, 245u8, 151u8, 39u8, 144u8, 36u8, 84u8, 176u8, 239u8, 183u8,
                            197u8, 176u8, 158u8, 139u8, 121u8, 189u8, 29u8, 244u8, 229u8, 73u8,
                        ],
                    )
                }
                #[doc = " Which paras have past code that needs pruning and the relay-chain block at which the code"]
                #[doc = " was replaced. Note that this is the actual height of the included block, not the expected"]
                #[doc = " height at which the code upgrade would be applied, although they may be equal."]
                #[doc = " This is to ensure the entire acceptance period is covered, not an offset acceptance period"]
                #[doc = " starting from the time at which the parachain perceives a code upgrade as having occurred."]
                #[doc = " Multiple entries for a single para are permitted. Ordered ascending by block number."]
                pub fn past_code_pruning(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::past_code_pruning::PastCodePruning,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "PastCodePruning",
                        (),
                        [
                            67u8, 190u8, 51u8, 133u8, 173u8, 24u8, 151u8, 111u8, 108u8, 152u8,
                            106u8, 18u8, 29u8, 80u8, 104u8, 120u8, 91u8, 138u8, 209u8, 49u8, 255u8,
                            211u8, 53u8, 195u8, 61u8, 188u8, 183u8, 53u8, 37u8, 230u8, 53u8, 183u8,
                        ],
                    )
                }
                #[doc = " The block number at which the planned code change is expected for a parachain."]
                #[doc = ""]
                #[doc = " The change will be applied after the first parablock for this ID included which executes"]
                #[doc = " in the context of a relay chain block with a number >= `expected_at`."]
                pub fn future_code_upgrades_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::future_code_upgrades::FutureCodeUpgrades,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "FutureCodeUpgrades",
                        (),
                        [
                            163u8, 168u8, 23u8, 138u8, 198u8, 70u8, 135u8, 221u8, 167u8, 187u8,
                            15u8, 144u8, 228u8, 8u8, 138u8, 125u8, 101u8, 154u8, 11u8, 74u8, 173u8,
                            167u8, 17u8, 97u8, 240u8, 6u8, 20u8, 161u8, 25u8, 111u8, 242u8, 9u8,
                        ],
                    )
                }
                #[doc = " The block number at which the planned code change is expected for a parachain."]
                #[doc = ""]
                #[doc = " The change will be applied after the first parablock for this ID included which executes"]
                #[doc = " in the context of a relay chain block with a number >= `expected_at`."]
                pub fn future_code_upgrades(
                    &self,
                    _0: types::future_code_upgrades::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::future_code_upgrades::Param0,
                    >,
                    types::future_code_upgrades::FutureCodeUpgrades,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "FutureCodeUpgrades",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            163u8, 168u8, 23u8, 138u8, 198u8, 70u8, 135u8, 221u8, 167u8, 187u8,
                            15u8, 144u8, 228u8, 8u8, 138u8, 125u8, 101u8, 154u8, 11u8, 74u8, 173u8,
                            167u8, 17u8, 97u8, 240u8, 6u8, 20u8, 161u8, 25u8, 111u8, 242u8, 9u8,
                        ],
                    )
                }
                #[doc = " The list of upcoming future code upgrades."]
                #[doc = ""]
                #[doc = " Each item is a pair of the parachain and the expected block at which the upgrade should be"]
                #[doc = " applied. The upgrade will be applied at the given relay chain block. In contrast to"]
                #[doc = " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the parachain making any"]
                #[doc = " progress or not."]
                #[doc = ""]
                #[doc = " Ordered ascending by block number."]
                pub fn future_code_upgrades_at(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::future_code_upgrades_at::FutureCodeUpgradesAt,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "FutureCodeUpgradesAt",
                        (),
                        [
                            106u8, 115u8, 201u8, 132u8, 198u8, 78u8, 236u8, 157u8, 246u8, 176u8,
                            236u8, 158u8, 90u8, 166u8, 25u8, 230u8, 30u8, 149u8, 163u8, 15u8,
                            108u8, 145u8, 167u8, 118u8, 74u8, 211u8, 96u8, 173u8, 56u8, 11u8,
                            181u8, 146u8,
                        ],
                    )
                }
                #[doc = " The actual future code hash of a para."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn future_code_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::future_code_hash::FutureCodeHash,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "FutureCodeHash",
                        (),
                        [
                            62u8, 238u8, 183u8, 12u8, 197u8, 119u8, 163u8, 239u8, 192u8, 228u8,
                            110u8, 58u8, 128u8, 223u8, 32u8, 137u8, 109u8, 127u8, 41u8, 83u8, 91u8,
                            98u8, 156u8, 118u8, 96u8, 147u8, 16u8, 31u8, 5u8, 92u8, 227u8, 230u8,
                        ],
                    )
                }
                #[doc = " The actual future code hash of a para."]
                #[doc = ""]
                #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."]
                pub fn future_code_hash(
                    &self,
                    _0: types::future_code_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::future_code_hash::Param0,
                    >,
                    types::future_code_hash::FutureCodeHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "FutureCodeHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            62u8, 238u8, 183u8, 12u8, 197u8, 119u8, 163u8, 239u8, 192u8, 228u8,
                            110u8, 58u8, 128u8, 223u8, 32u8, 137u8, 109u8, 127u8, 41u8, 83u8, 91u8,
                            98u8, 156u8, 118u8, 96u8, 147u8, 16u8, 31u8, 5u8, 92u8, 227u8, 230u8,
                        ],
                    )
                }
                #[doc = " The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor<T>`."]
                pub fn authorized_code_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorized_code_hash::AuthorizedCodeHash,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "AuthorizedCodeHash",
                        (),
                        [
                            40u8, 172u8, 86u8, 193u8, 229u8, 230u8, 29u8, 63u8, 188u8, 154u8,
                            240u8, 236u8, 117u8, 218u8, 221u8, 102u8, 154u8, 246u8, 136u8, 153u8,
                            225u8, 171u8, 156u8, 219u8, 91u8, 2u8, 69u8, 34u8, 119u8, 119u8, 206u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor<T>`."]
                pub fn authorized_code_hash(
                    &self,
                    _0: types::authorized_code_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::authorized_code_hash::Param0,
                    >,
                    types::authorized_code_hash::AuthorizedCodeHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "AuthorizedCodeHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            40u8, 172u8, 86u8, 193u8, 229u8, 230u8, 29u8, 63u8, 188u8, 154u8,
                            240u8, 236u8, 117u8, 218u8, 221u8, 102u8, 154u8, 246u8, 136u8, 153u8,
                            225u8, 171u8, 156u8, 219u8, 91u8, 2u8, 69u8, 34u8, 119u8, 119u8, 206u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade"]
                #[doc = " procedure."]
                #[doc = ""]
                #[doc = " This value is absent when there are no upgrades scheduled or during the time the relay chain"]
                #[doc = " performs the checks. It is set at the first relay-chain block when the corresponding"]
                #[doc = " parachain can switch its upgrade function. As soon as the parachain's block is included, the"]
                #[doc = " value gets reset to `None`."]
                #[doc = ""]
                #[doc = " NOTE that this field is used by parachains via merkle storage proofs, therefore changing"]
                #[doc = " the format will require migration of parachains."]
                pub fn upgrade_go_ahead_signal_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upgrade_go_ahead_signal::UpgradeGoAheadSignal,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpgradeGoAheadSignal",
                        (),
                        [
                            41u8, 80u8, 120u8, 6u8, 98u8, 85u8, 36u8, 37u8, 170u8, 189u8, 56u8,
                            127u8, 155u8, 180u8, 112u8, 195u8, 135u8, 214u8, 235u8, 87u8, 197u8,
                            247u8, 125u8, 26u8, 232u8, 82u8, 250u8, 90u8, 126u8, 106u8, 62u8,
                            217u8,
                        ],
                    )
                }
                #[doc = " This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade"]
                #[doc = " procedure."]
                #[doc = ""]
                #[doc = " This value is absent when there are no upgrades scheduled or during the time the relay chain"]
                #[doc = " performs the checks. It is set at the first relay-chain block when the corresponding"]
                #[doc = " parachain can switch its upgrade function. As soon as the parachain's block is included, the"]
                #[doc = " value gets reset to `None`."]
                #[doc = ""]
                #[doc = " NOTE that this field is used by parachains via merkle storage proofs, therefore changing"]
                #[doc = " the format will require migration of parachains."]
                pub fn upgrade_go_ahead_signal(
                    &self,
                    _0: types::upgrade_go_ahead_signal::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::upgrade_go_ahead_signal::Param0,
                    >,
                    types::upgrade_go_ahead_signal::UpgradeGoAheadSignal,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpgradeGoAheadSignal",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            41u8, 80u8, 120u8, 6u8, 98u8, 85u8, 36u8, 37u8, 170u8, 189u8, 56u8,
                            127u8, 155u8, 180u8, 112u8, 195u8, 135u8, 214u8, 235u8, 87u8, 197u8,
                            247u8, 125u8, 26u8, 232u8, 82u8, 250u8, 90u8, 126u8, 106u8, 62u8,
                            217u8,
                        ],
                    )
                }
                #[doc = " This is used by the relay-chain to communicate that there are restrictions for performing"]
                #[doc = " an upgrade for this parachain."]
                #[doc = ""]
                #[doc = " This may be a because the parachain waits for the upgrade cooldown to expire. Another"]
                #[doc = " potential use case is when we want to perform some maintenance (such as storage migration)"]
                #[doc = " we could restrict upgrades to make the process simpler."]
                #[doc = ""]
                #[doc = " NOTE that this field is used by parachains via merkle storage proofs, therefore changing"]
                #[doc = " the format will require migration of parachains."]
                pub fn upgrade_restriction_signal_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upgrade_restriction_signal::UpgradeRestrictionSignal,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpgradeRestrictionSignal",
                        (),
                        [
                            158u8, 105u8, 62u8, 252u8, 149u8, 145u8, 34u8, 92u8, 119u8, 204u8,
                            46u8, 96u8, 117u8, 183u8, 134u8, 20u8, 172u8, 243u8, 145u8, 113u8,
                            74u8, 119u8, 96u8, 107u8, 129u8, 109u8, 96u8, 143u8, 77u8, 14u8, 56u8,
                            117u8,
                        ],
                    )
                }
                #[doc = " This is used by the relay-chain to communicate that there are restrictions for performing"]
                #[doc = " an upgrade for this parachain."]
                #[doc = ""]
                #[doc = " This may be a because the parachain waits for the upgrade cooldown to expire. Another"]
                #[doc = " potential use case is when we want to perform some maintenance (such as storage migration)"]
                #[doc = " we could restrict upgrades to make the process simpler."]
                #[doc = ""]
                #[doc = " NOTE that this field is used by parachains via merkle storage proofs, therefore changing"]
                #[doc = " the format will require migration of parachains."]
                pub fn upgrade_restriction_signal(
                    &self,
                    _0: types::upgrade_restriction_signal::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::upgrade_restriction_signal::Param0,
                    >,
                    types::upgrade_restriction_signal::UpgradeRestrictionSignal,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpgradeRestrictionSignal",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            158u8, 105u8, 62u8, 252u8, 149u8, 145u8, 34u8, 92u8, 119u8, 204u8,
                            46u8, 96u8, 117u8, 183u8, 134u8, 20u8, 172u8, 243u8, 145u8, 113u8,
                            74u8, 119u8, 96u8, 107u8, 129u8, 109u8, 96u8, 143u8, 77u8, 14u8, 56u8,
                            117u8,
                        ],
                    )
                }
                #[doc = " The list of parachains that are awaiting for their upgrade restriction to cooldown."]
                #[doc = ""]
                #[doc = " Ordered ascending by block number."]
                pub fn upgrade_cooldowns(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upgrade_cooldowns::UpgradeCooldowns,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpgradeCooldowns",
                        (),
                        [
                            180u8, 197u8, 115u8, 209u8, 126u8, 120u8, 133u8, 54u8, 232u8, 192u8,
                            47u8, 17u8, 21u8, 8u8, 231u8, 67u8, 1u8, 89u8, 127u8, 38u8, 179u8,
                            190u8, 169u8, 110u8, 20u8, 92u8, 139u8, 227u8, 26u8, 59u8, 245u8,
                            174u8,
                        ],
                    )
                }
                #[doc = " The list of upcoming code upgrades."]
                #[doc = ""]
                #[doc = " Each item is a pair of which para performs a code upgrade and at which relay-chain block it"]
                #[doc = " is expected at."]
                #[doc = ""]
                #[doc = " Ordered ascending by block number."]
                pub fn upcoming_upgrades(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upcoming_upgrades::UpcomingUpgrades,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpcomingUpgrades",
                        (),
                        [
                            38u8, 195u8, 15u8, 56u8, 225u8, 199u8, 105u8, 84u8, 128u8, 51u8, 44u8,
                            248u8, 237u8, 32u8, 36u8, 72u8, 77u8, 137u8, 124u8, 88u8, 242u8, 185u8,
                            50u8, 148u8, 216u8, 156u8, 209u8, 101u8, 207u8, 127u8, 66u8, 95u8,
                        ],
                    )
                }
                #[doc = " The actions to perform during the start of a specific session index."]
                pub fn actions_queue_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::actions_queue::ActionsQueue,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "ActionsQueue",
                        (),
                        [
                            13u8, 25u8, 129u8, 203u8, 95u8, 206u8, 254u8, 240u8, 170u8, 209u8,
                            55u8, 117u8, 70u8, 220u8, 139u8, 102u8, 9u8, 229u8, 139u8, 120u8, 67u8,
                            246u8, 214u8, 59u8, 81u8, 116u8, 54u8, 67u8, 129u8, 32u8, 67u8, 92u8,
                        ],
                    )
                }
                #[doc = " The actions to perform during the start of a specific session index."]
                pub fn actions_queue(
                    &self,
                    _0: types::actions_queue::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::actions_queue::Param0,
                    >,
                    types::actions_queue::ActionsQueue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "ActionsQueue",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            13u8, 25u8, 129u8, 203u8, 95u8, 206u8, 254u8, 240u8, 170u8, 209u8,
                            55u8, 117u8, 70u8, 220u8, 139u8, 102u8, 9u8, 229u8, 139u8, 120u8, 67u8,
                            246u8, 214u8, 59u8, 81u8, 116u8, 54u8, 67u8, 129u8, 32u8, 67u8, 92u8,
                        ],
                    )
                }
                #[doc = " Upcoming paras instantiation arguments."]
                #[doc = ""]
                #[doc = " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set"]
                #[doc = " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`."]
                pub fn upcoming_paras_genesis_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::upcoming_paras_genesis::UpcomingParasGenesis,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpcomingParasGenesis",
                        (),
                        [
                            215u8, 121u8, 106u8, 13u8, 102u8, 47u8, 129u8, 221u8, 153u8, 91u8,
                            23u8, 94u8, 11u8, 39u8, 19u8, 180u8, 136u8, 136u8, 254u8, 152u8, 250u8,
                            150u8, 40u8, 87u8, 135u8, 121u8, 219u8, 151u8, 111u8, 35u8, 43u8,
                            195u8,
                        ],
                    )
                }
                #[doc = " Upcoming paras instantiation arguments."]
                #[doc = ""]
                #[doc = " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set"]
                #[doc = " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`."]
                pub fn upcoming_paras_genesis(
                    &self,
                    _0: types::upcoming_paras_genesis::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::upcoming_paras_genesis::Param0,
                    >,
                    types::upcoming_paras_genesis::UpcomingParasGenesis,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "UpcomingParasGenesis",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            215u8, 121u8, 106u8, 13u8, 102u8, 47u8, 129u8, 221u8, 153u8, 91u8,
                            23u8, 94u8, 11u8, 39u8, 19u8, 180u8, 136u8, 136u8, 254u8, 152u8, 250u8,
                            150u8, 40u8, 87u8, 135u8, 121u8, 219u8, 151u8, 111u8, 35u8, 43u8,
                            195u8,
                        ],
                    )
                }
                #[doc = " The number of reference on the validation code in [`CodeByHash`] storage."]
                pub fn code_by_hash_refs_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::code_by_hash_refs::CodeByHashRefs,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CodeByHashRefs",
                        (),
                        [
                            47u8, 50u8, 103u8, 161u8, 130u8, 252u8, 157u8, 35u8, 174u8, 37u8,
                            102u8, 60u8, 195u8, 30u8, 164u8, 203u8, 67u8, 129u8, 107u8, 181u8,
                            166u8, 205u8, 230u8, 91u8, 36u8, 187u8, 253u8, 150u8, 39u8, 168u8,
                            223u8, 16u8,
                        ],
                    )
                }
                #[doc = " The number of reference on the validation code in [`CodeByHash`] storage."]
                pub fn code_by_hash_refs(
                    &self,
                    _0: types::code_by_hash_refs::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::code_by_hash_refs::Param0,
                    >,
                    types::code_by_hash_refs::CodeByHashRefs,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CodeByHashRefs",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            47u8, 50u8, 103u8, 161u8, 130u8, 252u8, 157u8, 35u8, 174u8, 37u8,
                            102u8, 60u8, 195u8, 30u8, 164u8, 203u8, 67u8, 129u8, 107u8, 181u8,
                            166u8, 205u8, 230u8, 91u8, 36u8, 187u8, 253u8, 150u8, 39u8, 168u8,
                            223u8, 16u8,
                        ],
                    )
                }
                #[doc = " Validation code stored by its hash."]
                #[doc = ""]
                #[doc = " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and"]
                #[doc = " [`PastCodeHash`]."]
                pub fn code_by_hash_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::code_by_hash::CodeByHash,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CodeByHash",
                        (),
                        [
                            155u8, 102u8, 73u8, 180u8, 127u8, 211u8, 181u8, 44u8, 56u8, 235u8,
                            49u8, 4u8, 25u8, 213u8, 116u8, 200u8, 232u8, 203u8, 190u8, 90u8, 93u8,
                            6u8, 57u8, 227u8, 240u8, 92u8, 157u8, 129u8, 3u8, 148u8, 45u8, 143u8,
                        ],
                    )
                }
                #[doc = " Validation code stored by its hash."]
                #[doc = ""]
                #[doc = " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and"]
                #[doc = " [`PastCodeHash`]."]
                pub fn code_by_hash(
                    &self,
                    _0: types::code_by_hash::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::code_by_hash::Param0,
                    >,
                    types::code_by_hash::CodeByHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Paras",
                        "CodeByHash",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            155u8, 102u8, 73u8, 180u8, 127u8, 211u8, 181u8, 44u8, 56u8, 235u8,
                            49u8, 4u8, 25u8, 213u8, 116u8, 200u8, 232u8, 203u8, 190u8, 90u8, 93u8,
                            6u8, 57u8, 227u8, 240u8, 92u8, 157u8, 129u8, 3u8, 148u8, 45u8, 143u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                pub fn unsigned_priority(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Paras",
                        "UnsignedPriority",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod initializer {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::initializer::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"]
                #[doc = "blocks in all relay chain blocks up to and including the given number in the current"]
                #[doc = "chain are valid and should be finalized."]
                pub struct ForceApprove {
                    pub up_to: force_approve::UpTo,
                }
                pub mod force_approve {
                    use super::runtime_types;
                    pub type UpTo = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceApprove {
                    const PALLET: &'static str = "Initializer";
                    const CALL: &'static str = "force_approve";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"]
                #[doc = "blocks in all relay chain blocks up to and including the given number in the current"]
                #[doc = "chain are valid and should be finalized."]
                pub fn force_approve(
                    &self,
                    up_to: types::force_approve::UpTo,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceApprove>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Initializer",
                        "force_approve",
                        types::ForceApprove { up_to },
                        [
                            232u8, 166u8, 27u8, 229u8, 157u8, 240u8, 18u8, 137u8, 5u8, 159u8,
                            179u8, 239u8, 218u8, 41u8, 181u8, 42u8, 159u8, 243u8, 246u8, 214u8,
                            227u8, 77u8, 58u8, 70u8, 241u8, 114u8, 175u8, 124u8, 77u8, 102u8,
                            105u8, 199u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod has_initialized {
                    use super::runtime_types;
                    pub type HasInitialized = ();
                }
                pub mod buffered_session_changes {
                    use super::runtime_types;
                    pub type BufferedSessionChanges = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: initializer :: BufferedSessionChange > ;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Whether the parachains modules have been initialized within this block."]
                #[doc = ""]
                #[doc = " Semantically a `bool`, but this guarantees it should never hit the trie,"]
                #[doc = " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values."]
                #[doc = ""]
                #[doc = " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one"]
                #[doc = " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable"]
                #[doc = " for the semantics of this variable."]
                pub fn has_initialized(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::has_initialized::HasInitialized,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Initializer",
                        "HasInitialized",
                        (),
                        [
                            156u8, 208u8, 212u8, 86u8, 105u8, 148u8, 252u8, 11u8, 140u8, 67u8,
                            231u8, 86u8, 1u8, 147u8, 178u8, 79u8, 27u8, 249u8, 137u8, 103u8, 178u8,
                            50u8, 114u8, 157u8, 239u8, 86u8, 89u8, 233u8, 86u8, 58u8, 37u8, 67u8,
                        ],
                    )
                }
                #[doc = " Buffered session changes."]
                #[doc = ""]
                #[doc = " Typically this will be empty or one element long. Apart from that this item never hits"]
                #[doc = " the storage."]
                #[doc = ""]
                #[doc = " However this is a `Vec` regardless to handle various edge cases that may occur at runtime"]
                #[doc = " upgrade boundaries or if governance intervenes."]
                pub fn buffered_session_changes(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::buffered_session_changes::BufferedSessionChanges,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Initializer",
                        "BufferedSessionChanges",
                        (),
                        [
                            52u8, 253u8, 99u8, 88u8, 47u8, 128u8, 246u8, 183u8, 252u8, 144u8,
                            187u8, 140u8, 169u8, 21u8, 167u8, 72u8, 246u8, 217u8, 140u8, 234u8,
                            222u8, 57u8, 254u8, 33u8, 237u8, 212u8, 136u8, 204u8, 79u8, 185u8,
                            83u8, 36u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod dmp {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod downward_message_queues {
                    use super::runtime_types;
                    pub type DownwardMessageQueues = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_core_primitives::InboundDownwardMessage<
                            ::core::primitive::u32,
                        >,
                    >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod downward_message_queue_heads {
                    use super::runtime_types;
                    pub type DownwardMessageQueueHeads = ::subxt::ext::subxt_core::utils::H256;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod delivery_fee_factor {
                    use super::runtime_types;
                    pub type DeliveryFeeFactor =
                        runtime_types::sp_arithmetic::fixed_point::FixedU128;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The downward messages addressed for a certain para."]
                pub fn downward_message_queues_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::downward_message_queues::DownwardMessageQueues,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DownwardMessageQueues",
                        (),
                        [
                            38u8, 183u8, 133u8, 200u8, 199u8, 135u8, 68u8, 232u8, 189u8, 168u8,
                            3u8, 219u8, 201u8, 180u8, 156u8, 79u8, 134u8, 164u8, 94u8, 114u8,
                            102u8, 25u8, 108u8, 53u8, 219u8, 155u8, 102u8, 100u8, 58u8, 28u8,
                            246u8, 20u8,
                        ],
                    )
                }
                #[doc = " The downward messages addressed for a certain para."]
                pub fn downward_message_queues(
                    &self,
                    _0: types::downward_message_queues::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::downward_message_queues::Param0,
                    >,
                    types::downward_message_queues::DownwardMessageQueues,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DownwardMessageQueues",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            38u8, 183u8, 133u8, 200u8, 199u8, 135u8, 68u8, 232u8, 189u8, 168u8,
                            3u8, 219u8, 201u8, 180u8, 156u8, 79u8, 134u8, 164u8, 94u8, 114u8,
                            102u8, 25u8, 108u8, 53u8, 219u8, 155u8, 102u8, 100u8, 58u8, 28u8,
                            246u8, 20u8,
                        ],
                    )
                }
                #[doc = " A mapping that stores the downward message queue MQC head for each para."]
                #[doc = ""]
                #[doc = " Each link in this chain has a form:"]
                #[doc = " `(prev_head, B, H(M))`, where"]
                #[doc = " - `prev_head`: is the previous head hash or zero if none."]
                #[doc = " - `B`: is the relay-chain block number in which a message was appended."]
                #[doc = " - `H(M)`: is the hash of the message being appended."]
                pub fn downward_message_queue_heads_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::downward_message_queue_heads::DownwardMessageQueueHeads,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DownwardMessageQueueHeads",
                        (),
                        [
                            135u8, 165u8, 240u8, 0u8, 25u8, 110u8, 9u8, 108u8, 251u8, 225u8, 109u8,
                            184u8, 90u8, 132u8, 9u8, 151u8, 12u8, 118u8, 153u8, 212u8, 140u8,
                            205u8, 94u8, 98u8, 110u8, 167u8, 155u8, 43u8, 61u8, 35u8, 52u8, 56u8,
                        ],
                    )
                }
                #[doc = " A mapping that stores the downward message queue MQC head for each para."]
                #[doc = ""]
                #[doc = " Each link in this chain has a form:"]
                #[doc = " `(prev_head, B, H(M))`, where"]
                #[doc = " - `prev_head`: is the previous head hash or zero if none."]
                #[doc = " - `B`: is the relay-chain block number in which a message was appended."]
                #[doc = " - `H(M)`: is the hash of the message being appended."]
                pub fn downward_message_queue_heads(
                    &self,
                    _0: types::downward_message_queue_heads::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::downward_message_queue_heads::Param0,
                    >,
                    types::downward_message_queue_heads::DownwardMessageQueueHeads,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DownwardMessageQueueHeads",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            135u8, 165u8, 240u8, 0u8, 25u8, 110u8, 9u8, 108u8, 251u8, 225u8, 109u8,
                            184u8, 90u8, 132u8, 9u8, 151u8, 12u8, 118u8, 153u8, 212u8, 140u8,
                            205u8, 94u8, 98u8, 110u8, 167u8, 155u8, 43u8, 61u8, 35u8, 52u8, 56u8,
                        ],
                    )
                }
                #[doc = " The factor to multiply the base delivery fee by."]
                pub fn delivery_fee_factor_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::delivery_fee_factor::DeliveryFeeFactor,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DeliveryFeeFactor",
                        (),
                        [
                            43u8, 5u8, 63u8, 235u8, 115u8, 155u8, 130u8, 27u8, 75u8, 216u8, 177u8,
                            135u8, 203u8, 147u8, 167u8, 95u8, 208u8, 188u8, 25u8, 14u8, 84u8, 63u8,
                            116u8, 41u8, 148u8, 110u8, 115u8, 215u8, 196u8, 36u8, 75u8, 102u8,
                        ],
                    )
                }
                #[doc = " The factor to multiply the base delivery fee by."]
                pub fn delivery_fee_factor(
                    &self,
                    _0: types::delivery_fee_factor::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::delivery_fee_factor::Param0,
                    >,
                    types::delivery_fee_factor::DeliveryFeeFactor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Dmp",
                        "DeliveryFeeFactor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            43u8, 5u8, 63u8, 235u8, 115u8, 155u8, 130u8, 27u8, 75u8, 216u8, 177u8,
                            135u8, 203u8, 147u8, 167u8, 95u8, 208u8, 188u8, 25u8, 14u8, 84u8, 63u8,
                            116u8, 41u8, 148u8, 110u8, 115u8, 215u8, 196u8, 36u8, 75u8, 102u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod hrmp {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::hrmp::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::hrmp::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"]
                #[doc = "parameters."]
                #[doc = ""]
                #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."]
                #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."]
                #[doc = ""]
                #[doc = "These numbers are a subject to the relay-chain configuration limits."]
                #[doc = ""]
                #[doc = "The channel can be opened only after the recipient confirms it and only on a session"]
                #[doc = "change."]
                pub struct HrmpInitOpenChannel {
                    pub recipient: hrmp_init_open_channel::Recipient,
                    pub proposed_max_capacity: hrmp_init_open_channel::ProposedMaxCapacity,
                    pub proposed_max_message_size: hrmp_init_open_channel::ProposedMaxMessageSize,
                }
                pub mod hrmp_init_open_channel {
                    use super::runtime_types;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type ProposedMaxCapacity = ::core::primitive::u32;
                    pub type ProposedMaxMessageSize = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for HrmpInitOpenChannel {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "hrmp_init_open_channel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Accept a pending open channel request from the given sender."]
                #[doc = ""]
                #[doc = "The channel will be opened only on the next session boundary."]
                pub struct HrmpAcceptOpenChannel {
                    pub sender: hrmp_accept_open_channel::Sender,
                }
                pub mod hrmp_accept_open_channel {
                    use super::runtime_types;
                    pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for HrmpAcceptOpenChannel {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "hrmp_accept_open_channel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"]
                #[doc = "recipient in the channel being closed."]
                #[doc = ""]
                #[doc = "The closure can only happen on a session change."]
                pub struct HrmpCloseChannel {
                    pub channel_id: hrmp_close_channel::ChannelId,
                }
                pub mod hrmp_close_channel {
                    use super::runtime_types;
                    pub type ChannelId =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for HrmpCloseChannel {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "hrmp_close_channel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."]
                #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"]
                #[doc = "immediately for a specific parachain."]
                #[doc = ""]
                #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub struct ForceCleanHrmp {
                    pub para: force_clean_hrmp::Para,
                    pub num_inbound: force_clean_hrmp::NumInbound,
                    pub num_outbound: force_clean_hrmp::NumOutbound,
                }
                pub mod force_clean_hrmp {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NumInbound = ::core::primitive::u32;
                    pub type NumOutbound = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceCleanHrmp {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "force_clean_hrmp";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force process HRMP open channel requests."]
                #[doc = ""]
                #[doc = "If there are pending HRMP open channel requests, you can use this function to process"]
                #[doc = "all of those requests immediately."]
                #[doc = ""]
                #[doc = "Total number of opening channels must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub struct ForceProcessHrmpOpen {
                    pub channels: force_process_hrmp_open::Channels,
                }
                pub mod force_process_hrmp_open {
                    use super::runtime_types;
                    pub type Channels = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceProcessHrmpOpen {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "force_process_hrmp_open";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force process HRMP close channel requests."]
                #[doc = ""]
                #[doc = "If there are pending HRMP close channel requests, you can use this function to process"]
                #[doc = "all of those requests immediately."]
                #[doc = ""]
                #[doc = "Total number of closing channels must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub struct ForceProcessHrmpClose {
                    pub channels: force_process_hrmp_close::Channels,
                }
                pub mod force_process_hrmp_close {
                    use super::runtime_types;
                    pub type Channels = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceProcessHrmpClose {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "force_process_hrmp_close";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"]
                #[doc = "or the recipient for that request. The origin must be either of those."]
                #[doc = ""]
                #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"]
                #[doc = "already accepted."]
                #[doc = ""]
                #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"]
                #[doc = "witness data."]
                pub struct HrmpCancelOpenRequest {
                    pub channel_id: hrmp_cancel_open_request::ChannelId,
                    pub open_requests: hrmp_cancel_open_request::OpenRequests,
                }
                pub mod hrmp_cancel_open_request {
                    use super::runtime_types;
                    pub type ChannelId =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                    pub type OpenRequests = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for HrmpCancelOpenRequest {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "hrmp_cancel_open_request";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"]
                #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"]
                #[doc = "configured limits."]
                #[doc = ""]
                #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"]
                #[doc = "governed by the system, e.g. a system parachain."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub struct ForceOpenHrmpChannel {
                    pub sender: force_open_hrmp_channel::Sender,
                    pub recipient: force_open_hrmp_channel::Recipient,
                    pub max_capacity: force_open_hrmp_channel::MaxCapacity,
                    pub max_message_size: force_open_hrmp_channel::MaxMessageSize,
                }
                pub mod force_open_hrmp_channel {
                    use super::runtime_types;
                    pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type MaxCapacity = ::core::primitive::u32;
                    pub type MaxMessageSize = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceOpenHrmpChannel {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "force_open_hrmp_channel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"]
                #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"]
                #[doc = "deposits for channels between system chains, and automatically sets the message number"]
                #[doc = "and size limits to the maximum allowed by the network's configuration."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `sender`: A system chain, `ParaId`."]
                #[doc = "- `recipient`: A system chain, `ParaId`."]
                #[doc = ""]
                #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"]
                #[doc = "the channel does not exist yet, there is no fee."]
                pub struct EstablishSystemChannel {
                    pub sender: establish_system_channel::Sender,
                    pub recipient: establish_system_channel::Recipient,
                }
                pub mod establish_system_channel {
                    use super::runtime_types;
                    pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for EstablishSystemChannel {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "establish_system_channel";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"]
                #[doc = "with system chains do not require a deposit."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `sender`: A chain, `ParaId`."]
                #[doc = "- `recipient`: A chain, `ParaId`."]
                #[doc = ""]
                #[doc = "Any signed origin can call this function."]
                pub struct PokeChannelDeposits {
                    pub sender: poke_channel_deposits::Sender,
                    pub recipient: poke_channel_deposits::Recipient,
                }
                pub mod poke_channel_deposits {
                    use super::runtime_types;
                    pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeChannelDeposits {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "poke_channel_deposits";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `target_system_chain`: A system chain, `ParaId`."]
                #[doc = ""]
                #[doc = "The origin needs to be the parachain origin."]
                pub struct EstablishChannelWithSystem {
                    pub target_system_chain: establish_channel_with_system::TargetSystemChain,
                }
                pub mod establish_channel_with_system {
                    use super::runtime_types;
                    pub type TargetSystemChain =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for EstablishChannelWithSystem {
                    const PALLET: &'static str = "Hrmp";
                    const CALL: &'static str = "establish_channel_with_system";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"]
                #[doc = "parameters."]
                #[doc = ""]
                #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."]
                #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."]
                #[doc = ""]
                #[doc = "These numbers are a subject to the relay-chain configuration limits."]
                #[doc = ""]
                #[doc = "The channel can be opened only after the recipient confirms it and only on a session"]
                #[doc = "change."]
                pub fn hrmp_init_open_channel(
                    &self,
                    recipient: types::hrmp_init_open_channel::Recipient,
                    proposed_max_capacity: types::hrmp_init_open_channel::ProposedMaxCapacity,
                    proposed_max_message_size : types :: hrmp_init_open_channel :: ProposedMaxMessageSize,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::HrmpInitOpenChannel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "hrmp_init_open_channel",
                        types::HrmpInitOpenChannel {
                            recipient,
                            proposed_max_capacity,
                            proposed_max_message_size,
                        },
                        [
                            89u8, 39u8, 43u8, 191u8, 235u8, 40u8, 253u8, 129u8, 174u8, 108u8, 26u8,
                            206u8, 7u8, 146u8, 206u8, 56u8, 53u8, 104u8, 138u8, 203u8, 108u8,
                            195u8, 190u8, 231u8, 223u8, 33u8, 32u8, 157u8, 148u8, 235u8, 67u8,
                            82u8,
                        ],
                    )
                }
                #[doc = "Accept a pending open channel request from the given sender."]
                #[doc = ""]
                #[doc = "The channel will be opened only on the next session boundary."]
                pub fn hrmp_accept_open_channel(
                    &self,
                    sender: types::hrmp_accept_open_channel::Sender,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::HrmpAcceptOpenChannel,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "hrmp_accept_open_channel",
                        types::HrmpAcceptOpenChannel { sender },
                        [
                            133u8, 77u8, 88u8, 40u8, 47u8, 81u8, 95u8, 206u8, 165u8, 41u8, 191u8,
                            241u8, 130u8, 244u8, 70u8, 227u8, 69u8, 80u8, 130u8, 126u8, 34u8, 69u8,
                            214u8, 81u8, 7u8, 199u8, 249u8, 162u8, 234u8, 233u8, 195u8, 156u8,
                        ],
                    )
                }
                #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"]
                #[doc = "recipient in the channel being closed."]
                #[doc = ""]
                #[doc = "The closure can only happen on a session change."]
                pub fn hrmp_close_channel(
                    &self,
                    channel_id: types::hrmp_close_channel::ChannelId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::HrmpCloseChannel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "hrmp_close_channel",
                        types::HrmpCloseChannel { channel_id },
                        [
                            174u8, 225u8, 93u8, 69u8, 133u8, 145u8, 156u8, 94u8, 185u8, 254u8,
                            60u8, 209u8, 232u8, 79u8, 237u8, 173u8, 180u8, 45u8, 117u8, 165u8,
                            202u8, 195u8, 84u8, 68u8, 241u8, 164u8, 151u8, 216u8, 96u8, 20u8, 7u8,
                            45u8,
                        ],
                    )
                }
                #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."]
                #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"]
                #[doc = "immediately for a specific parachain."]
                #[doc = ""]
                #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub fn force_clean_hrmp(
                    &self,
                    para: types::force_clean_hrmp::Para,
                    num_inbound: types::force_clean_hrmp::NumInbound,
                    num_outbound: types::force_clean_hrmp::NumOutbound,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceCleanHrmp>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "force_clean_hrmp",
                        types::ForceCleanHrmp {
                            para,
                            num_inbound,
                            num_outbound,
                        },
                        [
                            0u8, 184u8, 199u8, 44u8, 26u8, 150u8, 124u8, 255u8, 40u8, 63u8, 74u8,
                            31u8, 133u8, 22u8, 241u8, 84u8, 44u8, 184u8, 128u8, 54u8, 175u8, 127u8,
                            255u8, 232u8, 239u8, 26u8, 50u8, 27u8, 81u8, 223u8, 136u8, 110u8,
                        ],
                    )
                }
                #[doc = "Force process HRMP open channel requests."]
                #[doc = ""]
                #[doc = "If there are pending HRMP open channel requests, you can use this function to process"]
                #[doc = "all of those requests immediately."]
                #[doc = ""]
                #[doc = "Total number of opening channels must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub fn force_process_hrmp_open(
                    &self,
                    channels: types::force_process_hrmp_open::Channels,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceProcessHrmpOpen>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "force_process_hrmp_open",
                        types::ForceProcessHrmpOpen { channels },
                        [
                            66u8, 138u8, 220u8, 119u8, 251u8, 148u8, 72u8, 167u8, 49u8, 156u8,
                            227u8, 174u8, 153u8, 145u8, 190u8, 195u8, 192u8, 183u8, 41u8, 213u8,
                            134u8, 8u8, 114u8, 30u8, 191u8, 81u8, 208u8, 54u8, 120u8, 36u8, 195u8,
                            246u8,
                        ],
                    )
                }
                #[doc = "Force process HRMP close channel requests."]
                #[doc = ""]
                #[doc = "If there are pending HRMP close channel requests, you can use this function to process"]
                #[doc = "all of those requests immediately."]
                #[doc = ""]
                #[doc = "Total number of closing channels must be provided as witness data."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub fn force_process_hrmp_close(
                    &self,
                    channels: types::force_process_hrmp_close::Channels,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceProcessHrmpClose,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "force_process_hrmp_close",
                        types::ForceProcessHrmpClose { channels },
                        [
                            22u8, 60u8, 113u8, 94u8, 199u8, 101u8, 204u8, 34u8, 158u8, 77u8, 228u8,
                            29u8, 180u8, 249u8, 46u8, 103u8, 206u8, 155u8, 164u8, 229u8, 70u8,
                            189u8, 218u8, 171u8, 173u8, 22u8, 210u8, 73u8, 232u8, 99u8, 225u8,
                            176u8,
                        ],
                    )
                }
                #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"]
                #[doc = "or the recipient for that request. The origin must be either of those."]
                #[doc = ""]
                #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"]
                #[doc = "already accepted."]
                #[doc = ""]
                #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"]
                #[doc = "witness data."]
                pub fn hrmp_cancel_open_request(
                    &self,
                    channel_id: types::hrmp_cancel_open_request::ChannelId,
                    open_requests: types::hrmp_cancel_open_request::OpenRequests,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::HrmpCancelOpenRequest,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "hrmp_cancel_open_request",
                        types::HrmpCancelOpenRequest {
                            channel_id,
                            open_requests,
                        },
                        [
                            10u8, 192u8, 79u8, 120u8, 6u8, 88u8, 139u8, 75u8, 87u8, 32u8, 125u8,
                            47u8, 178u8, 132u8, 156u8, 232u8, 28u8, 123u8, 74u8, 10u8, 180u8, 90u8,
                            145u8, 123u8, 40u8, 89u8, 235u8, 25u8, 237u8, 137u8, 114u8, 173u8,
                        ],
                    )
                }
                #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"]
                #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"]
                #[doc = "configured limits."]
                #[doc = ""]
                #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"]
                #[doc = "governed by the system, e.g. a system parachain."]
                #[doc = ""]
                #[doc = "Origin must be the `ChannelManager`."]
                pub fn force_open_hrmp_channel(
                    &self,
                    sender: types::force_open_hrmp_channel::Sender,
                    recipient: types::force_open_hrmp_channel::Recipient,
                    max_capacity: types::force_open_hrmp_channel::MaxCapacity,
                    max_message_size: types::force_open_hrmp_channel::MaxMessageSize,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceOpenHrmpChannel>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "force_open_hrmp_channel",
                        types::ForceOpenHrmpChannel {
                            sender,
                            recipient,
                            max_capacity,
                            max_message_size,
                        },
                        [
                            37u8, 251u8, 1u8, 201u8, 129u8, 217u8, 193u8, 179u8, 98u8, 153u8,
                            226u8, 139u8, 107u8, 222u8, 3u8, 76u8, 104u8, 248u8, 31u8, 241u8, 90u8,
                            189u8, 56u8, 92u8, 118u8, 68u8, 177u8, 70u8, 5u8, 44u8, 234u8, 27u8,
                        ],
                    )
                }
                #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"]
                #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"]
                #[doc = "deposits for channels between system chains, and automatically sets the message number"]
                #[doc = "and size limits to the maximum allowed by the network's configuration."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `sender`: A system chain, `ParaId`."]
                #[doc = "- `recipient`: A system chain, `ParaId`."]
                #[doc = ""]
                #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"]
                #[doc = "the channel does not exist yet, there is no fee."]
                pub fn establish_system_channel(
                    &self,
                    sender: types::establish_system_channel::Sender,
                    recipient: types::establish_system_channel::Recipient,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::EstablishSystemChannel,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "establish_system_channel",
                        types::EstablishSystemChannel { sender, recipient },
                        [
                            179u8, 12u8, 66u8, 57u8, 24u8, 114u8, 175u8, 141u8, 80u8, 157u8, 204u8,
                            122u8, 116u8, 139u8, 35u8, 51u8, 68u8, 36u8, 61u8, 135u8, 221u8, 40u8,
                            135u8, 21u8, 91u8, 60u8, 51u8, 51u8, 32u8, 224u8, 71u8, 182u8,
                        ],
                    )
                }
                #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"]
                #[doc = "with system chains do not require a deposit."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `sender`: A chain, `ParaId`."]
                #[doc = "- `recipient`: A chain, `ParaId`."]
                #[doc = ""]
                #[doc = "Any signed origin can call this function."]
                pub fn poke_channel_deposits(
                    &self,
                    sender: types::poke_channel_deposits::Sender,
                    recipient: types::poke_channel_deposits::Recipient,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeChannelDeposits>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "poke_channel_deposits",
                        types::PokeChannelDeposits { sender, recipient },
                        [
                            93u8, 153u8, 50u8, 127u8, 136u8, 255u8, 6u8, 155u8, 73u8, 216u8, 145u8,
                            229u8, 200u8, 75u8, 94u8, 39u8, 117u8, 188u8, 62u8, 172u8, 210u8,
                            212u8, 37u8, 11u8, 166u8, 31u8, 101u8, 129u8, 29u8, 229u8, 200u8, 16u8,
                        ],
                    )
                }
                #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."]
                #[doc = ""]
                #[doc = "Arguments:"]
                #[doc = ""]
                #[doc = "- `target_system_chain`: A system chain, `ParaId`."]
                #[doc = ""]
                #[doc = "The origin needs to be the parachain origin."]
                pub fn establish_channel_with_system(
                    &self,
                    target_system_chain: types::establish_channel_with_system::TargetSystemChain,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::EstablishChannelWithSystem,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Hrmp",
                        "establish_channel_with_system",
                        types::EstablishChannelWithSystem {
                            target_system_chain,
                        },
                        [
                            97u8, 88u8, 72u8, 195u8, 37u8, 11u8, 77u8, 206u8, 254u8, 81u8, 104u8,
                            73u8, 220u8, 240u8, 187u8, 154u8, 131u8, 146u8, 128u8, 116u8, 223u8,
                            35u8, 105u8, 236u8, 208u8, 99u8, 233u8, 74u8, 115u8, 166u8, 5u8, 205u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::hrmp::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Open HRMP channel requested."]
            pub struct OpenChannelRequested {
                pub sender: open_channel_requested::Sender,
                pub recipient: open_channel_requested::Recipient,
                pub proposed_max_capacity: open_channel_requested::ProposedMaxCapacity,
                pub proposed_max_message_size: open_channel_requested::ProposedMaxMessageSize,
            }
            pub mod open_channel_requested {
                use super::runtime_types;
                pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Recipient = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type ProposedMaxCapacity = ::core::primitive::u32;
                pub type ProposedMaxMessageSize = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OpenChannelRequested {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "OpenChannelRequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An HRMP channel request sent by the receiver was canceled by either party."]
            pub struct OpenChannelCanceled {
                pub by_parachain: open_channel_canceled::ByParachain,
                pub channel_id: open_channel_canceled::ChannelId,
            }
            pub mod open_channel_canceled {
                use super::runtime_types;
                pub type ByParachain = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type ChannelId =
                    runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OpenChannelCanceled {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "OpenChannelCanceled";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Open HRMP channel accepted."]
            pub struct OpenChannelAccepted {
                pub sender: open_channel_accepted::Sender,
                pub recipient: open_channel_accepted::Recipient,
            }
            pub mod open_channel_accepted {
                use super::runtime_types;
                pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Recipient = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OpenChannelAccepted {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "OpenChannelAccepted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "HRMP channel closed."]
            pub struct ChannelClosed {
                pub by_parachain: channel_closed::ByParachain,
                pub channel_id: channel_closed::ChannelId,
            }
            pub mod channel_closed {
                use super::runtime_types;
                pub type ByParachain = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type ChannelId =
                    runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ChannelClosed {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "ChannelClosed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An HRMP channel was opened via Root origin."]
            pub struct HrmpChannelForceOpened {
                pub sender: hrmp_channel_force_opened::Sender,
                pub recipient: hrmp_channel_force_opened::Recipient,
                pub proposed_max_capacity: hrmp_channel_force_opened::ProposedMaxCapacity,
                pub proposed_max_message_size: hrmp_channel_force_opened::ProposedMaxMessageSize,
            }
            pub mod hrmp_channel_force_opened {
                use super::runtime_types;
                pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Recipient = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type ProposedMaxCapacity = ::core::primitive::u32;
                pub type ProposedMaxMessageSize = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for HrmpChannelForceOpened {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "HrmpChannelForceOpened";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An HRMP channel was opened with a system chain."]
            pub struct HrmpSystemChannelOpened {
                pub sender: hrmp_system_channel_opened::Sender,
                pub recipient: hrmp_system_channel_opened::Recipient,
                pub proposed_max_capacity: hrmp_system_channel_opened::ProposedMaxCapacity,
                pub proposed_max_message_size: hrmp_system_channel_opened::ProposedMaxMessageSize,
            }
            pub mod hrmp_system_channel_opened {
                use super::runtime_types;
                pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Recipient = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type ProposedMaxCapacity = ::core::primitive::u32;
                pub type ProposedMaxMessageSize = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for HrmpSystemChannelOpened {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "HrmpSystemChannelOpened";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An HRMP channel's deposits were updated."]
            pub struct OpenChannelDepositsUpdated {
                pub sender: open_channel_deposits_updated::Sender,
                pub recipient: open_channel_deposits_updated::Recipient,
            }
            pub mod open_channel_deposits_updated {
                use super::runtime_types;
                pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Recipient = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OpenChannelDepositsUpdated {
                const PALLET: &'static str = "Hrmp";
                const EVENT: &'static str = "OpenChannelDepositsUpdated";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod hrmp_open_channel_requests {
                    use super::runtime_types;
                    pub type HrmpOpenChannelRequests =
                        runtime_types::polkadot_runtime_parachains::hrmp::HrmpOpenChannelRequest;
                    pub type Param0 =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                }
                pub mod hrmp_open_channel_requests_list {
                    use super::runtime_types;
                    pub type HrmpOpenChannelRequestsList =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId,
                        >;
                }
                pub mod hrmp_open_channel_request_count {
                    use super::runtime_types;
                    pub type HrmpOpenChannelRequestCount = ::core::primitive::u32;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod hrmp_accepted_channel_request_count {
                    use super::runtime_types;
                    pub type HrmpAcceptedChannelRequestCount = ::core::primitive::u32;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod hrmp_close_channel_requests {
                    use super::runtime_types;
                    pub type HrmpCloseChannelRequests = ();
                    pub type Param0 =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                }
                pub mod hrmp_close_channel_requests_list {
                    use super::runtime_types;
                    pub type HrmpCloseChannelRequestsList =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId,
                        >;
                }
                pub mod hrmp_watermarks {
                    use super::runtime_types;
                    pub type HrmpWatermarks = ::core::primitive::u32;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod hrmp_channels {
                    use super::runtime_types;
                    pub type HrmpChannels =
                        runtime_types::polkadot_runtime_parachains::hrmp::HrmpChannel;
                    pub type Param0 =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                }
                pub mod hrmp_ingress_channels_index {
                    use super::runtime_types;
                    pub type HrmpIngressChannelsIndex = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod hrmp_egress_channels_index {
                    use super::runtime_types;
                    pub type HrmpEgressChannelsIndex = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod hrmp_channel_contents {
                    use super::runtime_types;
                    pub type HrmpChannelContents = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_core_primitives::InboundHrmpMessage<
                            ::core::primitive::u32,
                        >,
                    >;
                    pub type Param0 =
                        runtime_types::polkadot_parachain_primitives::primitives::HrmpChannelId;
                }
                pub mod hrmp_channel_digests {
                    use super::runtime_types;
                    pub type HrmpChannelDigests = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        ::core::primitive::u32,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_parachain_primitives::primitives::Id,
                        >,
                    )>;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The set of pending HRMP open channel requests."]
                #[doc = ""]
                #[doc = " The set is accompanied by a list for iteration."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no channels that exists in list but not in the set and vice versa."]
                pub fn hrmp_open_channel_requests_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_open_channel_requests::HrmpOpenChannelRequests,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpOpenChannelRequests",
                        (),
                        [
                            164u8, 97u8, 52u8, 242u8, 255u8, 67u8, 248u8, 170u8, 204u8, 92u8, 81u8,
                            144u8, 11u8, 63u8, 145u8, 167u8, 8u8, 174u8, 221u8, 147u8, 125u8,
                            144u8, 243u8, 33u8, 235u8, 104u8, 240u8, 99u8, 96u8, 211u8, 163u8,
                            121u8,
                        ],
                    )
                }
                #[doc = " The set of pending HRMP open channel requests."]
                #[doc = ""]
                #[doc = " The set is accompanied by a list for iteration."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no channels that exists in list but not in the set and vice versa."]
                pub fn hrmp_open_channel_requests(
                    &self,
                    _0: types::hrmp_open_channel_requests::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_open_channel_requests::Param0,
                    >,
                    types::hrmp_open_channel_requests::HrmpOpenChannelRequests,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpOpenChannelRequests",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            164u8, 97u8, 52u8, 242u8, 255u8, 67u8, 248u8, 170u8, 204u8, 92u8, 81u8,
                            144u8, 11u8, 63u8, 145u8, 167u8, 8u8, 174u8, 221u8, 147u8, 125u8,
                            144u8, 243u8, 33u8, 235u8, 104u8, 240u8, 99u8, 96u8, 211u8, 163u8,
                            121u8,
                        ],
                    )
                }
                pub fn hrmp_open_channel_requests_list(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_open_channel_requests_list::HrmpOpenChannelRequestsList,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpOpenChannelRequestsList",
                        (),
                        [
                            45u8, 190u8, 124u8, 26u8, 37u8, 249u8, 140u8, 254u8, 101u8, 249u8,
                            27u8, 117u8, 218u8, 3u8, 126u8, 114u8, 143u8, 65u8, 122u8, 246u8,
                            237u8, 173u8, 145u8, 175u8, 133u8, 119u8, 127u8, 81u8, 59u8, 206u8,
                            159u8, 39u8,
                        ],
                    )
                }
                #[doc = " This mapping tracks how many open channel requests are initiated by a given sender para."]
                #[doc = " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has"]
                #[doc = " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`."]
                pub fn hrmp_open_channel_request_count_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_open_channel_request_count::HrmpOpenChannelRequestCount,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpOpenChannelRequestCount",
                        (),
                        [
                            136u8, 72u8, 56u8, 31u8, 229u8, 99u8, 241u8, 14u8, 159u8, 243u8, 179u8,
                            222u8, 252u8, 56u8, 63u8, 24u8, 204u8, 130u8, 47u8, 161u8, 133u8,
                            227u8, 237u8, 146u8, 239u8, 46u8, 127u8, 113u8, 190u8, 230u8, 61u8,
                            182u8,
                        ],
                    )
                }
                #[doc = " This mapping tracks how many open channel requests are initiated by a given sender para."]
                #[doc = " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has"]
                #[doc = " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`."]
                pub fn hrmp_open_channel_request_count(
                    &self,
                    _0: types::hrmp_open_channel_request_count::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_open_channel_request_count::Param0,
                    >,
                    types::hrmp_open_channel_request_count::HrmpOpenChannelRequestCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpOpenChannelRequestCount",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            136u8, 72u8, 56u8, 31u8, 229u8, 99u8, 241u8, 14u8, 159u8, 243u8, 179u8,
                            222u8, 252u8, 56u8, 63u8, 24u8, 204u8, 130u8, 47u8, 161u8, 133u8,
                            227u8, 237u8, 146u8, 239u8, 46u8, 127u8, 113u8, 190u8, 230u8, 61u8,
                            182u8,
                        ],
                    )
                }
                #[doc = " This mapping tracks how many open channel requests were accepted by a given recipient para."]
                #[doc = " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with"]
                #[doc = " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`."]
                pub fn hrmp_accepted_channel_request_count_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_accepted_channel_request_count::HrmpAcceptedChannelRequestCount,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpAcceptedChannelRequestCount",
                        (),
                        [
                            29u8, 100u8, 52u8, 28u8, 180u8, 84u8, 132u8, 120u8, 117u8, 172u8,
                            169u8, 40u8, 237u8, 92u8, 89u8, 87u8, 230u8, 148u8, 140u8, 226u8, 60u8,
                            169u8, 100u8, 162u8, 139u8, 205u8, 180u8, 92u8, 0u8, 110u8, 55u8,
                            158u8,
                        ],
                    )
                }
                #[doc = " This mapping tracks how many open channel requests were accepted by a given recipient para."]
                #[doc = " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with"]
                #[doc = " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`."]
                pub fn hrmp_accepted_channel_request_count(
                    &self,
                    _0: types::hrmp_accepted_channel_request_count::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_accepted_channel_request_count::Param0,
                    >,
                    types::hrmp_accepted_channel_request_count::HrmpAcceptedChannelRequestCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpAcceptedChannelRequestCount",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            29u8, 100u8, 52u8, 28u8, 180u8, 84u8, 132u8, 120u8, 117u8, 172u8,
                            169u8, 40u8, 237u8, 92u8, 89u8, 87u8, 230u8, 148u8, 140u8, 226u8, 60u8,
                            169u8, 100u8, 162u8, 139u8, 205u8, 180u8, 92u8, 0u8, 110u8, 55u8,
                            158u8,
                        ],
                    )
                }
                #[doc = " A set of pending HRMP close channel requests that are going to be closed during the session"]
                #[doc = " change. Used for checking if a given channel is registered for closure."]
                #[doc = ""]
                #[doc = " The set is accompanied by a list for iteration."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no channels that exists in list but not in the set and vice versa."]
                pub fn hrmp_close_channel_requests_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_close_channel_requests::HrmpCloseChannelRequests,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpCloseChannelRequests",
                        (),
                        [
                            155u8, 13u8, 73u8, 166u8, 58u8, 67u8, 138u8, 58u8, 215u8, 172u8, 241u8,
                            168u8, 57u8, 4u8, 230u8, 248u8, 31u8, 183u8, 227u8, 224u8, 139u8,
                            172u8, 229u8, 228u8, 16u8, 120u8, 124u8, 81u8, 213u8, 253u8, 102u8,
                            226u8,
                        ],
                    )
                }
                #[doc = " A set of pending HRMP close channel requests that are going to be closed during the session"]
                #[doc = " change. Used for checking if a given channel is registered for closure."]
                #[doc = ""]
                #[doc = " The set is accompanied by a list for iteration."]
                #[doc = ""]
                #[doc = " Invariant:"]
                #[doc = " - There are no channels that exists in list but not in the set and vice versa."]
                pub fn hrmp_close_channel_requests(
                    &self,
                    _0: types::hrmp_close_channel_requests::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_close_channel_requests::Param0,
                    >,
                    types::hrmp_close_channel_requests::HrmpCloseChannelRequests,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpCloseChannelRequests",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            155u8, 13u8, 73u8, 166u8, 58u8, 67u8, 138u8, 58u8, 215u8, 172u8, 241u8,
                            168u8, 57u8, 4u8, 230u8, 248u8, 31u8, 183u8, 227u8, 224u8, 139u8,
                            172u8, 229u8, 228u8, 16u8, 120u8, 124u8, 81u8, 213u8, 253u8, 102u8,
                            226u8,
                        ],
                    )
                }
                pub fn hrmp_close_channel_requests_list(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_close_channel_requests_list::HrmpCloseChannelRequestsList,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpCloseChannelRequestsList",
                        (),
                        [
                            78u8, 194u8, 214u8, 232u8, 91u8, 72u8, 109u8, 113u8, 88u8, 86u8, 136u8,
                            26u8, 226u8, 30u8, 11u8, 188u8, 57u8, 77u8, 169u8, 64u8, 14u8, 187u8,
                            27u8, 127u8, 76u8, 99u8, 114u8, 73u8, 221u8, 23u8, 208u8, 69u8,
                        ],
                    )
                }
                #[doc = " The HRMP watermark associated with each para."]
                #[doc = " Invariant:"]
                #[doc = " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a"]
                #[doc = "   session."]
                pub fn hrmp_watermarks_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_watermarks::HrmpWatermarks,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpWatermarks",
                        (),
                        [
                            245u8, 104u8, 137u8, 120u8, 131u8, 7u8, 178u8, 85u8, 96u8, 124u8,
                            241u8, 2u8, 86u8, 63u8, 116u8, 77u8, 217u8, 235u8, 162u8, 38u8, 104u8,
                            248u8, 121u8, 1u8, 111u8, 191u8, 191u8, 115u8, 65u8, 67u8, 2u8, 238u8,
                        ],
                    )
                }
                #[doc = " The HRMP watermark associated with each para."]
                #[doc = " Invariant:"]
                #[doc = " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a"]
                #[doc = "   session."]
                pub fn hrmp_watermarks(
                    &self,
                    _0: types::hrmp_watermarks::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_watermarks::Param0,
                    >,
                    types::hrmp_watermarks::HrmpWatermarks,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpWatermarks",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            245u8, 104u8, 137u8, 120u8, 131u8, 7u8, 178u8, 85u8, 96u8, 124u8,
                            241u8, 2u8, 86u8, 63u8, 116u8, 77u8, 217u8, 235u8, 162u8, 38u8, 104u8,
                            248u8, 121u8, 1u8, 111u8, 191u8, 191u8, 115u8, 65u8, 67u8, 2u8, 238u8,
                        ],
                    )
                }
                #[doc = " HRMP channel data associated with each para."]
                #[doc = " Invariant:"]
                #[doc = " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session."]
                pub fn hrmp_channels_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_channels::HrmpChannels,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannels",
                        (),
                        [
                            174u8, 90u8, 72u8, 93u8, 43u8, 140u8, 181u8, 170u8, 138u8, 171u8,
                            179u8, 156u8, 33u8, 87u8, 63u8, 1u8, 131u8, 59u8, 230u8, 14u8, 40u8,
                            240u8, 186u8, 66u8, 191u8, 130u8, 48u8, 218u8, 225u8, 22u8, 33u8,
                            122u8,
                        ],
                    )
                }
                #[doc = " HRMP channel data associated with each para."]
                #[doc = " Invariant:"]
                #[doc = " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session."]
                pub fn hrmp_channels(
                    &self,
                    _0: types::hrmp_channels::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_channels::Param0,
                    >,
                    types::hrmp_channels::HrmpChannels,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannels",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            174u8, 90u8, 72u8, 93u8, 43u8, 140u8, 181u8, 170u8, 138u8, 171u8,
                            179u8, 156u8, 33u8, 87u8, 63u8, 1u8, 131u8, 59u8, 230u8, 14u8, 40u8,
                            240u8, 186u8, 66u8, 191u8, 130u8, 48u8, 218u8, 225u8, 22u8, 33u8,
                            122u8,
                        ],
                    )
                }
                #[doc = " Ingress/egress indexes allow to find all the senders and receivers given the opposite side."]
                #[doc = " I.e."]
                #[doc = ""]
                #[doc = " (a) ingress index allows to find all the senders for a given recipient."]
                #[doc = " (b) egress index allows to find all the recipients for a given sender."]
                #[doc = ""]
                #[doc = " Invariants:"]
                #[doc = " - for each ingress index entry for `P` each item `I` in the index should present in"]
                #[doc = "   `HrmpChannels` as `(I, P)`."]
                #[doc = " - for each egress index entry for `P` each item `E` in the index should present in"]
                #[doc = "   `HrmpChannels` as `(P, E)`."]
                #[doc = " - there should be no other dangling channels in `HrmpChannels`."]
                #[doc = " - the vectors are sorted."]
                pub fn hrmp_ingress_channels_index_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_ingress_channels_index::HrmpIngressChannelsIndex,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpIngressChannelsIndex",
                        (),
                        [
                            125u8, 229u8, 102u8, 230u8, 74u8, 109u8, 173u8, 67u8, 176u8, 169u8,
                            57u8, 24u8, 75u8, 129u8, 246u8, 198u8, 63u8, 49u8, 56u8, 102u8, 149u8,
                            139u8, 138u8, 207u8, 150u8, 220u8, 29u8, 208u8, 203u8, 0u8, 93u8,
                            105u8,
                        ],
                    )
                }
                #[doc = " Ingress/egress indexes allow to find all the senders and receivers given the opposite side."]
                #[doc = " I.e."]
                #[doc = ""]
                #[doc = " (a) ingress index allows to find all the senders for a given recipient."]
                #[doc = " (b) egress index allows to find all the recipients for a given sender."]
                #[doc = ""]
                #[doc = " Invariants:"]
                #[doc = " - for each ingress index entry for `P` each item `I` in the index should present in"]
                #[doc = "   `HrmpChannels` as `(I, P)`."]
                #[doc = " - for each egress index entry for `P` each item `E` in the index should present in"]
                #[doc = "   `HrmpChannels` as `(P, E)`."]
                #[doc = " - there should be no other dangling channels in `HrmpChannels`."]
                #[doc = " - the vectors are sorted."]
                pub fn hrmp_ingress_channels_index(
                    &self,
                    _0: types::hrmp_ingress_channels_index::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_ingress_channels_index::Param0,
                    >,
                    types::hrmp_ingress_channels_index::HrmpIngressChannelsIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpIngressChannelsIndex",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            125u8, 229u8, 102u8, 230u8, 74u8, 109u8, 173u8, 67u8, 176u8, 169u8,
                            57u8, 24u8, 75u8, 129u8, 246u8, 198u8, 63u8, 49u8, 56u8, 102u8, 149u8,
                            139u8, 138u8, 207u8, 150u8, 220u8, 29u8, 208u8, 203u8, 0u8, 93u8,
                            105u8,
                        ],
                    )
                }
                pub fn hrmp_egress_channels_index_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_egress_channels_index::HrmpEgressChannelsIndex,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpEgressChannelsIndex",
                        (),
                        [
                            237u8, 183u8, 188u8, 57u8, 20u8, 238u8, 166u8, 7u8, 94u8, 155u8, 22u8,
                            9u8, 173u8, 209u8, 210u8, 17u8, 160u8, 79u8, 243u8, 4u8, 245u8, 240u8,
                            65u8, 195u8, 116u8, 98u8, 206u8, 104u8, 53u8, 64u8, 241u8, 41u8,
                        ],
                    )
                }
                pub fn hrmp_egress_channels_index(
                    &self,
                    _0: types::hrmp_egress_channels_index::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_egress_channels_index::Param0,
                    >,
                    types::hrmp_egress_channels_index::HrmpEgressChannelsIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpEgressChannelsIndex",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            237u8, 183u8, 188u8, 57u8, 20u8, 238u8, 166u8, 7u8, 94u8, 155u8, 22u8,
                            9u8, 173u8, 209u8, 210u8, 17u8, 160u8, 79u8, 243u8, 4u8, 245u8, 240u8,
                            65u8, 195u8, 116u8, 98u8, 206u8, 104u8, 53u8, 64u8, 241u8, 41u8,
                        ],
                    )
                }
                #[doc = " Storage for the messages for each channel."]
                #[doc = " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`."]
                pub fn hrmp_channel_contents_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_channel_contents::HrmpChannelContents,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannelContents",
                        (),
                        [
                            55u8, 16u8, 135u8, 69u8, 54u8, 180u8, 246u8, 124u8, 104u8, 92u8, 45u8,
                            18u8, 223u8, 145u8, 43u8, 190u8, 121u8, 59u8, 35u8, 195u8, 234u8,
                            219u8, 30u8, 246u8, 168u8, 187u8, 45u8, 171u8, 254u8, 204u8, 60u8,
                            121u8,
                        ],
                    )
                }
                #[doc = " Storage for the messages for each channel."]
                #[doc = " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`."]
                pub fn hrmp_channel_contents(
                    &self,
                    _0: types::hrmp_channel_contents::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_channel_contents::Param0,
                    >,
                    types::hrmp_channel_contents::HrmpChannelContents,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannelContents",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            55u8, 16u8, 135u8, 69u8, 54u8, 180u8, 246u8, 124u8, 104u8, 92u8, 45u8,
                            18u8, 223u8, 145u8, 43u8, 190u8, 121u8, 59u8, 35u8, 195u8, 234u8,
                            219u8, 30u8, 246u8, 168u8, 187u8, 45u8, 171u8, 254u8, 204u8, 60u8,
                            121u8,
                        ],
                    )
                }
                #[doc = " Maintains a mapping that can be used to answer the question: What paras sent a message at"]
                #[doc = " the given block number for a given receiver. Invariants:"]
                #[doc = " - The inner `Vec<ParaId>` is never empty."]
                #[doc = " - The inner `Vec<ParaId>` cannot store two same `ParaId`."]
                #[doc = " - The outer vector is sorted ascending by block number and cannot store two items with the"]
                #[doc = "   same block number."]
                pub fn hrmp_channel_digests_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::hrmp_channel_digests::HrmpChannelDigests,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannelDigests",
                        (),
                        [
                            90u8, 90u8, 139u8, 78u8, 47u8, 2u8, 104u8, 211u8, 42u8, 246u8, 193u8,
                            210u8, 142u8, 223u8, 17u8, 136u8, 3u8, 182u8, 25u8, 56u8, 72u8, 72u8,
                            162u8, 131u8, 36u8, 34u8, 162u8, 176u8, 159u8, 113u8, 7u8, 207u8,
                        ],
                    )
                }
                #[doc = " Maintains a mapping that can be used to answer the question: What paras sent a message at"]
                #[doc = " the given block number for a given receiver. Invariants:"]
                #[doc = " - The inner `Vec<ParaId>` is never empty."]
                #[doc = " - The inner `Vec<ParaId>` cannot store two same `ParaId`."]
                #[doc = " - The outer vector is sorted ascending by block number and cannot store two items with the"]
                #[doc = "   same block number."]
                pub fn hrmp_channel_digests(
                    &self,
                    _0: types::hrmp_channel_digests::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::hrmp_channel_digests::Param0,
                    >,
                    types::hrmp_channel_digests::HrmpChannelDigests,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Hrmp",
                        "HrmpChannelDigests",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            90u8, 90u8, 139u8, 78u8, 47u8, 2u8, 104u8, 211u8, 42u8, 246u8, 193u8,
                            210u8, 142u8, 223u8, 17u8, 136u8, 3u8, 182u8, 25u8, 56u8, 72u8, 72u8,
                            162u8, 131u8, 36u8, 34u8, 162u8, 176u8, 159u8, 113u8, 7u8, 207u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod para_session_info {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod assignment_keys_unsafe {
                    use super::runtime_types;
                    pub type AssignmentKeysUnsafe = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::assignment_app::Public,
                    >;
                }
                pub mod earliest_stored_session {
                    use super::runtime_types;
                    pub type EarliestStoredSession = ::core::primitive::u32;
                }
                pub mod sessions {
                    use super::runtime_types;
                    pub type Sessions = runtime_types::polkadot_primitives::v8::SessionInfo;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod account_keys {
                    use super::runtime_types;
                    pub type AccountKeys = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                }
                pub mod session_executor_params {
                    use super::runtime_types;
                    pub type SessionExecutorParams =
                        runtime_types::polkadot_primitives::v8::executor_params::ExecutorParams;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Assignment keys for the current session."]
                #[doc = " Note that this API is private due to it being prone to 'off-by-one' at session boundaries."]
                #[doc = " When in doubt, use `Sessions` API instead."]
                pub fn assignment_keys_unsafe(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::assignment_keys_unsafe::AssignmentKeysUnsafe,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "AssignmentKeysUnsafe",
                        (),
                        [
                            180u8, 187u8, 151u8, 97u8, 28u8, 143u8, 44u8, 107u8, 127u8, 16u8, 82u8,
                            208u8, 210u8, 99u8, 211u8, 54u8, 252u8, 164u8, 138u8, 142u8, 124u8,
                            117u8, 217u8, 184u8, 223u8, 65u8, 45u8, 143u8, 220u8, 212u8, 254u8,
                            173u8,
                        ],
                    )
                }
                #[doc = " The earliest session for which previous session info is stored."]
                pub fn earliest_stored_session(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::earliest_stored_session::EarliestStoredSession,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "EarliestStoredSession",
                        (),
                        [
                            139u8, 176u8, 46u8, 139u8, 217u8, 35u8, 62u8, 91u8, 183u8, 7u8, 114u8,
                            226u8, 60u8, 237u8, 105u8, 73u8, 20u8, 216u8, 194u8, 205u8, 178u8,
                            237u8, 84u8, 66u8, 181u8, 29u8, 31u8, 218u8, 48u8, 60u8, 198u8, 86u8,
                        ],
                    )
                }
                #[doc = " Session information in a rolling window."]
                #[doc = " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`."]
                #[doc = " Does not have any entries before the session index in the first session change notification."]
                pub fn sessions_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::sessions::Sessions,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "Sessions",
                        (),
                        [
                            234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8,
                            190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8,
                            156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8,
                            228u8,
                        ],
                    )
                }
                #[doc = " Session information in a rolling window."]
                #[doc = " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`."]
                #[doc = " Does not have any entries before the session index in the first session change notification."]
                pub fn sessions(
                    &self,
                    _0: types::sessions::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::sessions::Param0,
                    >,
                    types::sessions::Sessions,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "Sessions",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8,
                            190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8,
                            156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8,
                            228u8,
                        ],
                    )
                }
                #[doc = " The validator account keys of the validators actively participating in parachain consensus."]
                pub fn account_keys_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::account_keys::AccountKeys,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "AccountKeys",
                        (),
                        [
                            30u8, 98u8, 58u8, 140u8, 96u8, 231u8, 205u8, 111u8, 194u8, 100u8,
                            185u8, 242u8, 210u8, 143u8, 110u8, 144u8, 170u8, 187u8, 62u8, 196u8,
                            73u8, 88u8, 118u8, 168u8, 117u8, 116u8, 153u8, 229u8, 108u8, 46u8,
                            154u8, 220u8,
                        ],
                    )
                }
                #[doc = " The validator account keys of the validators actively participating in parachain consensus."]
                pub fn account_keys(
                    &self,
                    _0: types::account_keys::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::account_keys::Param0,
                    >,
                    types::account_keys::AccountKeys,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "AccountKeys",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            30u8, 98u8, 58u8, 140u8, 96u8, 231u8, 205u8, 111u8, 194u8, 100u8,
                            185u8, 242u8, 210u8, 143u8, 110u8, 144u8, 170u8, 187u8, 62u8, 196u8,
                            73u8, 88u8, 118u8, 168u8, 117u8, 116u8, 153u8, 229u8, 108u8, 46u8,
                            154u8, 220u8,
                        ],
                    )
                }
                #[doc = " Executor parameter set for a given session index"]
                pub fn session_executor_params_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::session_executor_params::SessionExecutorParams,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "SessionExecutorParams",
                        (),
                        [
                            38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8,
                            6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8,
                            157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8,
                        ],
                    )
                }
                #[doc = " Executor parameter set for a given session index"]
                pub fn session_executor_params(
                    &self,
                    _0: types::session_executor_params::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::session_executor_params::Param0,
                    >,
                    types::session_executor_params::SessionExecutorParams,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParaSessionInfo",
                        "SessionExecutorParams",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8,
                            6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8,
                            157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod paras_disputes {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::disputes::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::disputes::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ForceUnfreeze;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnfreeze {
                    const PALLET: &'static str = "ParasDisputes";
                    const CALL: &'static str = "force_unfreeze";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                pub fn force_unfreeze(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceUnfreeze>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasDisputes",
                        "force_unfreeze",
                        types::ForceUnfreeze {},
                        [
                            148u8, 19u8, 139u8, 154u8, 111u8, 166u8, 74u8, 136u8, 127u8, 157u8,
                            20u8, 47u8, 220u8, 108u8, 152u8, 108u8, 24u8, 232u8, 11u8, 53u8, 26u8,
                            4u8, 23u8, 58u8, 195u8, 61u8, 159u8, 6u8, 139u8, 7u8, 197u8, 88u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::disputes::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A dispute has been initiated. \\[candidate hash, dispute location\\]"]
            pub struct DisputeInitiated(
                pub dispute_initiated::Field0,
                pub dispute_initiated::Field1,
            );
            pub mod dispute_initiated {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_core_primitives::CandidateHash;
                pub type Field1 =
                    runtime_types::polkadot_runtime_parachains::disputes::DisputeLocation;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DisputeInitiated {
                const PALLET: &'static str = "ParasDisputes";
                const EVENT: &'static str = "DisputeInitiated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A dispute has concluded for or against a candidate."]
            #[doc = "`\\[para id, candidate hash, dispute result\\]`"]
            pub struct DisputeConcluded(
                pub dispute_concluded::Field0,
                pub dispute_concluded::Field1,
            );
            pub mod dispute_concluded {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_core_primitives::CandidateHash;
                pub type Field1 =
                    runtime_types::polkadot_runtime_parachains::disputes::DisputeResult;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DisputeConcluded {
                const PALLET: &'static str = "ParasDisputes";
                const EVENT: &'static str = "DisputeConcluded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A dispute has concluded with supermajority against a candidate."]
            #[doc = "Block authors should no longer build on top of this head and should"]
            #[doc = "instead revert the block at the given height. This should be the"]
            #[doc = "number of the child of the last known valid block in the chain."]
            pub struct Revert(pub revert::Field0);
            pub mod revert {
                use super::runtime_types;
                pub type Field0 = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Revert {
                const PALLET: &'static str = "ParasDisputes";
                const EVENT: &'static str = "Revert";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod last_pruned_session {
                    use super::runtime_types;
                    pub type LastPrunedSession = ::core::primitive::u32;
                }
                pub mod disputes {
                    use super::runtime_types;
                    pub type Disputes = runtime_types::polkadot_primitives::v8::DisputeState<
                        ::core::primitive::u32,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash;
                }
                pub mod backers_on_disputes {
                    use super::runtime_types;
                    pub type BackersOnDisputes = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                    >;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash;
                }
                pub mod included {
                    use super::runtime_types;
                    pub type Included = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash;
                }
                pub mod frozen {
                    use super::runtime_types;
                    pub type Frozen = ::core::option::Option<::core::primitive::u32>;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The last pruned session, if any. All data stored by this module"]
                #[doc = " references sessions."]
                pub fn last_pruned_session(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::last_pruned_session::LastPrunedSession,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "LastPrunedSession",
                        (),
                        [
                            98u8, 107u8, 200u8, 158u8, 182u8, 120u8, 24u8, 242u8, 24u8, 163u8,
                            237u8, 72u8, 153u8, 19u8, 38u8, 85u8, 239u8, 208u8, 194u8, 22u8, 173u8,
                            100u8, 219u8, 10u8, 194u8, 42u8, 120u8, 146u8, 225u8, 62u8, 80u8,
                            229u8,
                        ],
                    )
                }
                #[doc = " All ongoing or concluded disputes for the last several sessions."]
                pub fn disputes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::disputes::Disputes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Disputes",
                        (),
                        [
                            38u8, 237u8, 141u8, 222u8, 135u8, 82u8, 210u8, 166u8, 192u8, 122u8,
                            175u8, 96u8, 91u8, 1u8, 225u8, 182u8, 128u8, 4u8, 159u8, 56u8, 180u8,
                            176u8, 157u8, 20u8, 105u8, 202u8, 192u8, 213u8, 164u8, 24u8, 227u8,
                            15u8,
                        ],
                    )
                }
                #[doc = " All ongoing or concluded disputes for the last several sessions."]
                pub fn disputes_iter1(
                    &self,
                    _0: types::disputes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::disputes::Param0,
                    >,
                    types::disputes::Disputes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Disputes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            38u8, 237u8, 141u8, 222u8, 135u8, 82u8, 210u8, 166u8, 192u8, 122u8,
                            175u8, 96u8, 91u8, 1u8, 225u8, 182u8, 128u8, 4u8, 159u8, 56u8, 180u8,
                            176u8, 157u8, 20u8, 105u8, 202u8, 192u8, 213u8, 164u8, 24u8, 227u8,
                            15u8,
                        ],
                    )
                }
                #[doc = " All ongoing or concluded disputes for the last several sessions."]
                pub fn disputes(
                    &self,
                    _0: types::disputes::Param0,
                    _1: types::disputes::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::disputes::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::disputes::Param1,
                        >,
                    ),
                    types::disputes::Disputes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Disputes",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            38u8, 237u8, 141u8, 222u8, 135u8, 82u8, 210u8, 166u8, 192u8, 122u8,
                            175u8, 96u8, 91u8, 1u8, 225u8, 182u8, 128u8, 4u8, 159u8, 56u8, 180u8,
                            176u8, 157u8, 20u8, 105u8, 202u8, 192u8, 213u8, 164u8, 24u8, 227u8,
                            15u8,
                        ],
                    )
                }
                #[doc = " Backing votes stored for each dispute."]
                #[doc = " This storage is used for slashing."]
                pub fn backers_on_disputes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::backers_on_disputes::BackersOnDisputes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "BackersOnDisputes",
                        (),
                        [
                            136u8, 171u8, 20u8, 204u8, 135u8, 153u8, 144u8, 241u8, 46u8, 193u8,
                            65u8, 22u8, 116u8, 161u8, 144u8, 186u8, 31u8, 194u8, 202u8, 225u8,
                            14u8, 137u8, 240u8, 243u8, 119u8, 144u8, 102u8, 245u8, 133u8, 126u8,
                            103u8, 32u8,
                        ],
                    )
                }
                #[doc = " Backing votes stored for each dispute."]
                #[doc = " This storage is used for slashing."]
                pub fn backers_on_disputes_iter1(
                    &self,
                    _0: types::backers_on_disputes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::backers_on_disputes::Param0,
                    >,
                    types::backers_on_disputes::BackersOnDisputes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "BackersOnDisputes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            136u8, 171u8, 20u8, 204u8, 135u8, 153u8, 144u8, 241u8, 46u8, 193u8,
                            65u8, 22u8, 116u8, 161u8, 144u8, 186u8, 31u8, 194u8, 202u8, 225u8,
                            14u8, 137u8, 240u8, 243u8, 119u8, 144u8, 102u8, 245u8, 133u8, 126u8,
                            103u8, 32u8,
                        ],
                    )
                }
                #[doc = " Backing votes stored for each dispute."]
                #[doc = " This storage is used for slashing."]
                pub fn backers_on_disputes(
                    &self,
                    _0: types::backers_on_disputes::Param0,
                    _1: types::backers_on_disputes::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::backers_on_disputes::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::backers_on_disputes::Param1,
                        >,
                    ),
                    types::backers_on_disputes::BackersOnDisputes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "BackersOnDisputes",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            136u8, 171u8, 20u8, 204u8, 135u8, 153u8, 144u8, 241u8, 46u8, 193u8,
                            65u8, 22u8, 116u8, 161u8, 144u8, 186u8, 31u8, 194u8, 202u8, 225u8,
                            14u8, 137u8, 240u8, 243u8, 119u8, 144u8, 102u8, 245u8, 133u8, 126u8,
                            103u8, 32u8,
                        ],
                    )
                }
                #[doc = " All included blocks on the chain, as well as the block number in this chain that"]
                #[doc = " should be reverted back to if the candidate is disputed and determined to be invalid."]
                pub fn included_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::included::Included,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Included",
                        (),
                        [
                            47u8, 105u8, 189u8, 233u8, 206u8, 153u8, 162u8, 217u8, 141u8, 118u8,
                            31u8, 85u8, 87u8, 53u8, 100u8, 187u8, 31u8, 245u8, 50u8, 171u8, 4u8,
                            203u8, 163u8, 109u8, 212u8, 162u8, 86u8, 124u8, 172u8, 157u8, 165u8,
                            21u8,
                        ],
                    )
                }
                #[doc = " All included blocks on the chain, as well as the block number in this chain that"]
                #[doc = " should be reverted back to if the candidate is disputed and determined to be invalid."]
                pub fn included_iter1(
                    &self,
                    _0: types::included::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::included::Param0,
                    >,
                    types::included::Included,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Included",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            47u8, 105u8, 189u8, 233u8, 206u8, 153u8, 162u8, 217u8, 141u8, 118u8,
                            31u8, 85u8, 87u8, 53u8, 100u8, 187u8, 31u8, 245u8, 50u8, 171u8, 4u8,
                            203u8, 163u8, 109u8, 212u8, 162u8, 86u8, 124u8, 172u8, 157u8, 165u8,
                            21u8,
                        ],
                    )
                }
                #[doc = " All included blocks on the chain, as well as the block number in this chain that"]
                #[doc = " should be reverted back to if the candidate is disputed and determined to be invalid."]
                pub fn included(
                    &self,
                    _0: types::included::Param0,
                    _1: types::included::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::included::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::included::Param1,
                        >,
                    ),
                    types::included::Included,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Included",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            47u8, 105u8, 189u8, 233u8, 206u8, 153u8, 162u8, 217u8, 141u8, 118u8,
                            31u8, 85u8, 87u8, 53u8, 100u8, 187u8, 31u8, 245u8, 50u8, 171u8, 4u8,
                            203u8, 163u8, 109u8, 212u8, 162u8, 86u8, 124u8, 172u8, 157u8, 165u8,
                            21u8,
                        ],
                    )
                }
                #[doc = " Whether the chain is frozen. Starts as `None`. When this is `Some`,"]
                #[doc = " the chain will not accept any new parachain blocks for backing or inclusion,"]
                #[doc = " and its value indicates the last valid block number in the chain."]
                #[doc = " It can only be set back to `None` by governance intervention."]
                pub fn frozen(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::frozen::Frozen,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasDisputes",
                        "Frozen",
                        (),
                        [
                            245u8, 136u8, 43u8, 156u8, 7u8, 74u8, 31u8, 190u8, 184u8, 119u8, 182u8,
                            66u8, 18u8, 136u8, 30u8, 248u8, 24u8, 121u8, 26u8, 177u8, 169u8, 208u8,
                            218u8, 208u8, 80u8, 116u8, 31u8, 144u8, 49u8, 201u8, 198u8, 197u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod paras_slashing {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error =
            runtime_types::polkadot_runtime_parachains::disputes::slashing::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call =
            runtime_types::polkadot_runtime_parachains::disputes::slashing::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ReportDisputeLostUnsigned {
                    pub dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_dispute_lost_unsigned::DisputeProof,
                    >,
                    pub key_owner_proof: report_dispute_lost_unsigned::KeyOwnerProof,
                }
                pub mod report_dispute_lost_unsigned {
                    use super::runtime_types;
                    pub type DisputeProof =
                        runtime_types::polkadot_primitives::vstaging::DisputeProof;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDisputeLostUnsigned {
                    const PALLET: &'static str = "ParasSlashing";
                    const CALL: &'static str = "report_dispute_lost_unsigned";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                pub fn report_dispute_lost_unsigned(
                    &self,
                    dispute_proof: types::report_dispute_lost_unsigned::DisputeProof,
                    key_owner_proof: types::report_dispute_lost_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportDisputeLostUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSlashing",
                        "report_dispute_lost_unsigned",
                        types::ReportDisputeLostUnsigned {
                            dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                dispute_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            56u8, 151u8, 214u8, 24u8, 108u8, 55u8, 217u8, 144u8, 199u8, 113u8,
                            42u8, 100u8, 246u8, 216u8, 82u8, 85u8, 242u8, 84u8, 191u8, 22u8, 246u8,
                            30u8, 54u8, 184u8, 90u8, 172u8, 233u8, 243u8, 87u8, 243u8, 219u8, 71u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod unapplied_slashes {
                    use super::runtime_types;
                    pub type UnappliedSlashes =
                        runtime_types::polkadot_primitives::vstaging::PendingSlashes;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash;
                }
                pub mod validator_set_counts {
                    use super::runtime_types;
                    pub type ValidatorSetCounts = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Validators pending dispute slashes."]
                pub fn unapplied_slashes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::unapplied_slashes::UnappliedSlashes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasSlashing",
                        "UnappliedSlashes",
                        (),
                        [
                            33u8, 56u8, 255u8, 142u8, 106u8, 140u8, 122u8, 102u8, 103u8, 68u8,
                            118u8, 101u8, 50u8, 11u8, 42u8, 230u8, 186u8, 94u8, 118u8, 217u8,
                            121u8, 217u8, 43u8, 149u8, 143u8, 42u8, 108u8, 81u8, 56u8, 24u8, 235u8,
                            18u8,
                        ],
                    )
                }
                #[doc = " Validators pending dispute slashes."]
                pub fn unapplied_slashes_iter1(
                    &self,
                    _0: types::unapplied_slashes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::unapplied_slashes::Param0,
                    >,
                    types::unapplied_slashes::UnappliedSlashes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasSlashing",
                        "UnappliedSlashes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            33u8, 56u8, 255u8, 142u8, 106u8, 140u8, 122u8, 102u8, 103u8, 68u8,
                            118u8, 101u8, 50u8, 11u8, 42u8, 230u8, 186u8, 94u8, 118u8, 217u8,
                            121u8, 217u8, 43u8, 149u8, 143u8, 42u8, 108u8, 81u8, 56u8, 24u8, 235u8,
                            18u8,
                        ],
                    )
                }
                #[doc = " Validators pending dispute slashes."]
                pub fn unapplied_slashes(
                    &self,
                    _0: types::unapplied_slashes::Param0,
                    _1: types::unapplied_slashes::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::unapplied_slashes::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::unapplied_slashes::Param1,
                        >,
                    ),
                    types::unapplied_slashes::UnappliedSlashes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasSlashing",
                        "UnappliedSlashes",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            33u8, 56u8, 255u8, 142u8, 106u8, 140u8, 122u8, 102u8, 103u8, 68u8,
                            118u8, 101u8, 50u8, 11u8, 42u8, 230u8, 186u8, 94u8, 118u8, 217u8,
                            121u8, 217u8, 43u8, 149u8, 143u8, 42u8, 108u8, 81u8, 56u8, 24u8, 235u8,
                            18u8,
                        ],
                    )
                }
                #[doc = " `ValidatorSetCount` per session."]
                pub fn validator_set_counts_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validator_set_counts::ValidatorSetCounts,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasSlashing",
                        "ValidatorSetCounts",
                        (),
                        [
                            195u8, 220u8, 79u8, 140u8, 114u8, 80u8, 241u8, 103u8, 4u8, 7u8, 53u8,
                            100u8, 16u8, 78u8, 104u8, 171u8, 134u8, 110u8, 158u8, 191u8, 37u8,
                            94u8, 211u8, 26u8, 17u8, 70u8, 50u8, 34u8, 70u8, 234u8, 186u8, 69u8,
                        ],
                    )
                }
                #[doc = " `ValidatorSetCount` per session."]
                pub fn validator_set_counts(
                    &self,
                    _0: types::validator_set_counts::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::validator_set_counts::Param0,
                    >,
                    types::validator_set_counts::ValidatorSetCounts,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ParasSlashing",
                        "ValidatorSetCounts",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            195u8, 220u8, 79u8, 140u8, 114u8, 80u8, 241u8, 103u8, 4u8, 7u8, 53u8,
                            100u8, 16u8, 78u8, 104u8, 171u8, 134u8, 110u8, 158u8, 191u8, 37u8,
                            94u8, 211u8, 26u8, 17u8, 70u8, 50u8, 34u8, 70u8, 234u8, 186u8, 69u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod message_queue {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_message_queue::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_message_queue::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a page which has no more messages remaining to be processed or is stale."]
                pub struct ReapPage {
                    pub message_origin: reap_page::MessageOrigin,
                    pub page_index: reap_page::PageIndex,
                }
                pub mod reap_page {
                    use super::runtime_types;
                    pub type MessageOrigin = runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin ;
                    pub type PageIndex = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReapPage {
                    const PALLET: &'static str = "MessageQueue";
                    const CALL: &'static str = "reap_page";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Execute an overweight message."]
                #[doc = ""]
                #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"]
                #[doc = "as success condition."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `message_origin`: The origin from which the message to be executed arrived."]
                #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."]
                #[doc = "- `index`: The index into the queue of the message to be executed."]
                #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"]
                #[doc = "  of the message."]
                #[doc = ""]
                #[doc = "Benchmark complexity considerations: O(index + weight_limit)."]
                pub struct ExecuteOverweight {
                    pub message_origin: execute_overweight::MessageOrigin,
                    pub page: execute_overweight::Page,
                    pub index: execute_overweight::Index,
                    pub weight_limit: execute_overweight::WeightLimit,
                }
                pub mod execute_overweight {
                    use super::runtime_types;
                    pub type MessageOrigin = runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin ;
                    pub type Page = ::core::primitive::u32;
                    pub type Index = ::core::primitive::u32;
                    pub type WeightLimit = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ExecuteOverweight {
                    const PALLET: &'static str = "MessageQueue";
                    const CALL: &'static str = "execute_overweight";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Remove a page which has no more messages remaining to be processed or is stale."]
                pub fn reap_page(
                    &self,
                    message_origin: types::reap_page::MessageOrigin,
                    page_index: types::reap_page::PageIndex,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReapPage>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MessageQueue",
                        "reap_page",
                        types::ReapPage {
                            message_origin,
                            page_index,
                        },
                        [
                            217u8, 3u8, 106u8, 158u8, 151u8, 194u8, 234u8, 4u8, 254u8, 4u8, 200u8,
                            201u8, 107u8, 140u8, 220u8, 201u8, 245u8, 14u8, 23u8, 156u8, 41u8,
                            106u8, 39u8, 90u8, 214u8, 1u8, 183u8, 45u8, 3u8, 83u8, 242u8, 30u8,
                        ],
                    )
                }
                #[doc = "Execute an overweight message."]
                #[doc = ""]
                #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"]
                #[doc = "as success condition."]
                #[doc = ""]
                #[doc = "- `origin`: Must be `Signed`."]
                #[doc = "- `message_origin`: The origin from which the message to be executed arrived."]
                #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."]
                #[doc = "- `index`: The index into the queue of the message to be executed."]
                #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"]
                #[doc = "  of the message."]
                #[doc = ""]
                #[doc = "Benchmark complexity considerations: O(index + weight_limit)."]
                pub fn execute_overweight(
                    &self,
                    message_origin: types::execute_overweight::MessageOrigin,
                    page: types::execute_overweight::Page,
                    index: types::execute_overweight::Index,
                    weight_limit: types::execute_overweight::WeightLimit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ExecuteOverweight>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MessageQueue",
                        "execute_overweight",
                        types::ExecuteOverweight {
                            message_origin,
                            page,
                            index,
                            weight_limit,
                        },
                        [
                            101u8, 2u8, 86u8, 225u8, 217u8, 229u8, 143u8, 214u8, 146u8, 190u8,
                            182u8, 102u8, 251u8, 18u8, 179u8, 187u8, 113u8, 29u8, 182u8, 24u8,
                            34u8, 179u8, 64u8, 249u8, 139u8, 76u8, 50u8, 238u8, 132u8, 167u8,
                            115u8, 141u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_message_queue::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."]
            pub struct ProcessingFailed {
                pub id: processing_failed::Id,
                pub origin: processing_failed::Origin,
                pub error: processing_failed::Error,
            }
            pub mod processing_failed {
                use super::runtime_types;
                pub type Id = ::subxt::ext::subxt_core::utils::H256;
                pub type Origin =
                    runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin;
                pub type Error =
                    runtime_types::frame_support::traits::messages::ProcessMessageError;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ProcessingFailed {
                const PALLET: &'static str = "MessageQueue";
                const EVENT: &'static str = "ProcessingFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Message is processed."]
            pub struct Processed {
                pub id: processed::Id,
                pub origin: processed::Origin,
                pub weight_used: processed::WeightUsed,
                pub success: processed::Success,
            }
            pub mod processed {
                use super::runtime_types;
                pub type Id = ::subxt::ext::subxt_core::utils::H256;
                pub type Origin =
                    runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin;
                pub type WeightUsed = runtime_types::sp_weights::weight_v2::Weight;
                pub type Success = ::core::primitive::bool;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Processed {
                const PALLET: &'static str = "MessageQueue";
                const EVENT: &'static str = "Processed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Message placed in overweight queue."]
            pub struct OverweightEnqueued {
                pub id: overweight_enqueued::Id,
                pub origin: overweight_enqueued::Origin,
                pub page_index: overweight_enqueued::PageIndex,
                pub message_index: overweight_enqueued::MessageIndex,
            }
            pub mod overweight_enqueued {
                use super::runtime_types;
                pub type Id = [::core::primitive::u8; 32usize];
                pub type Origin =
                    runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin;
                pub type PageIndex = ::core::primitive::u32;
                pub type MessageIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OverweightEnqueued {
                const PALLET: &'static str = "MessageQueue";
                const EVENT: &'static str = "OverweightEnqueued";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "This page was reaped."]
            pub struct PageReaped {
                pub origin: page_reaped::Origin,
                pub index: page_reaped::Index,
            }
            pub mod page_reaped {
                use super::runtime_types;
                pub type Origin =
                    runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PageReaped {
                const PALLET: &'static str = "MessageQueue";
                const EVENT: &'static str = "PageReaped";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod book_state_for {
                    use super::runtime_types;
                    pub type BookStateFor = runtime_types :: pallet_message_queue :: BookState < runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin > ;
                    pub type Param0 = runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin ;
                }
                pub mod service_head {
                    use super::runtime_types;
                    pub type ServiceHead = runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin ;
                }
                pub mod pages {
                    use super::runtime_types;
                    pub type Pages =
                        runtime_types::pallet_message_queue::Page<::core::primitive::u32>;
                    pub type Param0 = runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin ;
                    pub type Param1 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The index of the first and last (non-empty) pages."]
                pub fn book_state_for_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::book_state_for::BookStateFor,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "BookStateFor",
                        (),
                        [
                            32u8, 61u8, 161u8, 81u8, 134u8, 136u8, 252u8, 113u8, 204u8, 115u8,
                            206u8, 180u8, 33u8, 185u8, 137u8, 155u8, 178u8, 189u8, 234u8, 201u8,
                            31u8, 230u8, 156u8, 72u8, 37u8, 56u8, 152u8, 91u8, 50u8, 82u8, 191u8,
                            2u8,
                        ],
                    )
                }
                #[doc = " The index of the first and last (non-empty) pages."]
                pub fn book_state_for(
                    &self,
                    _0: types::book_state_for::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::book_state_for::Param0,
                    >,
                    types::book_state_for::BookStateFor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "BookStateFor",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            32u8, 61u8, 161u8, 81u8, 134u8, 136u8, 252u8, 113u8, 204u8, 115u8,
                            206u8, 180u8, 33u8, 185u8, 137u8, 155u8, 178u8, 189u8, 234u8, 201u8,
                            31u8, 230u8, 156u8, 72u8, 37u8, 56u8, 152u8, 91u8, 50u8, 82u8, 191u8,
                            2u8,
                        ],
                    )
                }
                #[doc = " The origin at which we should begin servicing."]
                pub fn service_head(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::service_head::ServiceHead,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "ServiceHead",
                        (),
                        [
                            17u8, 130u8, 229u8, 193u8, 127u8, 237u8, 60u8, 232u8, 99u8, 109u8,
                            102u8, 228u8, 124u8, 103u8, 24u8, 188u8, 151u8, 121u8, 55u8, 97u8,
                            85u8, 63u8, 131u8, 60u8, 99u8, 12u8, 88u8, 230u8, 86u8, 50u8, 12u8,
                            75u8,
                        ],
                    )
                }
                #[doc = " The map of page indices to pages."]
                pub fn pages_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pages::Pages,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "Pages",
                        (),
                        [
                            56u8, 181u8, 157u8, 16u8, 157u8, 123u8, 106u8, 93u8, 199u8, 208u8,
                            153u8, 53u8, 168u8, 188u8, 124u8, 77u8, 140u8, 163u8, 113u8, 16u8,
                            232u8, 47u8, 10u8, 185u8, 113u8, 230u8, 47u8, 91u8, 253u8, 196u8, 95u8,
                            102u8,
                        ],
                    )
                }
                #[doc = " The map of page indices to pages."]
                pub fn pages_iter1(
                    &self,
                    _0: types::pages::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::pages::Param0,
                    >,
                    types::pages::Pages,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "Pages",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            56u8, 181u8, 157u8, 16u8, 157u8, 123u8, 106u8, 93u8, 199u8, 208u8,
                            153u8, 53u8, 168u8, 188u8, 124u8, 77u8, 140u8, 163u8, 113u8, 16u8,
                            232u8, 47u8, 10u8, 185u8, 113u8, 230u8, 47u8, 91u8, 253u8, 196u8, 95u8,
                            102u8,
                        ],
                    )
                }
                #[doc = " The map of page indices to pages."]
                pub fn pages(
                    &self,
                    _0: types::pages::Param0,
                    _1: types::pages::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::pages::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::pages::Param1,
                        >,
                    ),
                    types::pages::Pages,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MessageQueue",
                        "Pages",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            56u8, 181u8, 157u8, 16u8, 157u8, 123u8, 106u8, 93u8, 199u8, 208u8,
                            153u8, 53u8, 168u8, 188u8, 124u8, 77u8, 140u8, 163u8, 113u8, 16u8,
                            232u8, 47u8, 10u8, 185u8, 113u8, 230u8, 47u8, 91u8, 253u8, 196u8, 95u8,
                            102u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The size of the page; this implies the maximum message size which can be sent."]
                #[doc = ""]
                #[doc = " A good value depends on the expected message sizes, their weights, the weight that is"]
                #[doc = " available for processing them and the maximal needed message size. The maximal message"]
                #[doc = " size is slightly lower than this as defined by [`MaxMessageLenOf`]."]
                pub fn heap_size(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MessageQueue",
                        "HeapSize",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of stale pages (i.e. of overweight messages) allowed before culling"]
                #[doc = " can happen. Once there are more stale pages than this, then historical pages may be"]
                #[doc = " dropped, even if they contain unprocessed overweight messages."]
                pub fn max_stale(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MessageQueue",
                        "MaxStale",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The amount of weight (if any) which should be provided to the message queue for"]
                #[doc = " servicing enqueued items `on_initialize`."]
                #[doc = ""]
                #[doc = " This may be legitimately `None` in the case that you will call"]
                #[doc = " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have"]
                #[doc = " it run in `on_idle`."]
                pub fn service_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MessageQueue",
                        "ServiceWeight",
                        [
                            204u8, 140u8, 63u8, 167u8, 49u8, 8u8, 148u8, 163u8, 190u8, 224u8, 15u8,
                            103u8, 86u8, 153u8, 248u8, 117u8, 223u8, 117u8, 210u8, 80u8, 205u8,
                            155u8, 40u8, 11u8, 59u8, 63u8, 129u8, 156u8, 17u8, 83u8, 177u8, 250u8,
                        ],
                    )
                }
                #[doc = " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which"]
                #[doc = " should be provided to the message queue for servicing enqueued items `on_idle`."]
                #[doc = " Useful for parachains to process messages at the same block they are received."]
                #[doc = ""]
                #[doc = " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`."]
                pub fn idle_max_service_weight(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MessageQueue",
                        "IdleMaxServiceWeight",
                        [
                            204u8, 140u8, 63u8, 167u8, 49u8, 8u8, 148u8, 163u8, 190u8, 224u8, 15u8,
                            103u8, 86u8, 153u8, 248u8, 117u8, 223u8, 117u8, 210u8, 80u8, 205u8,
                            155u8, 40u8, 11u8, 59u8, 63u8, 129u8, 156u8, 17u8, 83u8, 177u8, 250u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod on_demand_assignment_provider {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a single on demand core order."]
                #[doc = "Will use the spot price for the current block and will reap the account if needed."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub struct PlaceOrderAllowDeath {
                    pub max_amount: place_order_allow_death::MaxAmount,
                    pub para_id: place_order_allow_death::ParaId,
                }
                pub mod place_order_allow_death {
                    use super::runtime_types;
                    pub type MaxAmount = ::core::primitive::u128;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceOrderAllowDeath {
                    const PALLET: &'static str = "OnDemandAssignmentProvider";
                    const CALL: &'static str = "place_order_allow_death";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"]
                #[doc = "check that placing the order will not reap the account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub struct PlaceOrderKeepAlive {
                    pub max_amount: place_order_keep_alive::MaxAmount,
                    pub para_id: place_order_keep_alive::ParaId,
                }
                pub mod place_order_keep_alive {
                    use super::runtime_types;
                    pub type MaxAmount = ::core::primitive::u128;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceOrderKeepAlive {
                    const PALLET: &'static str = "OnDemandAssignmentProvider";
                    const CALL: &'static str = "place_order_keep_alive";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a single on demand core order with credits."]
                #[doc = "Will charge the owner's on-demand credit account the spot price for the current block."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, on-demand credits will be withdrawn from this"]
                #[doc = "  account."]
                #[doc = "- `max_amount`: The maximum number of credits to spend from the origin to place an"]
                #[doc = "  order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientCredits`"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub struct PlaceOrderWithCredits {
                    pub max_amount: place_order_with_credits::MaxAmount,
                    pub para_id: place_order_with_credits::ParaId,
                }
                pub mod place_order_with_credits {
                    use super::runtime_types;
                    pub type MaxAmount = ::core::primitive::u128;
                    pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PlaceOrderWithCredits {
                    const PALLET: &'static str = "OnDemandAssignmentProvider";
                    const CALL: &'static str = "place_order_with_credits";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Create a single on demand core order."]
                #[doc = "Will use the spot price for the current block and will reap the account if needed."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub fn place_order_allow_death(
                    &self,
                    max_amount: types::place_order_allow_death::MaxAmount,
                    para_id: types::place_order_allow_death::ParaId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlaceOrderAllowDeath>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "OnDemandAssignmentProvider",
                        "place_order_allow_death",
                        types::PlaceOrderAllowDeath {
                            max_amount,
                            para_id,
                        },
                        [
                            42u8, 115u8, 192u8, 118u8, 20u8, 174u8, 114u8, 94u8, 177u8, 195u8,
                            175u8, 214u8, 175u8, 25u8, 167u8, 135u8, 194u8, 251u8, 186u8, 185u8,
                            218u8, 153u8, 182u8, 166u8, 28u8, 238u8, 72u8, 64u8, 115u8, 67u8, 58u8,
                            165u8,
                        ],
                    )
                }
                #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"]
                #[doc = "check that placing the order will not reap the account."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub fn place_order_keep_alive(
                    &self,
                    max_amount: types::place_order_keep_alive::MaxAmount,
                    para_id: types::place_order_keep_alive::ParaId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PlaceOrderKeepAlive>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "OnDemandAssignmentProvider",
                        "place_order_keep_alive",
                        types::PlaceOrderKeepAlive {
                            max_amount,
                            para_id,
                        },
                        [
                            112u8, 56u8, 202u8, 218u8, 85u8, 138u8, 45u8, 213u8, 119u8, 36u8, 62u8,
                            138u8, 217u8, 95u8, 25u8, 86u8, 119u8, 192u8, 57u8, 245u8, 34u8, 225u8,
                            247u8, 116u8, 114u8, 230u8, 130u8, 180u8, 163u8, 190u8, 106u8, 5u8,
                        ],
                    )
                }
                #[doc = "Create a single on demand core order with credits."]
                #[doc = "Will charge the owner's on-demand credit account the spot price for the current block."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "- `origin`: The sender of the call, on-demand credits will be withdrawn from this"]
                #[doc = "  account."]
                #[doc = "- `max_amount`: The maximum number of credits to spend from the origin to place an"]
                #[doc = "  order."]
                #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                #[doc = ""]
                #[doc = "Errors:"]
                #[doc = "- `InsufficientCredits`"]
                #[doc = "- `QueueFull`"]
                #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                #[doc = ""]
                #[doc = "Events:"]
                #[doc = "- `OnDemandOrderPlaced`"]
                pub fn place_order_with_credits(
                    &self,
                    max_amount: types::place_order_with_credits::MaxAmount,
                    para_id: types::place_order_with_credits::ParaId,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::PlaceOrderWithCredits,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "OnDemandAssignmentProvider",
                        "place_order_with_credits",
                        types::PlaceOrderWithCredits {
                            max_amount,
                            para_id,
                        },
                        [
                            147u8, 242u8, 40u8, 204u8, 93u8, 215u8, 107u8, 99u8, 143u8, 35u8,
                            227u8, 5u8, 137u8, 4u8, 66u8, 71u8, 143u8, 170u8, 120u8, 147u8, 65u8,
                            224u8, 149u8, 254u8, 243u8, 23u8, 87u8, 102u8, 218u8, 167u8, 203u8,
                            237u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An order was placed at some spot price amount by orderer ordered_by"]
            pub struct OnDemandOrderPlaced {
                pub para_id: on_demand_order_placed::ParaId,
                pub spot_price: on_demand_order_placed::SpotPrice,
                pub ordered_by: on_demand_order_placed::OrderedBy,
            }
            pub mod on_demand_order_placed {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type SpotPrice = ::core::primitive::u128;
                pub type OrderedBy = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for OnDemandOrderPlaced {
                const PALLET: &'static str = "OnDemandAssignmentProvider";
                const EVENT: &'static str = "OnDemandOrderPlaced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The value of the spot price has likely changed"]
            pub struct SpotPriceSet {
                pub spot_price: spot_price_set::SpotPrice,
            }
            pub mod spot_price_set {
                use super::runtime_types;
                pub type SpotPrice = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SpotPriceSet {
                const PALLET: &'static str = "OnDemandAssignmentProvider";
                const EVENT: &'static str = "SpotPriceSet";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An account was given credits."]
            pub struct AccountCredited {
                pub who: account_credited::Who,
                pub amount: account_credited::Amount,
            }
            pub mod account_credited {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AccountCredited {
                const PALLET: &'static str = "OnDemandAssignmentProvider";
                const EVENT: &'static str = "AccountCredited";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod para_id_affinity {
                    use super::runtime_types;
                    pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: CoreAffinityCount ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod queue_status {
                    use super::runtime_types;
                    pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueStatusType ;
                }
                pub mod free_entries {
                    use super::runtime_types;
                    pub type FreeEntries = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_runtime_parachains::on_demand::types::EnqueuedOrder,
                    >;
                }
                pub mod affinity_entries {
                    use super::runtime_types;
                    pub type AffinityEntries = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_runtime_parachains::on_demand::types::EnqueuedOrder,
                    >;
                    pub type Param0 = runtime_types::polkadot_primitives::v8::CoreIndex;
                }
                pub mod revenue {
                    use super::runtime_types;
                    pub type Revenue = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u128,
                    >;
                }
                pub mod credits {
                    use super::runtime_types;
                    pub type Credits = ::core::primitive::u128;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in"]
                #[doc = " it's lookahead. Keeping track of this affinity prevents parallel execution of the same"]
                #[doc = " `ParaId` on two or more `CoreIndex`es."]
                pub fn para_id_affinity_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::para_id_affinity::ParaIdAffinity,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "ParaIdAffinity",
                        (),
                        [
                            84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8,
                            174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8,
                            30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8,
                            46u8,
                        ],
                    )
                }
                #[doc = " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in"]
                #[doc = " it's lookahead. Keeping track of this affinity prevents parallel execution of the same"]
                #[doc = " `ParaId` on two or more `CoreIndex`es."]
                pub fn para_id_affinity(
                    &self,
                    _0: types::para_id_affinity::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::para_id_affinity::Param0,
                    >,
                    types::para_id_affinity::ParaIdAffinity,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "ParaIdAffinity",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8,
                            174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8,
                            30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8,
                            46u8,
                        ],
                    )
                }
                #[doc = " Overall status of queue (both free + affinity entries)"]
                pub fn queue_status(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queue_status::QueueStatus,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "QueueStatus",
                        (),
                        [
                            44u8, 67u8, 88u8, 179u8, 0u8, 178u8, 233u8, 101u8, 156u8, 215u8, 99u8,
                            242u8, 236u8, 2u8, 153u8, 32u8, 214u8, 247u8, 193u8, 234u8, 194u8,
                            30u8, 182u8, 151u8, 18u8, 121u8, 208u8, 146u8, 231u8, 6u8, 162u8, 20u8,
                        ],
                    )
                }
                #[doc = " Priority queue for all orders which don't yet (or not any more) have any core affinity."]
                pub fn free_entries(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::free_entries::FreeEntries,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "FreeEntries",
                        (),
                        [
                            229u8, 190u8, 235u8, 140u8, 35u8, 221u8, 62u8, 119u8, 131u8, 211u8,
                            177u8, 218u8, 84u8, 132u8, 135u8, 118u8, 138u8, 227u8, 186u8, 52u8,
                            102u8, 190u8, 155u8, 123u8, 232u8, 136u8, 97u8, 203u8, 55u8, 113u8,
                            194u8, 7u8,
                        ],
                    )
                }
                #[doc = " Queue entries that are currently bound to a particular core due to core affinity."]
                pub fn affinity_entries_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::affinity_entries::AffinityEntries,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "AffinityEntries",
                        (),
                        [
                            130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8,
                            28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8,
                            124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8,
                            90u8,
                        ],
                    )
                }
                #[doc = " Queue entries that are currently bound to a particular core due to core affinity."]
                pub fn affinity_entries(
                    &self,
                    _0: types::affinity_entries::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::affinity_entries::Param0,
                    >,
                    types::affinity_entries::AffinityEntries,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "AffinityEntries",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8,
                            28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8,
                            124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8,
                            90u8,
                        ],
                    )
                }
                #[doc = " Keeps track of accumulated revenue from on demand order sales."]
                pub fn revenue(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::revenue::Revenue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "Revenue",
                        (),
                        [
                            42u8, 127u8, 42u8, 59u8, 80u8, 19u8, 151u8, 234u8, 157u8, 17u8, 183u8,
                            129u8, 121u8, 39u8, 74u8, 43u8, 121u8, 14u8, 82u8, 11u8, 14u8, 182u8,
                            125u8, 52u8, 37u8, 132u8, 159u8, 93u8, 106u8, 130u8, 225u8, 64u8,
                        ],
                    )
                }
                #[doc = " Keeps track of credits owned by each account."]
                pub fn credits_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::credits::Credits,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "Credits",
                        (),
                        [
                            59u8, 62u8, 141u8, 61u8, 25u8, 95u8, 77u8, 151u8, 218u8, 104u8, 152u8,
                            237u8, 135u8, 135u8, 41u8, 130u8, 220u8, 168u8, 94u8, 180u8, 251u8,
                            76u8, 121u8, 253u8, 203u8, 64u8, 11u8, 33u8, 81u8, 122u8, 201u8, 145u8,
                        ],
                    )
                }
                #[doc = " Keeps track of credits owned by each account."]
                pub fn credits(
                    &self,
                    _0: types::credits::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::credits::Param0,
                    >,
                    types::credits::Credits,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "Credits",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            59u8, 62u8, 141u8, 61u8, 25u8, 95u8, 77u8, 151u8, 218u8, 104u8, 152u8,
                            237u8, 135u8, 135u8, 41u8, 130u8, 220u8, 168u8, 94u8, 180u8, 251u8,
                            76u8, 121u8, 253u8, 203u8, 64u8, 11u8, 33u8, 81u8, 122u8, 201u8, 145u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The default value for the spot traffic multiplier."]
                pub fn traffic_default_value(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::sp_arithmetic::fixed_point::FixedU128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "TrafficDefaultValue",
                        [
                            62u8, 145u8, 102u8, 227u8, 159u8, 92u8, 27u8, 54u8, 159u8, 228u8,
                            193u8, 99u8, 75u8, 196u8, 26u8, 250u8, 229u8, 230u8, 88u8, 109u8,
                            246u8, 100u8, 152u8, 158u8, 14u8, 25u8, 224u8, 173u8, 224u8, 41u8,
                            105u8, 231u8,
                        ],
                    )
                }
                #[doc = " The maximum number of blocks some historical revenue"]
                #[doc = " information stored for."]
                pub fn max_historical_revenue(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "MaxHistoricalRevenue",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " Identifier for the internal revenue balance."]
                pub fn pallet_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_support::PalletId,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "OnDemandAssignmentProvider",
                        "PalletId",
                        [
                            56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8,
                            161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8,
                            129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod coretime_assignment_provider {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error =
            runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod core_schedules {
                    use super::runtime_types;
                    pub type CoreSchedules =
                        runtime_types::polkadot_runtime_parachains::assigner_coretime::Schedule<
                            ::core::primitive::u32,
                        >;
                    pub type Param0 = (
                        ::core::primitive::u32,
                        runtime_types::polkadot_primitives::v8::CoreIndex,
                    );
                }
                pub mod core_descriptors {
                    use super::runtime_types;
                    pub type CoreDescriptors = runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: CoreDescriptor < :: core :: primitive :: u32 > ;
                    pub type Param0 = runtime_types::polkadot_primitives::v8::CoreIndex;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Scheduled assignment sets."]
                #[doc = ""]
                #[doc = " Assignments as of the given block number. They will go into state once the block number is"]
                #[doc = " reached (and replace whatever was in there before)."]
                pub fn core_schedules_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::core_schedules::CoreSchedules,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "CoretimeAssignmentProvider",
                        "CoreSchedules",
                        (),
                        [
                            34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8,
                            42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8,
                            57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8,
                        ],
                    )
                }
                #[doc = " Scheduled assignment sets."]
                #[doc = ""]
                #[doc = " Assignments as of the given block number. They will go into state once the block number is"]
                #[doc = " reached (and replace whatever was in there before)."]
                pub fn core_schedules(
                    &self,
                    _0: types::core_schedules::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::core_schedules::CoreSchedules,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "CoretimeAssignmentProvider",
                        "CoreSchedules",
                        (),
                        [
                            34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8,
                            42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8,
                            57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8,
                        ],
                    )
                }
                #[doc = " Assignments which are currently active."]
                #[doc = ""]
                #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"]
                #[doc = " `PendingAssignments`."]
                pub fn core_descriptors_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::core_descriptors::CoreDescriptors,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "CoretimeAssignmentProvider",
                        "CoreDescriptors",
                        (),
                        [
                            1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8,
                            7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8,
                            190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8,
                        ],
                    )
                }
                #[doc = " Assignments which are currently active."]
                #[doc = ""]
                #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"]
                #[doc = " `PendingAssignments`."]
                pub fn core_descriptors(
                    &self,
                    _0: types::core_descriptors::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::core_descriptors::CoreDescriptors,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "CoretimeAssignmentProvider",
                        "CoreDescriptors",
                        (),
                        [
                            1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8,
                            7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8,
                            190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod registrar {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::paras_registrar::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::paras_registrar::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Register head data and validation code for a reserved Para Id."]
                #[doc = ""]
                #[doc = "## Arguments"]
                #[doc = "- `origin`: Must be called by a `Signed` origin."]
                #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."]
                #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."]
                #[doc = "- `validation_code`: The initial validation code of the parachain/thread."]
                #[doc = ""]
                #[doc = "## Deposits/Fees"]
                #[doc = "The account with the originating signature must reserve a deposit."]
                #[doc = ""]
                #[doc = "The deposit is required to cover the costs associated with storing the genesis head"]
                #[doc = "data and the validation code."]
                #[doc = "This accounts for the potential to store validation code of a size up to the"]
                #[doc = "`max_code_size`, as defined in the configuration pallet"]
                #[doc = ""]
                #[doc = "Anything already reserved previously for this para ID is accounted for."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = "The `Registered` event is emitted in case of success."]
                pub struct Register {
                    pub id: register::Id,
                    pub genesis_head: register::GenesisHead,
                    pub validation_code: register::ValidationCode,
                }
                pub mod register {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type GenesisHead =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                    pub type ValidationCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Register {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "register";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Force the registration of a Para Id on the relay chain."]
                #[doc = ""]
                #[doc = "This function must be called by a Root origin."]
                #[doc = ""]
                #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"]
                #[doc = "can be registered, including sub-1000 IDs which are System Parachains."]
                pub struct ForceRegister {
                    pub who: force_register::Who,
                    pub deposit: force_register::Deposit,
                    pub id: force_register::Id,
                    pub genesis_head: force_register::GenesisHead,
                    pub validation_code: force_register::ValidationCode,
                }
                pub mod force_register {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Deposit = ::core::primitive::u128;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type GenesisHead =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                    pub type ValidationCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceRegister {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "force_register";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Deregister a Para Id, freeing all data and returning any deposit."]
                #[doc = ""]
                #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"]
                #[doc = "on-demand parachain."]
                pub struct Deregister {
                    pub id: deregister::Id,
                }
                pub mod deregister {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Deregister {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "deregister";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"]
                #[doc = "holding."]
                #[doc = ""]
                #[doc = "The origin must be Root, the `para` owner, or the `para` itself."]
                #[doc = ""]
                #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"]
                #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."]
                #[doc = ""]
                #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"]
                #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"]
                #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"]
                #[doc = "parachain), auction information and the auction deposit are switched."]
                pub struct Swap {
                    pub id: swap::Id,
                    pub other: swap::Other,
                }
                pub mod swap {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Other = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Swap {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "swap";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a manager lock from a para. This will allow the manager of a"]
                #[doc = "previously locked para to deregister or swap a para without using governance."]
                #[doc = ""]
                #[doc = "Can only be called by the Root origin or the parachain."]
                pub struct RemoveLock {
                    pub para: remove_lock::Para,
                }
                pub mod remove_lock {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveLock {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "remove_lock";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Reserve a Para Id on the relay chain."]
                #[doc = ""]
                #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."]
                #[doc = "The origin account is able to register head data and validation code using `register` to"]
                #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"]
                #[doc = "be upgraded to a lease holding parachain."]
                #[doc = ""]
                #[doc = "## Arguments"]
                #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"]
                #[doc = "  para ID."]
                #[doc = ""]
                #[doc = "## Deposits/Fees"]
                #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"]
                #[doc = "use."]
                pub struct Reserve;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Reserve {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "reserve";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add a manager lock from a para. This will prevent the manager of a"]
                #[doc = "para to deregister or swap a para."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub struct AddLock {
                    pub para: add_lock::Para,
                }
                pub mod add_lock {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddLock {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "add_lock";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule a parachain upgrade."]
                #[doc = ""]
                #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"]
                #[doc = "validators have reported on the validity of the code, the code will either be enacted"]
                #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"]
                #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"]
                #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"]
                #[doc = "has changed."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub struct ScheduleCodeUpgrade {
                    pub para: schedule_code_upgrade::Para,
                    pub new_code: schedule_code_upgrade::NewCode,
                }
                pub mod schedule_code_upgrade {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewCode =
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ScheduleCodeUpgrade {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "schedule_code_upgrade";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the parachain's current head."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub struct SetCurrentHead {
                    pub para: set_current_head::Para,
                    pub new_head: set_current_head::NewHead,
                }
                pub mod set_current_head {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type NewHead =
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCurrentHead {
                    const PALLET: &'static str = "Registrar";
                    const CALL: &'static str = "set_current_head";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Register head data and validation code for a reserved Para Id."]
                #[doc = ""]
                #[doc = "## Arguments"]
                #[doc = "- `origin`: Must be called by a `Signed` origin."]
                #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."]
                #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."]
                #[doc = "- `validation_code`: The initial validation code of the parachain/thread."]
                #[doc = ""]
                #[doc = "## Deposits/Fees"]
                #[doc = "The account with the originating signature must reserve a deposit."]
                #[doc = ""]
                #[doc = "The deposit is required to cover the costs associated with storing the genesis head"]
                #[doc = "data and the validation code."]
                #[doc = "This accounts for the potential to store validation code of a size up to the"]
                #[doc = "`max_code_size`, as defined in the configuration pallet"]
                #[doc = ""]
                #[doc = "Anything already reserved previously for this para ID is accounted for."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = "The `Registered` event is emitted in case of success."]
                pub fn register(
                    &self,
                    id: types::register::Id,
                    genesis_head: types::register::GenesisHead,
                    validation_code: types::register::ValidationCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Register>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "register",
                        types::Register {
                            id,
                            genesis_head,
                            validation_code,
                        },
                        [
                            208u8, 1u8, 38u8, 95u8, 53u8, 67u8, 148u8, 138u8, 189u8, 212u8, 250u8,
                            160u8, 99u8, 220u8, 231u8, 55u8, 220u8, 21u8, 188u8, 81u8, 162u8,
                            219u8, 93u8, 136u8, 255u8, 22u8, 5u8, 147u8, 40u8, 46u8, 141u8, 77u8,
                        ],
                    )
                }
                #[doc = "Force the registration of a Para Id on the relay chain."]
                #[doc = ""]
                #[doc = "This function must be called by a Root origin."]
                #[doc = ""]
                #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"]
                #[doc = "can be registered, including sub-1000 IDs which are System Parachains."]
                pub fn force_register(
                    &self,
                    who: types::force_register::Who,
                    deposit: types::force_register::Deposit,
                    id: types::force_register::Id,
                    genesis_head: types::force_register::GenesisHead,
                    validation_code: types::force_register::ValidationCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceRegister>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "force_register",
                        types::ForceRegister {
                            who,
                            deposit,
                            id,
                            genesis_head,
                            validation_code,
                        },
                        [
                            73u8, 118u8, 161u8, 95u8, 234u8, 106u8, 174u8, 143u8, 34u8, 235u8,
                            140u8, 166u8, 210u8, 101u8, 53u8, 191u8, 194u8, 17u8, 189u8, 187u8,
                            86u8, 91u8, 112u8, 248u8, 109u8, 208u8, 37u8, 70u8, 26u8, 195u8, 90u8,
                            207u8,
                        ],
                    )
                }
                #[doc = "Deregister a Para Id, freeing all data and returning any deposit."]
                #[doc = ""]
                #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"]
                #[doc = "on-demand parachain."]
                pub fn deregister(
                    &self,
                    id: types::deregister::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Deregister>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "deregister",
                        types::Deregister { id },
                        [
                            212u8, 38u8, 98u8, 234u8, 146u8, 188u8, 71u8, 244u8, 238u8, 255u8, 3u8,
                            89u8, 52u8, 242u8, 126u8, 187u8, 185u8, 193u8, 174u8, 187u8, 196u8,
                            3u8, 66u8, 77u8, 173u8, 115u8, 52u8, 210u8, 69u8, 221u8, 109u8, 112u8,
                        ],
                    )
                }
                #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"]
                #[doc = "holding."]
                #[doc = ""]
                #[doc = "The origin must be Root, the `para` owner, or the `para` itself."]
                #[doc = ""]
                #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"]
                #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."]
                #[doc = ""]
                #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"]
                #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"]
                #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"]
                #[doc = "parachain), auction information and the auction deposit are switched."]
                pub fn swap(
                    &self,
                    id: types::swap::Id,
                    other: types::swap::Other,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Swap>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "swap",
                        types::Swap { id, other },
                        [
                            235u8, 169u8, 16u8, 199u8, 107u8, 54u8, 35u8, 160u8, 219u8, 156u8,
                            177u8, 205u8, 83u8, 45u8, 30u8, 233u8, 8u8, 143u8, 27u8, 123u8, 156u8,
                            65u8, 128u8, 233u8, 218u8, 230u8, 98u8, 206u8, 231u8, 95u8, 224u8,
                            35u8,
                        ],
                    )
                }
                #[doc = "Remove a manager lock from a para. This will allow the manager of a"]
                #[doc = "previously locked para to deregister or swap a para without using governance."]
                #[doc = ""]
                #[doc = "Can only be called by the Root origin or the parachain."]
                pub fn remove_lock(
                    &self,
                    para: types::remove_lock::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveLock>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "remove_lock",
                        types::RemoveLock { para },
                        [
                            239u8, 207u8, 248u8, 246u8, 244u8, 128u8, 113u8, 114u8, 6u8, 232u8,
                            218u8, 123u8, 241u8, 190u8, 255u8, 48u8, 26u8, 248u8, 33u8, 86u8, 87u8,
                            219u8, 65u8, 104u8, 66u8, 68u8, 34u8, 201u8, 43u8, 159u8, 141u8, 100u8,
                        ],
                    )
                }
                #[doc = "Reserve a Para Id on the relay chain."]
                #[doc = ""]
                #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."]
                #[doc = "The origin account is able to register head data and validation code using `register` to"]
                #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"]
                #[doc = "be upgraded to a lease holding parachain."]
                #[doc = ""]
                #[doc = "## Arguments"]
                #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"]
                #[doc = "  para ID."]
                #[doc = ""]
                #[doc = "## Deposits/Fees"]
                #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."]
                #[doc = ""]
                #[doc = "## Events"]
                #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"]
                #[doc = "use."]
                pub fn reserve(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Reserve>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "reserve",
                        types::Reserve {},
                        [
                            50u8, 72u8, 218u8, 145u8, 224u8, 93u8, 219u8, 220u8, 121u8, 35u8,
                            104u8, 11u8, 139u8, 114u8, 171u8, 101u8, 40u8, 13u8, 33u8, 39u8, 245u8,
                            146u8, 138u8, 159u8, 245u8, 236u8, 26u8, 0u8, 20u8, 243u8, 128u8, 81u8,
                        ],
                    )
                }
                #[doc = "Add a manager lock from a para. This will prevent the manager of a"]
                #[doc = "para to deregister or swap a para."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub fn add_lock(
                    &self,
                    para: types::add_lock::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddLock>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "add_lock",
                        types::AddLock { para },
                        [
                            158u8, 27u8, 55u8, 53u8, 71u8, 221u8, 37u8, 73u8, 23u8, 165u8, 129u8,
                            17u8, 167u8, 79u8, 112u8, 35u8, 231u8, 8u8, 241u8, 151u8, 207u8, 235u8,
                            224u8, 104u8, 102u8, 108u8, 10u8, 244u8, 33u8, 67u8, 45u8, 13u8,
                        ],
                    )
                }
                #[doc = "Schedule a parachain upgrade."]
                #[doc = ""]
                #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"]
                #[doc = "validators have reported on the validity of the code, the code will either be enacted"]
                #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"]
                #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"]
                #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"]
                #[doc = "has changed."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub fn schedule_code_upgrade(
                    &self,
                    para: types::schedule_code_upgrade::Para,
                    new_code: types::schedule_code_upgrade::NewCode,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ScheduleCodeUpgrade>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "schedule_code_upgrade",
                        types::ScheduleCodeUpgrade { para, new_code },
                        [
                            234u8, 22u8, 133u8, 175u8, 218u8, 250u8, 119u8, 175u8, 23u8, 250u8,
                            175u8, 48u8, 247u8, 208u8, 235u8, 167u8, 24u8, 248u8, 247u8, 236u8,
                            239u8, 9u8, 78u8, 195u8, 146u8, 172u8, 41u8, 105u8, 183u8, 253u8, 1u8,
                            170u8,
                        ],
                    )
                }
                #[doc = "Set the parachain's current head."]
                #[doc = ""]
                #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"]
                #[doc = "unlocked."]
                pub fn set_current_head(
                    &self,
                    para: types::set_current_head::Para,
                    new_head: types::set_current_head::NewHead,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetCurrentHead>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Registrar",
                        "set_current_head",
                        types::SetCurrentHead { para, new_head },
                        [
                            201u8, 49u8, 104u8, 135u8, 80u8, 233u8, 154u8, 193u8, 143u8, 209u8,
                            10u8, 209u8, 234u8, 252u8, 142u8, 216u8, 220u8, 249u8, 23u8, 252u8,
                            73u8, 169u8, 204u8, 242u8, 59u8, 19u8, 18u8, 35u8, 115u8, 209u8, 79u8,
                            112u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::paras_registrar::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Registered {
                pub para_id: registered::ParaId,
                pub manager: registered::Manager,
            }
            pub mod registered {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Manager = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Registered {
                const PALLET: &'static str = "Registrar";
                const EVENT: &'static str = "Registered";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Deregistered {
                pub para_id: deregistered::ParaId,
            }
            pub mod deregistered {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Deregistered {
                const PALLET: &'static str = "Registrar";
                const EVENT: &'static str = "Deregistered";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Reserved {
                pub para_id: reserved::ParaId,
                pub who: reserved::Who,
            }
            pub mod reserved {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Reserved {
                const PALLET: &'static str = "Registrar";
                const EVENT: &'static str = "Reserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Swapped {
                pub para_id: swapped::ParaId,
                pub other_id: swapped::OtherId,
            }
            pub mod swapped {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type OtherId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Swapped {
                const PALLET: &'static str = "Registrar";
                const EVENT: &'static str = "Swapped";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod pending_swap {
                    use super::runtime_types;
                    pub type PendingSwap =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod paras {
                    use super::runtime_types;
                    pub type Paras =
                        runtime_types::polkadot_runtime_common::paras_registrar::ParaInfo<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            ::core::primitive::u128,
                        >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod next_free_para_id {
                    use super::runtime_types;
                    pub type NextFreeParaId =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Pending swap operations."]
                pub fn pending_swap_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::pending_swap::PendingSwap,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Registrar",
                        "PendingSwap",
                        (),
                        [
                            75u8, 6u8, 68u8, 43u8, 108u8, 147u8, 220u8, 90u8, 190u8, 86u8, 209u8,
                            141u8, 9u8, 254u8, 103u8, 10u8, 94u8, 187u8, 155u8, 249u8, 140u8,
                            167u8, 248u8, 196u8, 67u8, 169u8, 186u8, 192u8, 139u8, 188u8, 48u8,
                            221u8,
                        ],
                    )
                }
                #[doc = " Pending swap operations."]
                pub fn pending_swap(
                    &self,
                    _0: types::pending_swap::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::pending_swap::Param0,
                    >,
                    types::pending_swap::PendingSwap,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Registrar",
                        "PendingSwap",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            75u8, 6u8, 68u8, 43u8, 108u8, 147u8, 220u8, 90u8, 190u8, 86u8, 209u8,
                            141u8, 9u8, 254u8, 103u8, 10u8, 94u8, 187u8, 155u8, 249u8, 140u8,
                            167u8, 248u8, 196u8, 67u8, 169u8, 186u8, 192u8, 139u8, 188u8, 48u8,
                            221u8,
                        ],
                    )
                }
                #[doc = " Amount held on deposit for each para and the original depositor."]
                #[doc = ""]
                #[doc = " The given account ID is responsible for registering the code and initial head data, but may"]
                #[doc = " only do so if it isn't yet registered. (After that, it's up to governance to do so.)"]
                pub fn paras_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::paras::Paras,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Registrar",
                        "Paras",
                        (),
                        [
                            125u8, 62u8, 50u8, 209u8, 40u8, 170u8, 61u8, 62u8, 61u8, 246u8, 103u8,
                            229u8, 213u8, 94u8, 249u8, 49u8, 18u8, 90u8, 138u8, 14u8, 101u8, 133u8,
                            28u8, 167u8, 5u8, 77u8, 113u8, 207u8, 57u8, 142u8, 77u8, 117u8,
                        ],
                    )
                }
                #[doc = " Amount held on deposit for each para and the original depositor."]
                #[doc = ""]
                #[doc = " The given account ID is responsible for registering the code and initial head data, but may"]
                #[doc = " only do so if it isn't yet registered. (After that, it's up to governance to do so.)"]
                pub fn paras(
                    &self,
                    _0: types::paras::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::paras::Param0,
                    >,
                    types::paras::Paras,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Registrar",
                        "Paras",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            125u8, 62u8, 50u8, 209u8, 40u8, 170u8, 61u8, 62u8, 61u8, 246u8, 103u8,
                            229u8, 213u8, 94u8, 249u8, 49u8, 18u8, 90u8, 138u8, 14u8, 101u8, 133u8,
                            28u8, 167u8, 5u8, 77u8, 113u8, 207u8, 57u8, 142u8, 77u8, 117u8,
                        ],
                    )
                }
                #[doc = " The next free `ParaId`."]
                pub fn next_free_para_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_free_para_id::NextFreeParaId,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Registrar",
                        "NextFreeParaId",
                        (),
                        [
                            52u8, 14u8, 56u8, 196u8, 79u8, 221u8, 32u8, 14u8, 154u8, 247u8, 94u8,
                            219u8, 11u8, 11u8, 104u8, 137u8, 167u8, 195u8, 180u8, 101u8, 35u8,
                            235u8, 67u8, 144u8, 128u8, 209u8, 189u8, 227u8, 177u8, 74u8, 42u8,
                            15u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The deposit to be paid to run a on-demand parachain."]
                #[doc = " This should include the cost for storing the genesis head and validation code."]
                pub fn para_deposit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Registrar",
                        "ParaDeposit",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " The deposit to be paid per byte stored on chain."]
                pub fn data_deposit_per_byte(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Registrar",
                        "DataDepositPerByte",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod slots {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::slots::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::slots::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"]
                #[doc = "happen independently of any other on-chain mechanism to use it."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                pub struct ForceLease {
                    pub para: force_lease::Para,
                    pub leaser: force_lease::Leaser,
                    pub amount: force_lease::Amount,
                    pub period_begin: force_lease::PeriodBegin,
                    pub period_count: force_lease::PeriodCount,
                }
                pub mod force_lease {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Leaser = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Amount = ::core::primitive::u128;
                    pub type PeriodBegin = ::core::primitive::u32;
                    pub type PeriodCount = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceLease {
                    const PALLET: &'static str = "Slots";
                    const CALL: &'static str = "force_lease";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                pub struct ClearAllLeases {
                    pub para: clear_all_leases::Para,
                }
                pub mod clear_all_leases {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearAllLeases {
                    const PALLET: &'static str = "Slots";
                    const CALL: &'static str = "clear_all_leases";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Try to onboard a parachain that has a lease for the current lease period."]
                #[doc = ""]
                #[doc = "This function can be useful if there was some state issue with a para that should"]
                #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"]
                #[doc = "let them onboard from here."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can be called by anyone."]
                pub struct TriggerOnboard {
                    pub para: trigger_onboard::Para,
                }
                pub mod trigger_onboard {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TriggerOnboard {
                    const PALLET: &'static str = "Slots";
                    const CALL: &'static str = "trigger_onboard";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"]
                #[doc = "happen independently of any other on-chain mechanism to use it."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                pub fn force_lease(
                    &self,
                    para: types::force_lease::Para,
                    leaser: types::force_lease::Leaser,
                    amount: types::force_lease::Amount,
                    period_begin: types::force_lease::PeriodBegin,
                    period_count: types::force_lease::PeriodCount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceLease>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Slots",
                        "force_lease",
                        types::ForceLease {
                            para,
                            leaser,
                            amount,
                            period_begin,
                            period_count,
                        },
                        [
                            27u8, 203u8, 227u8, 16u8, 65u8, 135u8, 140u8, 244u8, 218u8, 231u8,
                            78u8, 190u8, 169u8, 156u8, 233u8, 31u8, 20u8, 119u8, 158u8, 34u8,
                            130u8, 51u8, 38u8, 176u8, 142u8, 139u8, 152u8, 139u8, 26u8, 184u8,
                            238u8, 227u8,
                        ],
                    )
                }
                #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                pub fn clear_all_leases(
                    &self,
                    para: types::clear_all_leases::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClearAllLeases>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Slots",
                        "clear_all_leases",
                        types::ClearAllLeases { para },
                        [
                            201u8, 71u8, 106u8, 50u8, 65u8, 107u8, 191u8, 41u8, 52u8, 106u8, 51u8,
                            87u8, 19u8, 199u8, 244u8, 93u8, 104u8, 148u8, 116u8, 198u8, 169u8,
                            137u8, 28u8, 78u8, 54u8, 230u8, 161u8, 16u8, 79u8, 248u8, 28u8, 183u8,
                        ],
                    )
                }
                #[doc = "Try to onboard a parachain that has a lease for the current lease period."]
                #[doc = ""]
                #[doc = "This function can be useful if there was some state issue with a para that should"]
                #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"]
                #[doc = "let them onboard from here."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can be called by anyone."]
                pub fn trigger_onboard(
                    &self,
                    para: types::trigger_onboard::Para,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TriggerOnboard>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Slots",
                        "trigger_onboard",
                        types::TriggerOnboard { para },
                        [
                            192u8, 239u8, 65u8, 186u8, 200u8, 27u8, 23u8, 235u8, 2u8, 229u8, 230u8,
                            192u8, 240u8, 51u8, 62u8, 80u8, 253u8, 105u8, 178u8, 134u8, 252u8, 2u8,
                            153u8, 29u8, 235u8, 249u8, 92u8, 246u8, 136u8, 169u8, 109u8, 4u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::slots::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new `[lease_period]` is beginning."]
            pub struct NewLeasePeriod {
                pub lease_period: new_lease_period::LeasePeriod,
            }
            pub mod new_lease_period {
                use super::runtime_types;
                pub type LeasePeriod = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NewLeasePeriod {
                const PALLET: &'static str = "Slots";
                const EVENT: &'static str = "NewLeasePeriod";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A para has won the right to a continuous set of lease periods as a parachain."]
            #[doc = "First balance is any extra amount reserved on top of the para's existing deposit."]
            #[doc = "Second balance is the total amount reserved."]
            pub struct Leased {
                pub para_id: leased::ParaId,
                pub leaser: leased::Leaser,
                pub period_begin: leased::PeriodBegin,
                pub period_count: leased::PeriodCount,
                pub extra_reserved: leased::ExtraReserved,
                pub total_amount: leased::TotalAmount,
            }
            pub mod leased {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Leaser = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type PeriodBegin = ::core::primitive::u32;
                pub type PeriodCount = ::core::primitive::u32;
                pub type ExtraReserved = ::core::primitive::u128;
                pub type TotalAmount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Leased {
                const PALLET: &'static str = "Slots";
                const EVENT: &'static str = "Leased";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod leases {
                    use super::runtime_types;
                    pub type Leases = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::core::option::Option<(
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            ::core::primitive::u128,
                        )>,
                    >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Amounts held on deposit for each (possibly future) leased parachain."]
                #[doc = ""]
                #[doc = " The actual amount locked on its behalf by any account at any time is the maximum of the"]
                #[doc = " second values of the items in this list whose first value is the account."]
                #[doc = ""]
                #[doc = " The first item in the list is the amount locked for the current Lease Period. Following"]
                #[doc = " items are for the subsequent lease periods."]
                #[doc = ""]
                #[doc = " The default value (an empty list) implies that the parachain no longer exists (or never"]
                #[doc = " existed) as far as this pallet is concerned."]
                #[doc = ""]
                #[doc = " If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it"]
                #[doc = " will be left-padded with one or more `None`s to denote the fact that nothing is held on"]
                #[doc = " deposit for the non-existent chain currently, but is held at some point in the future."]
                #[doc = ""]
                #[doc = " It is illegal for a `None` value to trail in the list."]
                pub fn leases_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::leases::Leases,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Slots",
                        "Leases",
                        (),
                        [
                            233u8, 226u8, 181u8, 160u8, 216u8, 86u8, 238u8, 229u8, 31u8, 67u8,
                            200u8, 188u8, 134u8, 22u8, 88u8, 147u8, 204u8, 11u8, 34u8, 244u8,
                            234u8, 77u8, 184u8, 171u8, 147u8, 228u8, 254u8, 11u8, 40u8, 162u8,
                            177u8, 196u8,
                        ],
                    )
                }
                #[doc = " Amounts held on deposit for each (possibly future) leased parachain."]
                #[doc = ""]
                #[doc = " The actual amount locked on its behalf by any account at any time is the maximum of the"]
                #[doc = " second values of the items in this list whose first value is the account."]
                #[doc = ""]
                #[doc = " The first item in the list is the amount locked for the current Lease Period. Following"]
                #[doc = " items are for the subsequent lease periods."]
                #[doc = ""]
                #[doc = " The default value (an empty list) implies that the parachain no longer exists (or never"]
                #[doc = " existed) as far as this pallet is concerned."]
                #[doc = ""]
                #[doc = " If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it"]
                #[doc = " will be left-padded with one or more `None`s to denote the fact that nothing is held on"]
                #[doc = " deposit for the non-existent chain currently, but is held at some point in the future."]
                #[doc = ""]
                #[doc = " It is illegal for a `None` value to trail in the list."]
                pub fn leases(
                    &self,
                    _0: types::leases::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::leases::Param0,
                    >,
                    types::leases::Leases,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Slots",
                        "Leases",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            233u8, 226u8, 181u8, 160u8, 216u8, 86u8, 238u8, 229u8, 31u8, 67u8,
                            200u8, 188u8, 134u8, 22u8, 88u8, 147u8, 204u8, 11u8, 34u8, 244u8,
                            234u8, 77u8, 184u8, 171u8, 147u8, 228u8, 254u8, 11u8, 40u8, 162u8,
                            177u8, 196u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The number of blocks over which a single period lasts."]
                pub fn lease_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Slots",
                        "LeasePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of blocks to offset each lease period by."]
                pub fn lease_offset(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Slots",
                        "LeaseOffset",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod auctions {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::auctions::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::auctions::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a new auction."]
                #[doc = ""]
                #[doc = "This can only happen when there isn't already an auction in progress and may only be"]
                #[doc = "called by the root origin. Accepts the `duration` of this auction and the"]
                #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."]
                pub struct NewAuction {
                    #[codec(compact)]
                    pub duration: new_auction::Duration,
                    #[codec(compact)]
                    pub lease_period_index: new_auction::LeasePeriodIndex,
                }
                pub mod new_auction {
                    use super::runtime_types;
                    pub type Duration = ::core::primitive::u32;
                    pub type LeasePeriodIndex = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for NewAuction {
                    const PALLET: &'static str = "Auctions";
                    const CALL: &'static str = "new_auction";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"]
                #[doc = "parachain."]
                #[doc = ""]
                #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"]
                #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."]
                #[doc = ""]
                #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"]
                #[doc = "funded by) the same account."]
                #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"]
                #[doc = "value of `AuctionCounter`."]
                #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"]
                #[doc = "absolute lease period index value, not an auction-specific offset."]
                #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"]
                #[doc = "absolute lease period index value, not an auction-specific offset."]
                #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"]
                #[doc = "bid win. This amount is held throughout the range."]
                pub struct Bid {
                    #[codec(compact)]
                    pub para: bid::Para,
                    #[codec(compact)]
                    pub auction_index: bid::AuctionIndex,
                    #[codec(compact)]
                    pub first_slot: bid::FirstSlot,
                    #[codec(compact)]
                    pub last_slot: bid::LastSlot,
                    #[codec(compact)]
                    pub amount: bid::Amount,
                }
                pub mod bid {
                    use super::runtime_types;
                    pub type Para = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type AuctionIndex = ::core::primitive::u32;
                    pub type FirstSlot = ::core::primitive::u32;
                    pub type LastSlot = ::core::primitive::u32;
                    pub type Amount = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Bid {
                    const PALLET: &'static str = "Auctions";
                    const CALL: &'static str = "bid";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Cancel an in-progress auction."]
                #[doc = ""]
                #[doc = "Can only be called by Root origin."]
                pub struct CancelAuction;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelAuction {
                    const PALLET: &'static str = "Auctions";
                    const CALL: &'static str = "cancel_auction";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Create a new auction."]
                #[doc = ""]
                #[doc = "This can only happen when there isn't already an auction in progress and may only be"]
                #[doc = "called by the root origin. Accepts the `duration` of this auction and the"]
                #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."]
                pub fn new_auction(
                    &self,
                    duration: types::new_auction::Duration,
                    lease_period_index: types::new_auction::LeasePeriodIndex,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::NewAuction>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Auctions",
                        "new_auction",
                        types::NewAuction {
                            duration,
                            lease_period_index,
                        },
                        [
                            116u8, 2u8, 215u8, 191u8, 69u8, 99u8, 218u8, 198u8, 71u8, 228u8, 88u8,
                            144u8, 139u8, 206u8, 214u8, 58u8, 106u8, 117u8, 138u8, 115u8, 109u8,
                            253u8, 210u8, 135u8, 189u8, 190u8, 86u8, 189u8, 8u8, 168u8, 142u8,
                            181u8,
                        ],
                    )
                }
                #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"]
                #[doc = "parachain."]
                #[doc = ""]
                #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"]
                #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."]
                #[doc = ""]
                #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"]
                #[doc = "funded by) the same account."]
                #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"]
                #[doc = "value of `AuctionCounter`."]
                #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"]
                #[doc = "absolute lease period index value, not an auction-specific offset."]
                #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"]
                #[doc = "absolute lease period index value, not an auction-specific offset."]
                #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"]
                #[doc = "bid win. This amount is held throughout the range."]
                pub fn bid(
                    &self,
                    para: types::bid::Para,
                    auction_index: types::bid::AuctionIndex,
                    first_slot: types::bid::FirstSlot,
                    last_slot: types::bid::LastSlot,
                    amount: types::bid::Amount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Bid>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Auctions",
                        "bid",
                        types::Bid {
                            para,
                            auction_index,
                            first_slot,
                            last_slot,
                            amount,
                        },
                        [
                            203u8, 71u8, 160u8, 55u8, 95u8, 152u8, 111u8, 30u8, 86u8, 113u8, 213u8,
                            217u8, 140u8, 9u8, 138u8, 150u8, 90u8, 229u8, 17u8, 95u8, 141u8, 150u8,
                            183u8, 171u8, 45u8, 110u8, 47u8, 91u8, 159u8, 91u8, 214u8, 132u8,
                        ],
                    )
                }
                #[doc = "Cancel an in-progress auction."]
                #[doc = ""]
                #[doc = "Can only be called by Root origin."]
                pub fn cancel_auction(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CancelAuction>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Auctions",
                        "cancel_auction",
                        types::CancelAuction {},
                        [
                            122u8, 231u8, 136u8, 184u8, 194u8, 4u8, 244u8, 62u8, 253u8, 134u8, 9u8,
                            240u8, 75u8, 227u8, 74u8, 195u8, 113u8, 247u8, 127u8, 17u8, 90u8,
                            228u8, 251u8, 88u8, 4u8, 29u8, 254u8, 71u8, 177u8, 103u8, 66u8, 224u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::auctions::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An auction started. Provides its index and the block number where it will begin to"]
            #[doc = "close and the first lease period of the quadruplet that is auctioned."]
            pub struct AuctionStarted {
                pub auction_index: auction_started::AuctionIndex,
                pub lease_period: auction_started::LeasePeriod,
                pub ending: auction_started::Ending,
            }
            pub mod auction_started {
                use super::runtime_types;
                pub type AuctionIndex = ::core::primitive::u32;
                pub type LeasePeriod = ::core::primitive::u32;
                pub type Ending = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AuctionStarted {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "AuctionStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An auction ended. All funds become unreserved."]
            pub struct AuctionClosed {
                pub auction_index: auction_closed::AuctionIndex,
            }
            pub mod auction_closed {
                use super::runtime_types;
                pub type AuctionIndex = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AuctionClosed {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "AuctionClosed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Funds were reserved for a winning bid. First balance is the extra amount reserved."]
            #[doc = "Second is the total."]
            pub struct Reserved {
                pub bidder: reserved::Bidder,
                pub extra_reserved: reserved::ExtraReserved,
                pub total_amount: reserved::TotalAmount,
            }
            pub mod reserved {
                use super::runtime_types;
                pub type Bidder = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ExtraReserved = ::core::primitive::u128;
                pub type TotalAmount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Reserved {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "Reserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Funds were unreserved since bidder is no longer active. `[bidder, amount]`"]
            pub struct Unreserved {
                pub bidder: unreserved::Bidder,
                pub amount: unreserved::Amount,
            }
            pub mod unreserved {
                use super::runtime_types;
                pub type Bidder = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Unreserved {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "Unreserved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Someone attempted to lease the same slot twice for a parachain. The amount is held in"]
            #[doc = "reserve but no parachain slot has been leased."]
            pub struct ReserveConfiscated {
                pub para_id: reserve_confiscated::ParaId,
                pub leaser: reserve_confiscated::Leaser,
                pub amount: reserve_confiscated::Amount,
            }
            pub mod reserve_confiscated {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Leaser = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ReserveConfiscated {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "ReserveConfiscated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A new bid has been accepted as the current winner."]
            pub struct BidAccepted {
                pub bidder: bid_accepted::Bidder,
                pub para_id: bid_accepted::ParaId,
                pub amount: bid_accepted::Amount,
                pub first_slot: bid_accepted::FirstSlot,
                pub last_slot: bid_accepted::LastSlot,
            }
            pub mod bid_accepted {
                use super::runtime_types;
                pub type Bidder = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Amount = ::core::primitive::u128;
                pub type FirstSlot = ::core::primitive::u32;
                pub type LastSlot = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for BidAccepted {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "BidAccepted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The winning offset was chosen for an auction. This will map into the `Winning` storage"]
            #[doc = "map."]
            pub struct WinningOffset {
                pub auction_index: winning_offset::AuctionIndex,
                pub block_number: winning_offset::BlockNumber,
            }
            pub mod winning_offset {
                use super::runtime_types;
                pub type AuctionIndex = ::core::primitive::u32;
                pub type BlockNumber = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for WinningOffset {
                const PALLET: &'static str = "Auctions";
                const EVENT: &'static str = "WinningOffset";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod auction_counter {
                    use super::runtime_types;
                    pub type AuctionCounter = ::core::primitive::u32;
                }
                pub mod auction_info {
                    use super::runtime_types;
                    pub type AuctionInfo = (::core::primitive::u32, ::core::primitive::u32);
                }
                pub mod reserved_amounts {
                    use super::runtime_types;
                    pub type ReservedAmounts = ::core::primitive::u128;
                    pub type Param0 = (
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    );
                }
                pub mod winning {
                    use super::runtime_types;
                    pub type Winning = [::core::option::Option<(
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::core::primitive::u128,
                    )>; 36usize];
                    pub type Param0 = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Number of auctions started so far."]
                pub fn auction_counter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::auction_counter::AuctionCounter,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "AuctionCounter",
                        (),
                        [
                            110u8, 243u8, 85u8, 4u8, 127u8, 111u8, 101u8, 167u8, 72u8, 129u8,
                            201u8, 250u8, 88u8, 9u8, 79u8, 14u8, 152u8, 132u8, 0u8, 204u8, 112u8,
                            248u8, 91u8, 254u8, 30u8, 22u8, 62u8, 180u8, 188u8, 204u8, 29u8, 103u8,
                        ],
                    )
                }
                #[doc = " Information relating to the current auction, if there is one."]
                #[doc = ""]
                #[doc = " The first item in the tuple is the lease period index that the first of the four"]
                #[doc = " contiguous lease periods on auction is for. The second is the block number when the"]
                #[doc = " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction."]
                pub fn auction_info(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::auction_info::AuctionInfo,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "AuctionInfo",
                        (),
                        [
                            116u8, 81u8, 223u8, 26u8, 151u8, 103u8, 209u8, 182u8, 169u8, 173u8,
                            220u8, 234u8, 88u8, 191u8, 255u8, 75u8, 148u8, 75u8, 167u8, 37u8, 6u8,
                            14u8, 224u8, 193u8, 92u8, 82u8, 205u8, 172u8, 209u8, 83u8, 3u8, 77u8,
                        ],
                    )
                }
                #[doc = " Amounts currently reserved in the accounts of the bidders currently winning"]
                #[doc = " (sub-)ranges."]
                pub fn reserved_amounts_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::reserved_amounts::ReservedAmounts,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "ReservedAmounts",
                        (),
                        [
                            77u8, 44u8, 116u8, 36u8, 189u8, 213u8, 126u8, 32u8, 42u8, 131u8, 108u8,
                            41u8, 147u8, 40u8, 247u8, 245u8, 161u8, 42u8, 152u8, 195u8, 28u8,
                            142u8, 231u8, 209u8, 113u8, 11u8, 240u8, 37u8, 112u8, 38u8, 239u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " Amounts currently reserved in the accounts of the bidders currently winning"]
                #[doc = " (sub-)ranges."]
                pub fn reserved_amounts(
                    &self,
                    _0: types::reserved_amounts::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::reserved_amounts::Param0,
                    >,
                    types::reserved_amounts::ReservedAmounts,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "ReservedAmounts",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            77u8, 44u8, 116u8, 36u8, 189u8, 213u8, 126u8, 32u8, 42u8, 131u8, 108u8,
                            41u8, 147u8, 40u8, 247u8, 245u8, 161u8, 42u8, 152u8, 195u8, 28u8,
                            142u8, 231u8, 209u8, 113u8, 11u8, 240u8, 37u8, 112u8, 38u8, 239u8,
                            245u8,
                        ],
                    )
                }
                #[doc = " The winning bids for each of the 10 ranges at each sample in the final Ending Period of"]
                #[doc = " the current auction. The map's key is the 0-based index into the Sample Size. The"]
                #[doc = " first sample of the ending period is 0; the last is `Sample Size - 1`."]
                pub fn winning_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::winning::Winning,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "Winning",
                        (),
                        [
                            8u8, 136u8, 174u8, 152u8, 223u8, 1u8, 143u8, 45u8, 213u8, 5u8, 239u8,
                            163u8, 152u8, 99u8, 197u8, 109u8, 194u8, 140u8, 246u8, 10u8, 40u8,
                            22u8, 0u8, 122u8, 20u8, 132u8, 141u8, 157u8, 56u8, 211u8, 5u8, 104u8,
                        ],
                    )
                }
                #[doc = " The winning bids for each of the 10 ranges at each sample in the final Ending Period of"]
                #[doc = " the current auction. The map's key is the 0-based index into the Sample Size. The"]
                #[doc = " first sample of the ending period is 0; the last is `Sample Size - 1`."]
                pub fn winning(
                    &self,
                    _0: types::winning::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::winning::Param0,
                    >,
                    types::winning::Winning,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Auctions",
                        "Winning",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            8u8, 136u8, 174u8, 152u8, 223u8, 1u8, 143u8, 45u8, 213u8, 5u8, 239u8,
                            163u8, 152u8, 99u8, 197u8, 109u8, 194u8, 140u8, 246u8, 10u8, 40u8,
                            22u8, 0u8, 122u8, 20u8, 132u8, 141u8, 157u8, 56u8, 211u8, 5u8, 104u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The number of blocks over which an auction may be retroactively ended."]
                pub fn ending_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Auctions",
                        "EndingPeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The length of each sample to take during the ending period."]
                #[doc = ""]
                #[doc = " `EndingPeriod` / `SampleLength` = Total # of Samples"]
                pub fn sample_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Auctions",
                        "SampleLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                pub fn slot_range_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Auctions",
                        "SlotRangeCount",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                pub fn lease_periods_per_slot(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Auctions",
                        "LeasePeriodsPerSlot",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod crowdloan {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::crowdloan::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::crowdloan::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"]
                #[doc = "range."]
                #[doc = ""]
                #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"]
                #[doc = "by the parachain manager."]
                pub struct Create {
                    #[codec(compact)]
                    pub index: create::Index,
                    #[codec(compact)]
                    pub cap: create::Cap,
                    #[codec(compact)]
                    pub first_period: create::FirstPeriod,
                    #[codec(compact)]
                    pub last_period: create::LastPeriod,
                    #[codec(compact)]
                    pub end: create::End,
                    pub verifier: create::Verifier,
                }
                pub mod create {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Cap = ::core::primitive::u128;
                    pub type FirstPeriod = ::core::primitive::u32;
                    pub type LastPeriod = ::core::primitive::u32;
                    pub type End = ::core::primitive::u32;
                    pub type Verifier =
                        ::core::option::Option<runtime_types::sp_runtime::MultiSigner>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Create {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "create";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"]
                #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."]
                pub struct Contribute {
                    #[codec(compact)]
                    pub index: contribute::Index,
                    #[codec(compact)]
                    pub value: contribute::Value,
                    pub signature: contribute::Signature,
                }
                pub mod contribute {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Value = ::core::primitive::u128;
                    pub type Signature =
                        ::core::option::Option<runtime_types::sp_runtime::MultiSignature>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Contribute {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "contribute";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Withdraw full balance of a specific contributor."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can come from anyone."]
                #[doc = ""]
                #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"]
                #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"]
                #[doc = "- it must not already be in retirement;"]
                #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"]
                #[doc = "- and either:"]
                #[doc = "  - the block number must be at least `end`; or"]
                #[doc = "  - the current lease period must be greater than the fund's `last_period`."]
                #[doc = ""]
                #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"]
                #[doc = "block number."]
                #[doc = ""]
                #[doc = "- `who`: The account whose contribution should be withdrawn."]
                #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."]
                pub struct Withdraw {
                    pub who: withdraw::Who,
                    #[codec(compact)]
                    pub index: withdraw::Index,
                }
                pub mod withdraw {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Withdraw {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "withdraw";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Automatically refund contributors of an ended crowdloan."]
                #[doc = "Due to weight restrictions, this function may need to be called multiple"]
                #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can come from anyone."]
                pub struct Refund {
                    #[codec(compact)]
                    pub index: refund::Index,
                }
                pub mod refund {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Refund {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "refund";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."]
                pub struct Dissolve {
                    #[codec(compact)]
                    pub index: dissolve::Index,
                }
                pub mod dissolve {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Dissolve {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "dissolve";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Edit the configuration for an in-progress crowdloan."]
                #[doc = ""]
                #[doc = "Can only be called by Root origin."]
                pub struct Edit {
                    #[codec(compact)]
                    pub index: edit::Index,
                    #[codec(compact)]
                    pub cap: edit::Cap,
                    #[codec(compact)]
                    pub first_period: edit::FirstPeriod,
                    #[codec(compact)]
                    pub last_period: edit::LastPeriod,
                    #[codec(compact)]
                    pub end: edit::End,
                    pub verifier: edit::Verifier,
                }
                pub mod edit {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Cap = ::core::primitive::u128;
                    pub type FirstPeriod = ::core::primitive::u32;
                    pub type LastPeriod = ::core::primitive::u32;
                    pub type End = ::core::primitive::u32;
                    pub type Verifier =
                        ::core::option::Option<runtime_types::sp_runtime::MultiSigner>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Edit {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "edit";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add an optional memo to an existing crowdloan contribution."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."]
                pub struct AddMemo {
                    pub index: add_memo::Index,
                    pub memo: add_memo::Memo,
                }
                pub mod add_memo {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Memo =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddMemo {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "add_memo";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Poke the fund into `NewRaise`"]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the fund has non-zero raise."]
                pub struct Poke {
                    pub index: poke::Index,
                }
                pub mod poke {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Poke {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "poke";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"]
                #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"]
                #[doc = "ended and the funds are unused."]
                pub struct ContributeAll {
                    #[codec(compact)]
                    pub index: contribute_all::Index,
                    pub signature: contribute_all::Signature,
                }
                pub mod contribute_all {
                    use super::runtime_types;
                    pub type Index = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Signature =
                        ::core::option::Option<runtime_types::sp_runtime::MultiSignature>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ContributeAll {
                    const PALLET: &'static str = "Crowdloan";
                    const CALL: &'static str = "contribute_all";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"]
                #[doc = "range."]
                #[doc = ""]
                #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"]
                #[doc = "by the parachain manager."]
                pub fn create(
                    &self,
                    index: types::create::Index,
                    cap: types::create::Cap,
                    first_period: types::create::FirstPeriod,
                    last_period: types::create::LastPeriod,
                    end: types::create::End,
                    verifier: types::create::Verifier,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Create>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "create",
                        types::Create {
                            index,
                            cap,
                            first_period,
                            last_period,
                            end,
                            verifier,
                        },
                        [
                            93u8, 62u8, 50u8, 153u8, 231u8, 103u8, 233u8, 109u8, 182u8, 182u8,
                            174u8, 247u8, 176u8, 234u8, 224u8, 108u8, 143u8, 213u8, 99u8, 60u8,
                            91u8, 209u8, 120u8, 83u8, 54u8, 16u8, 169u8, 156u8, 49u8, 232u8, 228u8,
                            89u8,
                        ],
                    )
                }
                #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"]
                #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."]
                pub fn contribute(
                    &self,
                    index: types::contribute::Index,
                    value: types::contribute::Value,
                    signature: types::contribute::Signature,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Contribute>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "contribute",
                        types::Contribute {
                            index,
                            value,
                            signature,
                        },
                        [
                            235u8, 111u8, 40u8, 4u8, 141u8, 19u8, 229u8, 202u8, 158u8, 30u8, 112u8,
                            53u8, 113u8, 65u8, 162u8, 226u8, 116u8, 221u8, 118u8, 54u8, 204u8,
                            50u8, 23u8, 246u8, 20u8, 245u8, 187u8, 150u8, 142u8, 184u8, 96u8, 84u8,
                        ],
                    )
                }
                #[doc = "Withdraw full balance of a specific contributor."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can come from anyone."]
                #[doc = ""]
                #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"]
                #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"]
                #[doc = "- it must not already be in retirement;"]
                #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"]
                #[doc = "- and either:"]
                #[doc = "  - the block number must be at least `end`; or"]
                #[doc = "  - the current lease period must be greater than the fund's `last_period`."]
                #[doc = ""]
                #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"]
                #[doc = "block number."]
                #[doc = ""]
                #[doc = "- `who`: The account whose contribution should be withdrawn."]
                #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."]
                pub fn withdraw(
                    &self,
                    who: types::withdraw::Who,
                    index: types::withdraw::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Withdraw>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "withdraw",
                        types::Withdraw { who, index },
                        [
                            148u8, 23u8, 138u8, 161u8, 248u8, 235u8, 138u8, 156u8, 209u8, 236u8,
                            235u8, 81u8, 207u8, 212u8, 232u8, 126u8, 221u8, 46u8, 34u8, 39u8, 44u8,
                            42u8, 75u8, 134u8, 12u8, 247u8, 84u8, 203u8, 48u8, 133u8, 72u8, 254u8,
                        ],
                    )
                }
                #[doc = "Automatically refund contributors of an ended crowdloan."]
                #[doc = "Due to weight restrictions, this function may need to be called multiple"]
                #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."]
                #[doc = ""]
                #[doc = "Origin must be signed, but can come from anyone."]
                pub fn refund(
                    &self,
                    index: types::refund::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Refund>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "refund",
                        types::Refund { index },
                        [
                            245u8, 75u8, 215u8, 28u8, 141u8, 138u8, 201u8, 125u8, 21u8, 214u8,
                            57u8, 23u8, 33u8, 41u8, 57u8, 227u8, 119u8, 212u8, 234u8, 227u8, 230u8,
                            144u8, 249u8, 100u8, 198u8, 125u8, 106u8, 253u8, 93u8, 177u8, 247u8,
                            5u8,
                        ],
                    )
                }
                #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."]
                pub fn dissolve(
                    &self,
                    index: types::dissolve::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Dissolve>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "dissolve",
                        types::Dissolve { index },
                        [
                            60u8, 225u8, 93u8, 234u8, 160u8, 90u8, 185u8, 188u8, 163u8, 72u8,
                            241u8, 46u8, 62u8, 176u8, 236u8, 175u8, 147u8, 95u8, 45u8, 235u8,
                            253u8, 76u8, 127u8, 190u8, 149u8, 54u8, 108u8, 78u8, 149u8, 161u8,
                            39u8, 14u8,
                        ],
                    )
                }
                #[doc = "Edit the configuration for an in-progress crowdloan."]
                #[doc = ""]
                #[doc = "Can only be called by Root origin."]
                pub fn edit(
                    &self,
                    index: types::edit::Index,
                    cap: types::edit::Cap,
                    first_period: types::edit::FirstPeriod,
                    last_period: types::edit::LastPeriod,
                    end: types::edit::End,
                    verifier: types::edit::Verifier,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Edit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "edit",
                        types::Edit {
                            index,
                            cap,
                            first_period,
                            last_period,
                            end,
                            verifier,
                        },
                        [
                            185u8, 194u8, 173u8, 141u8, 104u8, 157u8, 104u8, 216u8, 223u8, 189u8,
                            184u8, 104u8, 71u8, 177u8, 70u8, 129u8, 207u8, 167u8, 80u8, 247u8,
                            149u8, 151u8, 211u8, 119u8, 224u8, 214u8, 214u8, 15u8, 88u8, 116u8,
                            191u8, 234u8,
                        ],
                    )
                }
                #[doc = "Add an optional memo to an existing crowdloan contribution."]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."]
                pub fn add_memo(
                    &self,
                    index: types::add_memo::Index,
                    memo: types::add_memo::Memo,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddMemo>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "add_memo",
                        types::AddMemo { index, memo },
                        [
                            190u8, 99u8, 225u8, 54u8, 136u8, 238u8, 210u8, 44u8, 103u8, 198u8,
                            225u8, 254u8, 245u8, 12u8, 238u8, 112u8, 143u8, 169u8, 8u8, 193u8,
                            29u8, 0u8, 159u8, 25u8, 112u8, 237u8, 194u8, 17u8, 111u8, 192u8, 219u8,
                            50u8,
                        ],
                    )
                }
                #[doc = "Poke the fund into `NewRaise`"]
                #[doc = ""]
                #[doc = "Origin must be Signed, and the fund has non-zero raise."]
                pub fn poke(
                    &self,
                    index: types::poke::Index,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Poke>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "poke",
                        types::Poke { index },
                        [
                            180u8, 81u8, 211u8, 12u8, 54u8, 204u8, 105u8, 118u8, 139u8, 209u8,
                            182u8, 227u8, 174u8, 192u8, 64u8, 200u8, 212u8, 101u8, 3u8, 252u8,
                            195u8, 110u8, 182u8, 121u8, 218u8, 193u8, 87u8, 38u8, 212u8, 151u8,
                            213u8, 56u8,
                        ],
                    )
                }
                #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"]
                #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"]
                #[doc = "ended and the funds are unused."]
                pub fn contribute_all(
                    &self,
                    index: types::contribute_all::Index,
                    signature: types::contribute_all::Signature,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ContributeAll>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Crowdloan",
                        "contribute_all",
                        types::ContributeAll { index, signature },
                        [
                            167u8, 206u8, 26u8, 124u8, 97u8, 175u8, 170u8, 30u8, 34u8, 29u8, 1u8,
                            189u8, 8u8, 168u8, 108u8, 7u8, 154u8, 248u8, 96u8, 158u8, 15u8, 160u8,
                            222u8, 205u8, 143u8, 18u8, 128u8, 215u8, 29u8, 109u8, 158u8, 11u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::crowdloan::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Create a new crowdloaning campaign."]
            pub struct Created {
                pub para_id: created::ParaId,
            }
            pub mod created {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Created {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "Created";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Contributed to a crowd sale."]
            pub struct Contributed {
                pub who: contributed::Who,
                pub fund_index: contributed::FundIndex,
                pub amount: contributed::Amount,
            }
            pub mod contributed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type FundIndex = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Contributed {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "Contributed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Withdrew full balance of a contributor."]
            pub struct Withdrew {
                pub who: withdrew::Who,
                pub fund_index: withdrew::FundIndex,
                pub amount: withdrew::Amount,
            }
            pub mod withdrew {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type FundIndex = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Withdrew {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "Withdrew";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The loans in a fund have been partially dissolved, i.e. there are some left"]
            #[doc = "over child keys that still need to be killed."]
            pub struct PartiallyRefunded {
                pub para_id: partially_refunded::ParaId,
            }
            pub mod partially_refunded {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PartiallyRefunded {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "PartiallyRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "All loans in a fund have been refunded."]
            pub struct AllRefunded {
                pub para_id: all_refunded::ParaId,
            }
            pub mod all_refunded {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AllRefunded {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "AllRefunded";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Fund is dissolved."]
            pub struct Dissolved {
                pub para_id: dissolved::ParaId,
            }
            pub mod dissolved {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Dissolved {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "Dissolved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The result of trying to submit a new bid to the Slots pallet."]
            pub struct HandleBidResult {
                pub para_id: handle_bid_result::ParaId,
                pub result: handle_bid_result::Result,
            }
            pub mod handle_bid_result {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Result =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for HandleBidResult {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "HandleBidResult";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The configuration to a crowdloan has been edited."]
            pub struct Edited {
                pub para_id: edited::ParaId,
            }
            pub mod edited {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Edited {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "Edited";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A memo has been updated."]
            pub struct MemoUpdated {
                pub who: memo_updated::Who,
                pub para_id: memo_updated::ParaId,
                pub memo: memo_updated::Memo,
            }
            pub mod memo_updated {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
                pub type Memo = ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MemoUpdated {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "MemoUpdated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A parachain has been moved to `NewRaise`"]
            pub struct AddedToNewRaise {
                pub para_id: added_to_new_raise::ParaId,
            }
            pub mod added_to_new_raise {
                use super::runtime_types;
                pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AddedToNewRaise {
                const PALLET: &'static str = "Crowdloan";
                const EVENT: &'static str = "AddedToNewRaise";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod funds {
                    use super::runtime_types;
                    pub type Funds = runtime_types::polkadot_runtime_common::crowdloan::FundInfo<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::core::primitive::u128,
                        ::core::primitive::u32,
                        ::core::primitive::u32,
                    >;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod new_raise {
                    use super::runtime_types;
                    pub type NewRaise = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                    >;
                }
                pub mod endings_count {
                    use super::runtime_types;
                    pub type EndingsCount = ::core::primitive::u32;
                }
                pub mod next_fund_index {
                    use super::runtime_types;
                    pub type NextFundIndex = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Info on all of the funds."]
                pub fn funds_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::funds::Funds,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Crowdloan",
                        "Funds",
                        (),
                        [
                            201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8,
                            197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8,
                            187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8,
                            198u8,
                        ],
                    )
                }
                #[doc = " Info on all of the funds."]
                pub fn funds(
                    &self,
                    _0: types::funds::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::funds::Param0,
                    >,
                    types::funds::Funds,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Crowdloan",
                        "Funds",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8,
                            197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8,
                            187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8,
                            198u8,
                        ],
                    )
                }
                #[doc = " The funds that have had additional contributions during the last block. This is used"]
                #[doc = " in order to determine which funds should submit new or updated bids."]
                pub fn new_raise(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::new_raise::NewRaise,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Crowdloan",
                        "NewRaise",
                        (),
                        [
                            251u8, 31u8, 237u8, 22u8, 90u8, 248u8, 39u8, 66u8, 93u8, 81u8, 209u8,
                            209u8, 194u8, 42u8, 109u8, 208u8, 56u8, 75u8, 45u8, 247u8, 253u8,
                            165u8, 22u8, 184u8, 49u8, 49u8, 62u8, 126u8, 254u8, 146u8, 190u8,
                            174u8,
                        ],
                    )
                }
                #[doc = " The number of auctions that have entered into their ending period so far."]
                pub fn endings_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::endings_count::EndingsCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Crowdloan",
                        "EndingsCount",
                        (),
                        [
                            106u8, 22u8, 229u8, 157u8, 118u8, 195u8, 11u8, 42u8, 5u8, 50u8, 44u8,
                            183u8, 72u8, 167u8, 95u8, 243u8, 234u8, 5u8, 200u8, 253u8, 127u8,
                            154u8, 23u8, 55u8, 202u8, 221u8, 82u8, 19u8, 201u8, 154u8, 248u8, 29u8,
                        ],
                    )
                }
                #[doc = " Tracker for the next available fund index"]
                pub fn next_fund_index(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_fund_index::NextFundIndex,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Crowdloan",
                        "NextFundIndex",
                        (),
                        [
                            192u8, 21u8, 229u8, 234u8, 152u8, 224u8, 149u8, 44u8, 41u8, 9u8, 191u8,
                            128u8, 118u8, 11u8, 117u8, 245u8, 170u8, 116u8, 77u8, 216u8, 175u8,
                            115u8, 13u8, 85u8, 240u8, 170u8, 156u8, 201u8, 25u8, 96u8, 103u8,
                            207u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " `PalletId` for the crowdloan pallet. An appropriate value could be"]
                #[doc = " `PalletId(*b\"py/cfund\")`"]
                pub fn pallet_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::frame_support::PalletId,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Crowdloan",
                        "PalletId",
                        [
                            56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8,
                            161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8,
                            129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8,
                        ],
                    )
                }
                #[doc = " The minimum amount that may be contributed into a crowdloan. Should almost certainly be"]
                #[doc = " at least `ExistentialDeposit`."]
                pub fn min_contribution(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u128,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Crowdloan",
                        "MinContribution",
                        [
                            84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8,
                            27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8,
                            136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8,
                        ],
                    )
                }
                #[doc = " Max number of storage keys to remove per extrinsic call."]
                pub fn remove_keys_limit(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Crowdloan",
                        "RemoveKeysLimit",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod coretime {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_parachains::coretime::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_parachains::coretime::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Request the configuration to be updated with the specified number of cores. Warning:"]
                #[doc = "Since this only schedules a configuration update, it takes two sessions to come into"]
                #[doc = "effect."]
                #[doc = ""]
                #[doc = "- `origin`: Root or the Coretime Chain"]
                #[doc = "- `count`: total number of cores"]
                pub struct RequestCoreCount {
                    pub count: request_core_count::Count,
                }
                pub mod request_core_count {
                    use super::runtime_types;
                    pub type Count = ::core::primitive::u16;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestCoreCount {
                    const PALLET: &'static str = "Coretime";
                    const CALL: &'static str = "request_core_count";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"]
                #[doc = "last claimed until and up to the block specified. The claimed amount value is sent back"]
                #[doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"]
                #[doc = "teleported to the Coretime chain."]
                pub struct RequestRevenueAt {
                    pub when: request_revenue_at::When,
                }
                pub mod request_revenue_at {
                    use super::runtime_types;
                    pub type When = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestRevenueAt {
                    const PALLET: &'static str = "Coretime";
                    const CALL: &'static str = "request_revenue_at";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CreditAccount {
                    pub who: credit_account::Who,
                    pub amount: credit_account::Amount,
                }
                pub mod credit_account {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Amount = ::core::primitive::u128;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CreditAccount {
                    const PALLET: &'static str = "Coretime";
                    const CALL: &'static str = "credit_account";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"]
                #[doc = "to be used."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."]
                #[doc = "-`core`: The core that should be scheduled."]
                #[doc = "-`begin`: The starting blockheight of the instruction."]
                #[doc = "-`assignment`: How the blockspace should be utilised."]
                #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."]
                pub struct AssignCore {
                    pub core: assign_core::Core,
                    pub begin: assign_core::Begin,
                    pub assignment: assign_core::Assignment,
                    pub end_hint: assign_core::EndHint,
                }
                pub mod assign_core {
                    use super::runtime_types;
                    pub type Core = ::core::primitive::u16;
                    pub type Begin = ::core::primitive::u32;
                    pub type Assignment = ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::pallet_broker::coretime_interface::CoreAssignment,
                        runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600,
                    )>;
                    pub type EndHint = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AssignCore {
                    const PALLET: &'static str = "Coretime";
                    const CALL: &'static str = "assign_core";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Request the configuration to be updated with the specified number of cores. Warning:"]
                #[doc = "Since this only schedules a configuration update, it takes two sessions to come into"]
                #[doc = "effect."]
                #[doc = ""]
                #[doc = "- `origin`: Root or the Coretime Chain"]
                #[doc = "- `count`: total number of cores"]
                pub fn request_core_count(
                    &self,
                    count: types::request_core_count::Count,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RequestCoreCount>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Coretime",
                        "request_core_count",
                        types::RequestCoreCount { count },
                        [
                            8u8, 225u8, 74u8, 162u8, 188u8, 3u8, 191u8, 45u8, 167u8, 21u8, 227u8,
                            200u8, 65u8, 221u8, 49u8, 212u8, 12u8, 229u8, 160u8, 178u8, 136u8,
                            13u8, 131u8, 42u8, 220u8, 3u8, 151u8, 241u8, 210u8, 158u8, 218u8,
                            217u8,
                        ],
                    )
                }
                #[doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"]
                #[doc = "last claimed until and up to the block specified. The claimed amount value is sent back"]
                #[doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"]
                #[doc = "teleported to the Coretime chain."]
                pub fn request_revenue_at(
                    &self,
                    when: types::request_revenue_at::When,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RequestRevenueAt>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Coretime",
                        "request_revenue_at",
                        types::RequestRevenueAt { when },
                        [
                            177u8, 11u8, 232u8, 159u8, 238u8, 12u8, 176u8, 8u8, 83u8, 20u8, 36u8,
                            223u8, 1u8, 202u8, 138u8, 236u8, 120u8, 161u8, 17u8, 161u8, 112u8,
                            108u8, 79u8, 35u8, 141u8, 123u8, 166u8, 107u8, 220u8, 139u8, 167u8,
                            67u8,
                        ],
                    )
                }
                pub fn credit_account(
                    &self,
                    who: types::credit_account::Who,
                    amount: types::credit_account::Amount,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::CreditAccount>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Coretime",
                        "credit_account",
                        types::CreditAccount { who, amount },
                        [
                            218u8, 143u8, 215u8, 50u8, 177u8, 173u8, 184u8, 29u8, 216u8, 40u8,
                            183u8, 87u8, 189u8, 25u8, 102u8, 105u8, 225u8, 164u8, 193u8, 113u8,
                            128u8, 86u8, 127u8, 152u8, 246u8, 149u8, 74u8, 163u8, 88u8, 193u8,
                            43u8, 94u8,
                        ],
                    )
                }
                #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"]
                #[doc = "to be used."]
                #[doc = ""]
                #[doc = "Parameters:"]
                #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."]
                #[doc = "-`core`: The core that should be scheduled."]
                #[doc = "-`begin`: The starting blockheight of the instruction."]
                #[doc = "-`assignment`: How the blockspace should be utilised."]
                #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."]
                pub fn assign_core(
                    &self,
                    core: types::assign_core::Core,
                    begin: types::assign_core::Begin,
                    assignment: types::assign_core::Assignment,
                    end_hint: types::assign_core::EndHint,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AssignCore>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Coretime",
                        "assign_core",
                        types::AssignCore {
                            core,
                            begin,
                            assignment,
                            end_hint,
                        },
                        [
                            113u8, 133u8, 153u8, 202u8, 209u8, 53u8, 168u8, 214u8, 153u8, 232u8,
                            170u8, 35u8, 63u8, 87u8, 5u8, 108u8, 188u8, 55u8, 111u8, 55u8, 22u8,
                            1u8, 190u8, 216u8, 233u8, 185u8, 135u8, 172u8, 15u8, 254u8, 91u8, 92u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_parachains::coretime::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The broker chain has asked for revenue information for a specific block."]
            pub struct RevenueInfoRequested {
                pub when: revenue_info_requested::When,
            }
            pub mod revenue_info_requested {
                use super::runtime_types;
                pub type When = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for RevenueInfoRequested {
                const PALLET: &'static str = "Coretime";
                const EVENT: &'static str = "RevenueInfoRequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A core has received a new assignment from the broker chain."]
            pub struct CoreAssigned {
                pub core: core_assigned::Core,
            }
            pub mod core_assigned {
                use super::runtime_types;
                pub type Core = runtime_types::polkadot_primitives::v8::CoreIndex;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for CoreAssigned {
                const PALLET: &'static str = "Coretime";
                const EVENT: &'static str = "CoreAssigned";
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The ParaId of the coretime chain."]
                pub fn broker_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Coretime",
                        "BrokerId",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The coretime chain pot location."]
                pub fn broker_pot_location(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    runtime_types::staging_xcm::v5::junctions::Junctions,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Coretime",
                        "BrokerPotLocation",
                        [
                            241u8, 114u8, 225u8, 116u8, 227u8, 77u8, 161u8, 134u8, 134u8, 121u8,
                            72u8, 16u8, 209u8, 208u8, 114u8, 110u8, 163u8, 156u8, 92u8, 109u8,
                            134u8, 194u8, 160u8, 228u8, 126u8, 244u8, 254u8, 171u8, 162u8, 58u8,
                            216u8, 63u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod multi_block_migrations {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_migrations::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_migrations::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."]
                #[doc = ""]
                #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"]
                #[doc = "restarting the migration process in this manner will not call the"]
                #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."]
                pub struct ForceSetCursor {
                    pub cursor: force_set_cursor::Cursor,
                }
                pub mod force_set_cursor {
                    use super::runtime_types;
                    pub type Cursor = ::core::option::Option<
                        runtime_types::pallet_migrations::MigrationCursor<
                            runtime_types::bounded_collections::bounded_vec::BoundedVec<
                                ::core::primitive::u8,
                            >,
                            ::core::primitive::u32,
                        >,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetCursor {
                    const PALLET: &'static str = "MultiBlockMigrations";
                    const CALL: &'static str = "force_set_cursor";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."]
                #[doc = ""]
                #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"]
                #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"]
                #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"]
                #[doc = "indicates that the current block number plus one should be used."]
                pub struct ForceSetActiveCursor {
                    pub index: force_set_active_cursor::Index,
                    pub inner_cursor: force_set_active_cursor::InnerCursor,
                    pub started_at: force_set_active_cursor::StartedAt,
                }
                pub mod force_set_active_cursor {
                    use super::runtime_types;
                    pub type Index = ::core::primitive::u32;
                    pub type InnerCursor = ::core::option::Option<
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    >;
                    pub type StartedAt = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetActiveCursor {
                    const PALLET: &'static str = "MultiBlockMigrations";
                    const CALL: &'static str = "force_set_active_cursor";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Forces the onboarding of the migrations."]
                #[doc = ""]
                #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"]
                #[doc = "measurement. The cursor needs to be `None` for this to succeed."]
                pub struct ForceOnboardMbms;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceOnboardMbms {
                    const PALLET: &'static str = "MultiBlockMigrations";
                    const CALL: &'static str = "force_onboard_mbms";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Clears the `Historic` set."]
                #[doc = ""]
                #[doc = "`map_cursor` must be set to the last value that was returned by the"]
                #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"]
                #[doc = "way that will result in a sensible weight."]
                pub struct ClearHistoric {
                    pub selector: clear_historic::Selector,
                }
                pub mod clear_historic {
                    use super::runtime_types;
                    pub type Selector = runtime_types::pallet_migrations::HistoricCleanupSelector<
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearHistoric {
                    const PALLET: &'static str = "MultiBlockMigrations";
                    const CALL: &'static str = "clear_historic";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."]
                #[doc = ""]
                #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"]
                #[doc = "restarting the migration process in this manner will not call the"]
                #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."]
                pub fn force_set_cursor(
                    &self,
                    cursor: types::force_set_cursor::Cursor,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetCursor>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MultiBlockMigrations",
                        "force_set_cursor",
                        types::ForceSetCursor { cursor },
                        [
                            19u8, 44u8, 153u8, 100u8, 215u8, 46u8, 69u8, 184u8, 161u8, 215u8, 80u8,
                            229u8, 65u8, 166u8, 63u8, 102u8, 97u8, 214u8, 112u8, 219u8, 227u8,
                            213u8, 16u8, 50u8, 246u8, 54u8, 69u8, 172u8, 105u8, 216u8, 197u8,
                            184u8,
                        ],
                    )
                }
                #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."]
                #[doc = ""]
                #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"]
                #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"]
                #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"]
                #[doc = "indicates that the current block number plus one should be used."]
                pub fn force_set_active_cursor(
                    &self,
                    index: types::force_set_active_cursor::Index,
                    inner_cursor: types::force_set_active_cursor::InnerCursor,
                    started_at: types::force_set_active_cursor::StartedAt,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetActiveCursor>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MultiBlockMigrations",
                        "force_set_active_cursor",
                        types::ForceSetActiveCursor {
                            index,
                            inner_cursor,
                            started_at,
                        },
                        [
                            171u8, 245u8, 214u8, 230u8, 7u8, 61u8, 186u8, 60u8, 43u8, 235u8, 110u8,
                            188u8, 30u8, 215u8, 48u8, 194u8, 249u8, 215u8, 224u8, 229u8, 89u8,
                            179u8, 189u8, 70u8, 62u8, 162u8, 245u8, 199u8, 3u8, 234u8, 154u8, 9u8,
                        ],
                    )
                }
                #[doc = "Forces the onboarding of the migrations."]
                #[doc = ""]
                #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"]
                #[doc = "measurement. The cursor needs to be `None` for this to succeed."]
                pub fn force_onboard_mbms(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceOnboardMbms>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MultiBlockMigrations",
                        "force_onboard_mbms",
                        types::ForceOnboardMbms {},
                        [
                            201u8, 148u8, 226u8, 128u8, 88u8, 120u8, 31u8, 159u8, 78u8, 5u8, 148u8,
                            189u8, 71u8, 195u8, 136u8, 24u8, 131u8, 107u8, 56u8, 17u8, 26u8, 25u8,
                            189u8, 102u8, 220u8, 148u8, 44u8, 92u8, 79u8, 232u8, 236u8, 86u8,
                        ],
                    )
                }
                #[doc = "Clears the `Historic` set."]
                #[doc = ""]
                #[doc = "`map_cursor` must be set to the last value that was returned by the"]
                #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"]
                #[doc = "way that will result in a sensible weight."]
                pub fn clear_historic(
                    &self,
                    selector: types::clear_historic::Selector,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClearHistoric>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "MultiBlockMigrations",
                        "clear_historic",
                        types::ClearHistoric { selector },
                        [
                            160u8, 68u8, 166u8, 164u8, 115u8, 190u8, 214u8, 167u8, 171u8, 238u8,
                            176u8, 191u8, 30u8, 228u8, 237u8, 125u8, 183u8, 147u8, 186u8, 246u8,
                            59u8, 186u8, 40u8, 193u8, 13u8, 252u8, 99u8, 199u8, 207u8, 149u8, 20u8,
                            95u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_migrations::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A Runtime upgrade started."]
            #[doc = ""]
            #[doc = "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`."]
            pub struct UpgradeStarted {
                pub migrations: upgrade_started::Migrations,
            }
            pub mod upgrade_started {
                use super::runtime_types;
                pub type Migrations = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeStarted {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "UpgradeStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The current runtime upgrade completed."]
            #[doc = ""]
            #[doc = "This implies that all of its migrations completed successfully as well."]
            pub struct UpgradeCompleted;
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeCompleted {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "UpgradeCompleted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Runtime upgrade failed."]
            #[doc = ""]
            #[doc = "This is very bad and will require governance intervention."]
            pub struct UpgradeFailed;
            impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeFailed {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "UpgradeFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A migration was skipped since it was already executed in the past."]
            pub struct MigrationSkipped {
                pub index: migration_skipped::Index,
            }
            pub mod migration_skipped {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationSkipped {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "MigrationSkipped";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A migration progressed."]
            pub struct MigrationAdvanced {
                pub index: migration_advanced::Index,
                pub took: migration_advanced::Took,
            }
            pub mod migration_advanced {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Took = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationAdvanced {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "MigrationAdvanced";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A Migration completed."]
            pub struct MigrationCompleted {
                pub index: migration_completed::Index,
                pub took: migration_completed::Took,
            }
            pub mod migration_completed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Took = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationCompleted {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "MigrationCompleted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A Migration failed."]
            #[doc = ""]
            #[doc = "This implies that the whole upgrade failed and governance intervention is required."]
            pub struct MigrationFailed {
                pub index: migration_failed::Index,
                pub took: migration_failed::Took,
            }
            pub mod migration_failed {
                use super::runtime_types;
                pub type Index = ::core::primitive::u32;
                pub type Took = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationFailed {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "MigrationFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The set of historical migrations has been cleared."]
            pub struct HistoricCleared {
                pub next_cursor: historic_cleared::NextCursor,
            }
            pub mod historic_cleared {
                use super::runtime_types;
                pub type NextCursor = ::core::option::Option<
                    ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for HistoricCleared {
                const PALLET: &'static str = "MultiBlockMigrations";
                const EVENT: &'static str = "HistoricCleared";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod cursor {
                    use super::runtime_types;
                    pub type Cursor = runtime_types::pallet_migrations::MigrationCursor<
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                        ::core::primitive::u32,
                    >;
                }
                pub mod historic {
                    use super::runtime_types;
                    pub type Historic = ();
                    pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The currently active migration to run and its cursor."]
                #[doc = ""]
                #[doc = " `None` indicates that no migration is running."]
                pub fn cursor(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::cursor::Cursor,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MultiBlockMigrations",
                        "Cursor",
                        (),
                        [
                            158u8, 123u8, 0u8, 37u8, 29u8, 141u8, 51u8, 91u8, 165u8, 167u8, 35u8,
                            72u8, 219u8, 39u8, 135u8, 23u8, 215u8, 63u8, 127u8, 57u8, 55u8, 169u8,
                            178u8, 177u8, 77u8, 209u8, 230u8, 152u8, 136u8, 145u8, 58u8, 33u8,
                        ],
                    )
                }
                #[doc = " Set of all successfully executed migrations."]
                #[doc = ""]
                #[doc = " This is used as blacklist, to not re-execute migrations that have not been removed from the"]
                #[doc = " codebase yet. Governance can regularly clear this out via `clear_historic`."]
                pub fn historic_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::historic::Historic,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MultiBlockMigrations",
                        "Historic",
                        (),
                        [
                            142u8, 100u8, 97u8, 146u8, 174u8, 131u8, 203u8, 224u8, 127u8, 74u8,
                            118u8, 165u8, 237u8, 128u8, 89u8, 198u8, 80u8, 250u8, 231u8, 29u8, 1u8,
                            128u8, 201u8, 51u8, 150u8, 168u8, 3u8, 17u8, 35u8, 175u8, 153u8, 141u8,
                        ],
                    )
                }
                #[doc = " Set of all successfully executed migrations."]
                #[doc = ""]
                #[doc = " This is used as blacklist, to not re-execute migrations that have not been removed from the"]
                #[doc = " codebase yet. Governance can regularly clear this out via `clear_historic`."]
                pub fn historic(
                    &self,
                    _0: types::historic::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::historic::Param0,
                    >,
                    types::historic::Historic,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MultiBlockMigrations",
                        "Historic",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            142u8, 100u8, 97u8, 146u8, 174u8, 131u8, 203u8, 224u8, 127u8, 74u8,
                            118u8, 165u8, 237u8, 128u8, 89u8, 198u8, 80u8, 250u8, 231u8, 29u8, 1u8,
                            128u8, 201u8, 51u8, 150u8, 168u8, 3u8, 17u8, 35u8, 175u8, 153u8, 141u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The maximal length of an encoded cursor."]
                #[doc = ""]
                #[doc = " A good default needs to selected such that no migration will ever have a cursor with MEL"]
                #[doc = " above this limit. This is statically checked in `integrity_test`."]
                pub fn cursor_max_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MultiBlockMigrations",
                        "CursorMaxLen",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximal length of an encoded identifier."]
                #[doc = ""]
                #[doc = " A good default needs to selected such that no migration will ever have an identifier"]
                #[doc = " with MEL above this limit. This is statically checked in `integrity_test`."]
                pub fn identifier_max_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "MultiBlockMigrations",
                        "IdentifierMaxLen",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod xcm_pallet {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_xcm::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_xcm::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Send {
                    pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box<send::Dest>,
                    pub message: ::subxt::ext::subxt_core::alloc::boxed::Box<send::Message>,
                }
                pub mod send {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Message = runtime_types::xcm::VersionedXcm;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Send {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "send";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Teleport some assets from the local chain to some destination chain."]
                #[doc = ""]
                #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"]
                #[doc = "with all fees taken as needed from the asset."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` chain."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                pub struct TeleportAssets {
                    pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box<teleport_assets::Dest>,
                    pub beneficiary:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<teleport_assets::Beneficiary>,
                    pub assets:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<teleport_assets::Assets>,
                    pub fee_asset_item: teleport_assets::FeeAssetItem,
                }
                pub mod teleport_assets {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type FeeAssetItem = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TeleportAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "teleport_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."]
                #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"]
                #[doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"]
                #[doc = "   to mint and deposit reserve-based assets to `beneficiary`."]
                #[doc = ""]
                #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"]
                #[doc = "with all fees taken as needed from the asset."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                pub struct ReserveTransferAssets {
                    pub dest:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<reserve_transfer_assets::Dest>,
                    pub beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        reserve_transfer_assets::Beneficiary,
                    >,
                    pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        reserve_transfer_assets::Assets,
                    >,
                    pub fee_asset_item: reserve_transfer_assets::FeeAssetItem,
                }
                pub mod reserve_transfer_assets {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type FeeAssetItem = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReserveTransferAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "reserve_transfer_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Execute an XCM message from a local, signed, origin."]
                #[doc = ""]
                #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"]
                #[doc = "partially."]
                #[doc = ""]
                #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"]
                #[doc = "the maximum amount of weight that the message could take to be executed, then no"]
                #[doc = "execution attempt will be made."]
                pub struct Execute {
                    pub message: ::subxt::ext::subxt_core::alloc::boxed::Box<execute::Message>,
                    pub max_weight: execute::MaxWeight,
                }
                pub mod execute {
                    use super::runtime_types;
                    pub type Message = runtime_types::xcm::VersionedXcm;
                    pub type MaxWeight = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Execute {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "execute";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Extoll that a particular destination can be communicated with through a particular"]
                #[doc = "version of XCM."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The destination that is being described."]
                #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."]
                pub struct ForceXcmVersion {
                    pub location:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<force_xcm_version::Location>,
                    pub version: force_xcm_version::Version,
                }
                pub mod force_xcm_version {
                    use super::runtime_types;
                    pub type Location = runtime_types::staging_xcm::v5::location::Location;
                    pub type Version = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceXcmVersion {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "force_xcm_version";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"]
                #[doc = "version a destination can accept is unknown)."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."]
                pub struct ForceDefaultXcmVersion {
                    pub maybe_xcm_version: force_default_xcm_version::MaybeXcmVersion,
                }
                pub mod force_default_xcm_version {
                    use super::runtime_types;
                    pub type MaybeXcmVersion = ::core::option::Option<::core::primitive::u32>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceDefaultXcmVersion {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "force_default_xcm_version";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."]
                pub struct ForceSubscribeVersionNotify {
                    pub location: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        force_subscribe_version_notify::Location,
                    >,
                }
                pub mod force_subscribe_version_notify {
                    use super::runtime_types;
                    pub type Location = runtime_types::xcm::VersionedLocation;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSubscribeVersionNotify {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "force_subscribe_version_notify";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Require that a particular destination should no longer notify us regarding any XCM"]
                #[doc = "version changes."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The location to which we are currently subscribed for XCM version"]
                #[doc = "  notifications which we no longer desire."]
                pub struct ForceUnsubscribeVersionNotify {
                    pub location: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        force_unsubscribe_version_notify::Location,
                    >,
                }
                pub mod force_unsubscribe_version_notify {
                    use super::runtime_types;
                    pub type Location = runtime_types::xcm::VersionedLocation;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnsubscribeVersionNotify {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "force_unsubscribe_version_notify";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."]
                #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"]
                #[doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"]
                #[doc = "   to mint and deposit reserve-based assets to `beneficiary`."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub struct LimitedReserveTransferAssets {
                    pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        limited_reserve_transfer_assets::Dest,
                    >,
                    pub beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        limited_reserve_transfer_assets::Beneficiary,
                    >,
                    pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        limited_reserve_transfer_assets::Assets,
                    >,
                    pub fee_asset_item: limited_reserve_transfer_assets::FeeAssetItem,
                    pub weight_limit: limited_reserve_transfer_assets::WeightLimit,
                }
                pub mod limited_reserve_transfer_assets {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type FeeAssetItem = ::core::primitive::u32;
                    pub type WeightLimit = runtime_types::xcm::v3::WeightLimit;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for LimitedReserveTransferAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "limited_reserve_transfer_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Teleport some assets from the local chain to some destination chain."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` chain."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub struct LimitedTeleportAssets {
                    pub dest:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<limited_teleport_assets::Dest>,
                    pub beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        limited_teleport_assets::Beneficiary,
                    >,
                    pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        limited_teleport_assets::Assets,
                    >,
                    pub fee_asset_item: limited_teleport_assets::FeeAssetItem,
                    pub weight_limit: limited_teleport_assets::WeightLimit,
                }
                pub mod limited_teleport_assets {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type FeeAssetItem = ::core::primitive::u32;
                    pub type WeightLimit = runtime_types::xcm::v3::WeightLimit;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for LimitedTeleportAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "limited_teleport_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set or unset the global suspension state of the XCM executor."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `suspended`: `true` to suspend, `false` to resume."]
                pub struct ForceSuspension {
                    pub suspended: force_suspension::Suspended,
                }
                pub mod force_suspension {
                    use super::runtime_types;
                    pub type Suspended = ::core::primitive::bool;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSuspension {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "force_suspension";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve, or through teleports."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"]
                #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"]
                #[doc = "operation will fail and the sent assets may be at risk."]
                #[doc = ""]
                #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"]
                #[doc = "to `dest`, no limitations imposed on `fees`."]
                #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"]
                #[doc = "   forward a notification XCM to `dest` to mint and deposit reserve-based assets to"]
                #[doc = "   `beneficiary`."]
                #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"]
                #[doc = "   to withdraw the reserve assets from this chain's sovereign account and deposit them"]
                #[doc = "   to `beneficiary`."]
                #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"]
                #[doc = "   from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"]
                #[doc = "   and deposit reserve-based assets to `beneficiary`."]
                #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"]
                #[doc = "   assets and deposit them to `beneficiary`."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"]
                #[doc = "  Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"]
                #[doc = "  from relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub struct TransferAssets {
                    pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box<transfer_assets::Dest>,
                    pub beneficiary:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<transfer_assets::Beneficiary>,
                    pub assets:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<transfer_assets::Assets>,
                    pub fee_asset_item: transfer_assets::FeeAssetItem,
                    pub weight_limit: transfer_assets::WeightLimit,
                }
                pub mod transfer_assets {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type FeeAssetItem = ::core::primitive::u32;
                    pub type WeightLimit = runtime_types::xcm::v3::WeightLimit;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "transfer_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."]
                #[doc = ""]
                #[doc = "- `origin`: Anyone can call this extrinsic."]
                #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"]
                #[doc = "was the latest when they were trapped."]
                #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."]
                pub struct ClaimAssets {
                    pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box<claim_assets::Assets>,
                    pub beneficiary:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<claim_assets::Beneficiary>,
                }
                pub mod claim_assets {
                    use super::runtime_types;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type Beneficiary = runtime_types::xcm::VersionedLocation;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimAssets {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "claim_assets";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"]
                #[doc = "types for assets and fees."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"]
                #[doc = "provide the `assets_transfer_type` to be used for `assets`:"]
                #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"]
                #[doc = "   chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"]
                #[doc = "   XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"]
                #[doc = "   the remote `reserve` is Asset Hub."]
                #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"]
                #[doc = "   mint/teleport assets and deposit them to `beneficiary`."]
                #[doc = ""]
                #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"]
                #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."]
                #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"]
                #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"]
                #[doc = "specified through `fees_transfer_type`."]
                #[doc = ""]
                #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"]
                #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"]
                #[doc = "contains the instructions to execute on `dest` as a final step."]
                #[doc = "  This is usually as simple as:"]
                #[doc = "  `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"]
                #[doc = "  but could be something more exotic like sending the `assets` even further."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"]
                #[doc = "  parachain across a bridge to another ecosystem destination."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."]
                #[doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."]
                #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."]
                #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"]
                #[doc = "  transfer, which also determines what happens to the assets on the destination chain."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub struct TransferAssetsUsingTypeAndThen {
                    pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::Dest,
                    >,
                    pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::Assets,
                    >,
                    pub assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::AssetsTransferType,
                    >,
                    pub remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::RemoteFeesId,
                    >,
                    pub fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::FeesTransferType,
                    >,
                    pub custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        transfer_assets_using_type_and_then::CustomXcmOnDest,
                    >,
                    pub weight_limit: transfer_assets_using_type_and_then::WeightLimit,
                }
                pub mod transfer_assets_using_type_and_then {
                    use super::runtime_types;
                    pub type Dest = runtime_types::xcm::VersionedLocation;
                    pub type Assets = runtime_types::xcm::VersionedAssets;
                    pub type AssetsTransferType =
                        runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType;
                    pub type RemoteFeesId = runtime_types::xcm::VersionedAssetId;
                    pub type FeesTransferType =
                        runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType;
                    pub type CustomXcmOnDest = runtime_types::xcm::VersionedXcm;
                    pub type WeightLimit = runtime_types::xcm::v3::WeightLimit;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssetsUsingTypeAndThen {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "transfer_assets_using_type_and_then";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authorize another `aliaser` location to alias into the local `origin` making this call."]
                #[doc = "The `aliaser` is only authorized until the provided `expiry` block number."]
                #[doc = "The call can also be used for a previously authorized alias in order to update its"]
                #[doc = "`expiry` block number."]
                #[doc = ""]
                #[doc = "Usually useful to allow your local account to be aliased into from a remote location"]
                #[doc = "also under your control (like your account on another chain)."]
                #[doc = ""]
                #[doc = "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in"]
                #[doc = "their/your name. Once authorized using this call, the `aliaser` can freely impersonate"]
                #[doc = "`origin` in XCM programs executed on the local chain."]
                pub struct AddAuthorizedAlias {
                    pub aliaser:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<add_authorized_alias::Aliaser>,
                    pub expires: add_authorized_alias::Expires,
                }
                pub mod add_authorized_alias {
                    use super::runtime_types;
                    pub type Aliaser = runtime_types::xcm::VersionedLocation;
                    pub type Expires = ::core::option::Option<::core::primitive::u64>;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddAuthorizedAlias {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "add_authorized_alias";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove a previously authorized `aliaser` from the list of locations that can alias into"]
                #[doc = "the local `origin` making this call."]
                pub struct RemoveAuthorizedAlias {
                    pub aliaser: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        remove_authorized_alias::Aliaser,
                    >,
                }
                pub mod remove_authorized_alias {
                    use super::runtime_types;
                    pub type Aliaser = runtime_types::xcm::VersionedLocation;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveAuthorizedAlias {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "remove_authorized_alias";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove all previously authorized `aliaser`s that can alias into the local `origin`"]
                #[doc = "making this call."]
                pub struct RemoveAllAuthorizedAliases;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveAllAuthorizedAliases {
                    const PALLET: &'static str = "XcmPallet";
                    const CALL: &'static str = "remove_all_authorized_aliases";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                pub fn send(
                    &self,
                    dest: types::send::Dest,
                    message: types::send::Message,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Send>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "send",
                        types::Send {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            message: ::subxt::ext::subxt_core::alloc::boxed::Box::new(message),
                        },
                        [
                            209u8, 111u8, 170u8, 6u8, 115u8, 11u8, 18u8, 171u8, 249u8, 3u8, 67u8,
                            107u8, 212u8, 16u8, 140u8, 96u8, 29u8, 157u8, 20u8, 1u8, 21u8, 19u8,
                            105u8, 188u8, 10u8, 5u8, 87u8, 67u8, 71u8, 188u8, 35u8, 66u8,
                        ],
                    )
                }
                #[doc = "Teleport some assets from the local chain to some destination chain."]
                #[doc = ""]
                #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"]
                #[doc = "with all fees taken as needed from the asset."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` chain."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                pub fn teleport_assets(
                    &self,
                    dest: types::teleport_assets::Dest,
                    beneficiary: types::teleport_assets::Beneficiary,
                    assets: types::teleport_assets::Assets,
                    fee_asset_item: types::teleport_assets::FeeAssetItem,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TeleportAssets>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "teleport_assets",
                        types::TeleportAssets {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            fee_asset_item,
                        },
                        [
                            31u8, 60u8, 0u8, 220u8, 157u8, 38u8, 28u8, 140u8, 79u8, 243u8, 182u8,
                            229u8, 158u8, 45u8, 213u8, 132u8, 149u8, 196u8, 212u8, 239u8, 23u8,
                            19u8, 69u8, 27u8, 250u8, 110u8, 193u8, 60u8, 227u8, 252u8, 174u8, 35u8,
                        ],
                    )
                }
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."]
                #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"]
                #[doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"]
                #[doc = "   to mint and deposit reserve-based assets to `beneficiary`."]
                #[doc = ""]
                #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"]
                #[doc = "with all fees taken as needed from the asset."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                pub fn reserve_transfer_assets(
                    &self,
                    dest: types::reserve_transfer_assets::Dest,
                    beneficiary: types::reserve_transfer_assets::Beneficiary,
                    assets: types::reserve_transfer_assets::Assets,
                    fee_asset_item: types::reserve_transfer_assets::FeeAssetItem,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReserveTransferAssets,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "reserve_transfer_assets",
                        types::ReserveTransferAssets {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            fee_asset_item,
                        },
                        [
                            76u8, 122u8, 201u8, 193u8, 160u8, 210u8, 58u8, 150u8, 236u8, 130u8,
                            225u8, 28u8, 35u8, 9u8, 206u8, 235u8, 14u8, 101u8, 193u8, 118u8, 145u8,
                            230u8, 112u8, 65u8, 172u8, 251u8, 62u8, 64u8, 130u8, 223u8, 153u8,
                            139u8,
                        ],
                    )
                }
                #[doc = "Execute an XCM message from a local, signed, origin."]
                #[doc = ""]
                #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"]
                #[doc = "partially."]
                #[doc = ""]
                #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"]
                #[doc = "the maximum amount of weight that the message could take to be executed, then no"]
                #[doc = "execution attempt will be made."]
                pub fn execute(
                    &self,
                    message: types::execute::Message,
                    max_weight: types::execute::MaxWeight,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Execute>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "execute",
                        types::Execute {
                            message: ::subxt::ext::subxt_core::alloc::boxed::Box::new(message),
                            max_weight,
                        },
                        [
                            122u8, 9u8, 129u8, 102u8, 188u8, 214u8, 143u8, 187u8, 175u8, 221u8,
                            157u8, 67u8, 208u8, 30u8, 97u8, 133u8, 171u8, 14u8, 144u8, 97u8, 18u8,
                            124u8, 196u8, 254u8, 70u8, 31u8, 175u8, 197u8, 230u8, 36u8, 147u8,
                            211u8,
                        ],
                    )
                }
                #[doc = "Extoll that a particular destination can be communicated with through a particular"]
                #[doc = "version of XCM."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The destination that is being described."]
                #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."]
                pub fn force_xcm_version(
                    &self,
                    location: types::force_xcm_version::Location,
                    version: types::force_xcm_version::Version,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceXcmVersion>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "force_xcm_version",
                        types::ForceXcmVersion {
                            location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location),
                            version,
                        },
                        [
                            136u8, 43u8, 72u8, 5u8, 164u8, 97u8, 177u8, 61u8, 8u8, 112u8, 148u8,
                            43u8, 0u8, 23u8, 134u8, 21u8, 173u8, 181u8, 207u8, 249u8, 98u8, 122u8,
                            74u8, 131u8, 172u8, 12u8, 146u8, 124u8, 220u8, 97u8, 126u8, 253u8,
                        ],
                    )
                }
                #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"]
                #[doc = "version a destination can accept is unknown)."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."]
                pub fn force_default_xcm_version(
                    &self,
                    maybe_xcm_version: types::force_default_xcm_version::MaybeXcmVersion,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceDefaultXcmVersion,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "force_default_xcm_version",
                        types::ForceDefaultXcmVersion { maybe_xcm_version },
                        [
                            43u8, 114u8, 102u8, 104u8, 209u8, 234u8, 108u8, 173u8, 109u8, 188u8,
                            94u8, 214u8, 136u8, 43u8, 153u8, 75u8, 161u8, 192u8, 76u8, 12u8, 221u8,
                            237u8, 158u8, 247u8, 41u8, 193u8, 35u8, 174u8, 183u8, 207u8, 79u8,
                            213u8,
                        ],
                    )
                }
                #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."]
                pub fn force_subscribe_version_notify(
                    &self,
                    location: types::force_subscribe_version_notify::Location,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceSubscribeVersionNotify,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "force_subscribe_version_notify",
                        types::ForceSubscribeVersionNotify {
                            location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location),
                        },
                        [
                            51u8, 103u8, 204u8, 180u8, 35u8, 50u8, 212u8, 76u8, 243u8, 161u8, 5u8,
                            180u8, 61u8, 194u8, 181u8, 13u8, 209u8, 18u8, 182u8, 26u8, 138u8,
                            139u8, 205u8, 98u8, 62u8, 185u8, 194u8, 240u8, 5u8, 60u8, 245u8, 91u8,
                        ],
                    )
                }
                #[doc = "Require that a particular destination should no longer notify us regarding any XCM"]
                #[doc = "version changes."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `location`: The location to which we are currently subscribed for XCM version"]
                #[doc = "  notifications which we no longer desire."]
                pub fn force_unsubscribe_version_notify(
                    &self,
                    location: types::force_unsubscribe_version_notify::Location,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ForceUnsubscribeVersionNotify,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "force_unsubscribe_version_notify",
                        types::ForceUnsubscribeVersionNotify {
                            location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location),
                        },
                        [
                            80u8, 153u8, 123u8, 155u8, 105u8, 164u8, 139u8, 252u8, 89u8, 174u8,
                            54u8, 14u8, 99u8, 172u8, 85u8, 239u8, 45u8, 141u8, 84u8, 69u8, 47u8,
                            18u8, 173u8, 201u8, 137u8, 186u8, 217u8, 105u8, 105u8, 20u8, 6u8,
                            198u8,
                        ],
                    )
                }
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."]
                #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"]
                #[doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"]
                #[doc = "   to mint and deposit reserve-based assets to `beneficiary`."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub fn limited_reserve_transfer_assets(
                    &self,
                    dest: types::limited_reserve_transfer_assets::Dest,
                    beneficiary: types::limited_reserve_transfer_assets::Beneficiary,
                    assets: types::limited_reserve_transfer_assets::Assets,
                    fee_asset_item: types::limited_reserve_transfer_assets::FeeAssetItem,
                    weight_limit: types::limited_reserve_transfer_assets::WeightLimit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::LimitedReserveTransferAssets,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "limited_reserve_transfer_assets",
                        types::LimitedReserveTransferAssets {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            fee_asset_item,
                            weight_limit,
                        },
                        [
                            72u8, 168u8, 103u8, 54u8, 253u8, 3u8, 152u8, 167u8, 60u8, 214u8, 24u8,
                            47u8, 179u8, 36u8, 251u8, 15u8, 213u8, 191u8, 95u8, 128u8, 93u8, 42u8,
                            205u8, 37u8, 214u8, 170u8, 241u8, 71u8, 176u8, 11u8, 43u8, 74u8,
                        ],
                    )
                }
                #[doc = "Teleport some assets from the local chain to some destination chain."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` chain."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub fn limited_teleport_assets(
                    &self,
                    dest: types::limited_teleport_assets::Dest,
                    beneficiary: types::limited_teleport_assets::Beneficiary,
                    assets: types::limited_teleport_assets::Assets,
                    fee_asset_item: types::limited_teleport_assets::FeeAssetItem,
                    weight_limit: types::limited_teleport_assets::WeightLimit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::LimitedTeleportAssets,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "limited_teleport_assets",
                        types::LimitedTeleportAssets {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            fee_asset_item,
                            weight_limit,
                        },
                        [
                            56u8, 190u8, 251u8, 133u8, 34u8, 100u8, 32u8, 57u8, 114u8, 73u8, 153u8,
                            74u8, 178u8, 228u8, 239u8, 87u8, 242u8, 202u8, 56u8, 66u8, 22u8, 216u8,
                            113u8, 25u8, 233u8, 238u8, 164u8, 76u8, 144u8, 204u8, 219u8, 91u8,
                        ],
                    )
                }
                #[doc = "Set or unset the global suspension state of the XCM executor."]
                #[doc = ""]
                #[doc = "- `origin`: Must be an origin specified by AdminOrigin."]
                #[doc = "- `suspended`: `true` to suspend, `false` to resume."]
                pub fn force_suspension(
                    &self,
                    suspended: types::force_suspension::Suspended,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSuspension>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "force_suspension",
                        types::ForceSuspension { suspended },
                        [
                            78u8, 125u8, 93u8, 55u8, 129u8, 44u8, 36u8, 227u8, 75u8, 46u8, 68u8,
                            202u8, 81u8, 127u8, 111u8, 92u8, 149u8, 38u8, 225u8, 185u8, 183u8,
                            154u8, 89u8, 159u8, 79u8, 10u8, 229u8, 1u8, 226u8, 243u8, 65u8, 238u8,
                        ],
                    )
                }
                #[doc = "Transfer some assets from the local chain to the destination chain through their local,"]
                #[doc = "destination or remote reserve, or through teleports."]
                #[doc = ""]
                #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"]
                #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"]
                #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"]
                #[doc = "operation will fail and the sent assets may be at risk."]
                #[doc = ""]
                #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"]
                #[doc = "to `dest`, no limitations imposed on `fees`."]
                #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"]
                #[doc = "   forward a notification XCM to `dest` to mint and deposit reserve-based assets to"]
                #[doc = "   `beneficiary`."]
                #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"]
                #[doc = "   to withdraw the reserve assets from this chain's sovereign account and deposit them"]
                #[doc = "   to `beneficiary`."]
                #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"]
                #[doc = "   from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"]
                #[doc = "   and deposit reserve-based assets to `beneficiary`."]
                #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"]
                #[doc = "   assets and deposit them to `beneficiary`."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"]
                #[doc = "  Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"]
                #[doc = "  from relay to parachain."]
                #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"]
                #[doc = "  generally be an `AccountId32` value."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"]
                #[doc = "  fees."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub fn transfer_assets(
                    &self,
                    dest: types::transfer_assets::Dest,
                    beneficiary: types::transfer_assets::Beneficiary,
                    assets: types::transfer_assets::Assets,
                    fee_asset_item: types::transfer_assets::FeeAssetItem,
                    weight_limit: types::transfer_assets::WeightLimit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TransferAssets>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "transfer_assets",
                        types::TransferAssets {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            fee_asset_item,
                            weight_limit,
                        },
                        [
                            204u8, 118u8, 44u8, 144u8, 51u8, 77u8, 235u8, 235u8, 86u8, 166u8, 92u8,
                            106u8, 197u8, 151u8, 154u8, 136u8, 137u8, 206u8, 111u8, 118u8, 94u8,
                            22u8, 7u8, 21u8, 13u8, 169u8, 214u8, 87u8, 84u8, 140u8, 6u8, 54u8,
                        ],
                    )
                }
                #[doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."]
                #[doc = ""]
                #[doc = "- `origin`: Anyone can call this extrinsic."]
                #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"]
                #[doc = "was the latest when they were trapped."]
                #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."]
                pub fn claim_assets(
                    &self,
                    assets: types::claim_assets::Assets,
                    beneficiary: types::claim_assets::Beneficiary,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ClaimAssets>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "claim_assets",
                        types::ClaimAssets {
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                beneficiary,
                            ),
                        },
                        [
                            7u8, 158u8, 80u8, 180u8, 145u8, 151u8, 34u8, 132u8, 236u8, 243u8, 77u8,
                            177u8, 66u8, 172u8, 57u8, 182u8, 226u8, 110u8, 246u8, 159u8, 61u8,
                            31u8, 167u8, 210u8, 226u8, 215u8, 103u8, 234u8, 16u8, 95u8, 92u8,
                            248u8,
                        ],
                    )
                }
                #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"]
                #[doc = "types for assets and fees."]
                #[doc = ""]
                #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"]
                #[doc = "provide the `assets_transfer_type` to be used for `assets`:"]
                #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"]
                #[doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"]
                #[doc = "   assets to `beneficiary`."]
                #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"]
                #[doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"]
                #[doc = "   deposit them to `beneficiary`."]
                #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"]
                #[doc = "   chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"]
                #[doc = "   XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"]
                #[doc = "   the remote `reserve` is Asset Hub."]
                #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"]
                #[doc = "   mint/teleport assets and deposit them to `beneficiary`."]
                #[doc = ""]
                #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"]
                #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."]
                #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"]
                #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"]
                #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"]
                #[doc = "at risk."]
                #[doc = ""]
                #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"]
                #[doc = "specified through `fees_transfer_type`."]
                #[doc = ""]
                #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"]
                #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"]
                #[doc = "contains the instructions to execute on `dest` as a final step."]
                #[doc = "  This is usually as simple as:"]
                #[doc = "  `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"]
                #[doc = "  but could be something more exotic like sending the `assets` even further."]
                #[doc = ""]
                #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."]
                #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"]
                #[doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"]
                #[doc = "  relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"]
                #[doc = "  parachain across a bridge to another ecosystem destination."]
                #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"]
                #[doc = "  fee on the `dest` (and possibly reserve) chains."]
                #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."]
                #[doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."]
                #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."]
                #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"]
                #[doc = "  transfer, which also determines what happens to the assets on the destination chain."]
                #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."]
                pub fn transfer_assets_using_type_and_then(
                    &self,
                    dest: types::transfer_assets_using_type_and_then::Dest,
                    assets: types::transfer_assets_using_type_and_then::Assets,
                    assets_transfer_type : types :: transfer_assets_using_type_and_then :: AssetsTransferType,
                    remote_fees_id: types::transfer_assets_using_type_and_then::RemoteFeesId,
                    fees_transfer_type : types :: transfer_assets_using_type_and_then :: FeesTransferType,
                    custom_xcm_on_dest: types::transfer_assets_using_type_and_then::CustomXcmOnDest,
                    weight_limit: types::transfer_assets_using_type_and_then::WeightLimit,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::TransferAssetsUsingTypeAndThen,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "transfer_assets_using_type_and_then",
                        types::TransferAssetsUsingTypeAndThen {
                            dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest),
                            assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets),
                            assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                assets_transfer_type,
                            ),
                            remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                remote_fees_id,
                            ),
                            fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                fees_transfer_type,
                            ),
                            custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                custom_xcm_on_dest,
                            ),
                            weight_limit,
                        },
                        [
                            199u8, 248u8, 143u8, 192u8, 39u8, 87u8, 220u8, 150u8, 207u8, 131u8,
                            122u8, 214u8, 240u8, 15u8, 201u8, 146u8, 166u8, 101u8, 154u8, 151u8,
                            218u8, 25u8, 195u8, 200u8, 96u8, 141u8, 210u8, 113u8, 16u8, 238u8,
                            208u8, 192u8,
                        ],
                    )
                }
                #[doc = "Authorize another `aliaser` location to alias into the local `origin` making this call."]
                #[doc = "The `aliaser` is only authorized until the provided `expiry` block number."]
                #[doc = "The call can also be used for a previously authorized alias in order to update its"]
                #[doc = "`expiry` block number."]
                #[doc = ""]
                #[doc = "Usually useful to allow your local account to be aliased into from a remote location"]
                #[doc = "also under your control (like your account on another chain)."]
                #[doc = ""]
                #[doc = "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in"]
                #[doc = "their/your name. Once authorized using this call, the `aliaser` can freely impersonate"]
                #[doc = "`origin` in XCM programs executed on the local chain."]
                pub fn add_authorized_alias(
                    &self,
                    aliaser: types::add_authorized_alias::Aliaser,
                    expires: types::add_authorized_alias::Expires,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::AddAuthorizedAlias>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "add_authorized_alias",
                        types::AddAuthorizedAlias {
                            aliaser: ::subxt::ext::subxt_core::alloc::boxed::Box::new(aliaser),
                            expires,
                        },
                        [
                            223u8, 55u8, 95u8, 81u8, 3u8, 249u8, 197u8, 169u8, 247u8, 139u8, 84u8,
                            142u8, 87u8, 70u8, 51u8, 169u8, 137u8, 190u8, 116u8, 253u8, 220u8,
                            101u8, 221u8, 132u8, 245u8, 23u8, 0u8, 212u8, 3u8, 54u8, 60u8, 78u8,
                        ],
                    )
                }
                #[doc = "Remove a previously authorized `aliaser` from the list of locations that can alias into"]
                #[doc = "the local `origin` making this call."]
                pub fn remove_authorized_alias(
                    &self,
                    aliaser: types::remove_authorized_alias::Aliaser,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveAuthorizedAlias,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "remove_authorized_alias",
                        types::RemoveAuthorizedAlias {
                            aliaser: ::subxt::ext::subxt_core::alloc::boxed::Box::new(aliaser),
                        },
                        [
                            210u8, 231u8, 143u8, 176u8, 120u8, 169u8, 22u8, 200u8, 5u8, 41u8, 51u8,
                            229u8, 158u8, 72u8, 19u8, 54u8, 204u8, 207u8, 191u8, 47u8, 145u8, 71u8,
                            204u8, 235u8, 75u8, 245u8, 190u8, 106u8, 119u8, 203u8, 66u8, 0u8,
                        ],
                    )
                }
                #[doc = "Remove all previously authorized `aliaser`s that can alias into the local `origin`"]
                #[doc = "making this call."]
                pub fn remove_all_authorized_aliases(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::RemoveAllAuthorizedAliases,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "XcmPallet",
                        "remove_all_authorized_aliases",
                        types::RemoveAllAuthorizedAliases {},
                        [
                            223u8, 17u8, 58u8, 180u8, 190u8, 164u8, 106u8, 17u8, 237u8, 243u8,
                            160u8, 39u8, 13u8, 103u8, 166u8, 51u8, 192u8, 73u8, 193u8, 21u8, 69u8,
                            170u8, 101u8, 195u8, 42u8, 123u8, 56u8, 90u8, 8u8, 109u8, 15u8, 110u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_xcm::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Execution of an XCM message was attempted."]
            pub struct Attempted {
                pub outcome: attempted::Outcome,
            }
            pub mod attempted {
                use super::runtime_types;
                pub type Outcome = runtime_types::staging_xcm::v5::traits::Outcome;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Attempted {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "Attempted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An XCM message was sent."]
            pub struct Sent {
                pub origin: sent::Origin,
                pub destination: sent::Destination,
                pub message: sent::Message,
                pub message_id: sent::MessageId,
            }
            pub mod sent {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Message = runtime_types::staging_xcm::v5::Xcm;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Sent {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "Sent";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An XCM message failed to send."]
            pub struct SendFailed {
                pub origin: send_failed::Origin,
                pub destination: send_failed::Destination,
                pub error: send_failed::Error,
                pub message_id: send_failed::MessageId,
            }
            pub mod send_failed {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Error = runtime_types::xcm::v3::traits::SendError;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SendFailed {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "SendFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An XCM message failed to process."]
            pub struct ProcessXcmError {
                pub origin: process_xcm_error::Origin,
                pub error: process_xcm_error::Error,
                pub message_id: process_xcm_error::MessageId,
            }
            pub mod process_xcm_error {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type Error = runtime_types::xcm::v5::traits::Error;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ProcessXcmError {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "ProcessXcmError";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response received which does not match a registered query. This may be because a"]
            #[doc = "matching query was never registered, it may be because it is a duplicate response, or"]
            #[doc = "because the query timed out."]
            pub struct UnexpectedResponse {
                pub origin: unexpected_response::Origin,
                pub query_id: unexpected_response::QueryId,
            }
            pub mod unexpected_response {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for UnexpectedResponse {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "UnexpectedResponse";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response has been received and is ready for taking with `take_response`. There is"]
            #[doc = "no registered notification call."]
            pub struct ResponseReady {
                pub query_id: response_ready::QueryId,
                pub response: response_ready::Response,
            }
            pub mod response_ready {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
                pub type Response = runtime_types::staging_xcm::v5::Response;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ResponseReady {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "ResponseReady";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response has been received and query is removed. The registered notification has"]
            #[doc = "been dispatched and executed successfully."]
            pub struct Notified {
                pub query_id: notified::QueryId,
                pub pallet_index: notified::PalletIndex,
                pub call_index: notified::CallIndex,
            }
            pub mod notified {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
                pub type PalletIndex = ::core::primitive::u8;
                pub type CallIndex = ::core::primitive::u8;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Notified {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "Notified";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response has been received and query is removed. The registered notification"]
            #[doc = "could not be dispatched because the dispatch weight is greater than the maximum weight"]
            #[doc = "originally budgeted by this runtime for the query result."]
            pub struct NotifyOverweight {
                pub query_id: notify_overweight::QueryId,
                pub pallet_index: notify_overweight::PalletIndex,
                pub call_index: notify_overweight::CallIndex,
                pub actual_weight: notify_overweight::ActualWeight,
                pub max_budgeted_weight: notify_overweight::MaxBudgetedWeight,
            }
            pub mod notify_overweight {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
                pub type PalletIndex = ::core::primitive::u8;
                pub type CallIndex = ::core::primitive::u8;
                pub type ActualWeight = runtime_types::sp_weights::weight_v2::Weight;
                pub type MaxBudgetedWeight = runtime_types::sp_weights::weight_v2::Weight;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyOverweight {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "NotifyOverweight";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response has been received and query is removed. There was a general error with"]
            #[doc = "dispatching the notification call."]
            pub struct NotifyDispatchError {
                pub query_id: notify_dispatch_error::QueryId,
                pub pallet_index: notify_dispatch_error::PalletIndex,
                pub call_index: notify_dispatch_error::CallIndex,
            }
            pub mod notify_dispatch_error {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
                pub type PalletIndex = ::core::primitive::u8;
                pub type CallIndex = ::core::primitive::u8;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyDispatchError {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "NotifyDispatchError";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Query response has been received and query is removed. The dispatch was unable to be"]
            #[doc = "decoded into a `Call`; this might be due to dispatch function having a signature which"]
            #[doc = "is not `(origin, QueryId, Response)`."]
            pub struct NotifyDecodeFailed {
                pub query_id: notify_decode_failed::QueryId,
                pub pallet_index: notify_decode_failed::PalletIndex,
                pub call_index: notify_decode_failed::CallIndex,
            }
            pub mod notify_decode_failed {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
                pub type PalletIndex = ::core::primitive::u8;
                pub type CallIndex = ::core::primitive::u8;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyDecodeFailed {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "NotifyDecodeFailed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Expected query response has been received but the origin location of the response does"]
            #[doc = "not match that expected. The query remains registered for a later, valid, response to"]
            #[doc = "be received and acted upon."]
            pub struct InvalidResponder {
                pub origin: invalid_responder::Origin,
                pub query_id: invalid_responder::QueryId,
                pub expected_location: invalid_responder::ExpectedLocation,
            }
            pub mod invalid_responder {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
                pub type ExpectedLocation =
                    ::core::option::Option<runtime_types::staging_xcm::v5::location::Location>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponder {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "InvalidResponder";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Expected query response has been received but the expected origin location placed in"]
            #[doc = "storage by this runtime previously cannot be decoded. The query remains registered."]
            #[doc = ""]
            #[doc = "This is unexpected (since a location placed in storage in a previously executing"]
            #[doc = "runtime should be readable prior to query timeout) and dangerous since the possibly"]
            #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"]
            #[doc = "needed."]
            pub struct InvalidResponderVersion {
                pub origin: invalid_responder_version::Origin,
                pub query_id: invalid_responder_version::QueryId,
            }
            pub mod invalid_responder_version {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponderVersion {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "InvalidResponderVersion";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Received query response has been read and removed."]
            pub struct ResponseTaken {
                pub query_id: response_taken::QueryId,
            }
            pub mod response_taken {
                use super::runtime_types;
                pub type QueryId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ResponseTaken {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "ResponseTaken";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some assets have been placed in an asset trap."]
            pub struct AssetsTrapped {
                pub hash: assets_trapped::Hash,
                pub origin: assets_trapped::Origin,
                pub assets: assets_trapped::Assets,
            }
            pub mod assets_trapped {
                use super::runtime_types;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type Assets = runtime_types::xcm::VersionedAssets;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsTrapped {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "AssetsTrapped";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An XCM version change notification message has been attempted to be sent."]
            #[doc = ""]
            #[doc = "The cost of sending it (borne by the chain) is included."]
            pub struct VersionChangeNotified {
                pub destination: version_change_notified::Destination,
                pub result: version_change_notified::Result,
                pub cost: version_change_notified::Cost,
                pub message_id: version_change_notified::MessageId,
            }
            pub mod version_change_notified {
                use super::runtime_types;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Result = ::core::primitive::u32;
                pub type Cost = runtime_types::staging_xcm::v5::asset::Assets;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VersionChangeNotified {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "VersionChangeNotified";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The supported version of a location has been changed. This might be through an"]
            #[doc = "automatic notification or a manual intervention."]
            pub struct SupportedVersionChanged {
                pub location: supported_version_changed::Location,
                pub version: supported_version_changed::Version,
            }
            pub mod supported_version_changed {
                use super::runtime_types;
                pub type Location = runtime_types::staging_xcm::v5::location::Location;
                pub type Version = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SupportedVersionChanged {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "SupportedVersionChanged";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A given location which had a version change subscription was dropped owing to an error"]
            #[doc = "sending the notification to it."]
            pub struct NotifyTargetSendFail {
                pub location: notify_target_send_fail::Location,
                pub query_id: notify_target_send_fail::QueryId,
                pub error: notify_target_send_fail::Error,
            }
            pub mod notify_target_send_fail {
                use super::runtime_types;
                pub type Location = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
                pub type Error = runtime_types::xcm::v5::traits::Error;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyTargetSendFail {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "NotifyTargetSendFail";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A given location which had a version change subscription was dropped owing to an error"]
            #[doc = "migrating the location to our new XCM format."]
            pub struct NotifyTargetMigrationFail {
                pub location: notify_target_migration_fail::Location,
                pub query_id: notify_target_migration_fail::QueryId,
            }
            pub mod notify_target_migration_fail {
                use super::runtime_types;
                pub type Location = runtime_types::xcm::VersionedLocation;
                pub type QueryId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyTargetMigrationFail {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "NotifyTargetMigrationFail";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Expected query response has been received but the expected querier location placed in"]
            #[doc = "storage by this runtime previously cannot be decoded. The query remains registered."]
            #[doc = ""]
            #[doc = "This is unexpected (since a location placed in storage in a previously executing"]
            #[doc = "runtime should be readable prior to query timeout) and dangerous since the possibly"]
            #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"]
            #[doc = "needed."]
            pub struct InvalidQuerierVersion {
                pub origin: invalid_querier_version::Origin,
                pub query_id: invalid_querier_version::QueryId,
            }
            pub mod invalid_querier_version {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerierVersion {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "InvalidQuerierVersion";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Expected query response has been received but the querier location of the response does"]
            #[doc = "not match the expected. The query remains registered for a later, valid, response to"]
            #[doc = "be received and acted upon."]
            pub struct InvalidQuerier {
                pub origin: invalid_querier::Origin,
                pub query_id: invalid_querier::QueryId,
                pub expected_querier: invalid_querier::ExpectedQuerier,
                pub maybe_actual_querier: invalid_querier::MaybeActualQuerier,
            }
            pub mod invalid_querier {
                use super::runtime_types;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type QueryId = ::core::primitive::u64;
                pub type ExpectedQuerier = runtime_types::staging_xcm::v5::location::Location;
                pub type MaybeActualQuerier =
                    ::core::option::Option<runtime_types::staging_xcm::v5::location::Location>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerier {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "InvalidQuerier";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A remote has requested XCM version change notification from us and we have honored it."]
            #[doc = "A version information message is sent to them and its cost is included."]
            pub struct VersionNotifyStarted {
                pub destination: version_notify_started::Destination,
                pub cost: version_notify_started::Cost,
                pub message_id: version_notify_started::MessageId,
            }
            pub mod version_notify_started {
                use super::runtime_types;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Cost = runtime_types::staging_xcm::v5::asset::Assets;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyStarted {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "VersionNotifyStarted";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "We have requested that a remote chain send us XCM version change notifications."]
            pub struct VersionNotifyRequested {
                pub destination: version_notify_requested::Destination,
                pub cost: version_notify_requested::Cost,
                pub message_id: version_notify_requested::MessageId,
            }
            pub mod version_notify_requested {
                use super::runtime_types;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Cost = runtime_types::staging_xcm::v5::asset::Assets;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyRequested {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "VersionNotifyRequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "We have requested that a remote chain stops sending us XCM version change"]
            #[doc = "notifications."]
            pub struct VersionNotifyUnrequested {
                pub destination: version_notify_unrequested::Destination,
                pub cost: version_notify_unrequested::Cost,
                pub message_id: version_notify_unrequested::MessageId,
            }
            pub mod version_notify_unrequested {
                use super::runtime_types;
                pub type Destination = runtime_types::staging_xcm::v5::location::Location;
                pub type Cost = runtime_types::staging_xcm::v5::asset::Assets;
                pub type MessageId = [::core::primitive::u8; 32usize];
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyUnrequested {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "VersionNotifyUnrequested";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."]
            pub struct FeesPaid {
                pub paying: fees_paid::Paying,
                pub fees: fees_paid::Fees,
            }
            pub mod fees_paid {
                use super::runtime_types;
                pub type Paying = runtime_types::staging_xcm::v5::location::Location;
                pub type Fees = runtime_types::staging_xcm::v5::asset::Assets;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for FeesPaid {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "FeesPaid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some assets have been claimed from an asset trap"]
            pub struct AssetsClaimed {
                pub hash: assets_claimed::Hash,
                pub origin: assets_claimed::Origin,
                pub assets: assets_claimed::Assets,
            }
            pub mod assets_claimed {
                use super::runtime_types;
                pub type Hash = ::subxt::ext::subxt_core::utils::H256;
                pub type Origin = runtime_types::staging_xcm::v5::location::Location;
                pub type Assets = runtime_types::xcm::VersionedAssets;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsClaimed {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "AssetsClaimed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A XCM version migration finished."]
            pub struct VersionMigrationFinished {
                pub version: version_migration_finished::Version,
            }
            pub mod version_migration_finished {
                use super::runtime_types;
                pub type Version = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for VersionMigrationFinished {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "VersionMigrationFinished";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "An `aliaser` location was authorized by `target` to alias it, authorization valid until"]
            #[doc = "`expiry` block number."]
            pub struct AliasAuthorized {
                pub aliaser: alias_authorized::Aliaser,
                pub target: alias_authorized::Target,
                pub expiry: alias_authorized::Expiry,
            }
            pub mod alias_authorized {
                use super::runtime_types;
                pub type Aliaser = runtime_types::staging_xcm::v5::location::Location;
                pub type Target = runtime_types::staging_xcm::v5::location::Location;
                pub type Expiry = ::core::option::Option<::core::primitive::u64>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AliasAuthorized {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "AliasAuthorized";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "`target` removed alias authorization for `aliaser`."]
            pub struct AliasAuthorizationRemoved {
                pub aliaser: alias_authorization_removed::Aliaser,
                pub target: alias_authorization_removed::Target,
            }
            pub mod alias_authorization_removed {
                use super::runtime_types;
                pub type Aliaser = runtime_types::staging_xcm::v5::location::Location;
                pub type Target = runtime_types::staging_xcm::v5::location::Location;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AliasAuthorizationRemoved {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "AliasAuthorizationRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "`target` removed all alias authorizations."]
            pub struct AliasesAuthorizationsRemoved {
                pub target: aliases_authorizations_removed::Target,
            }
            pub mod aliases_authorizations_removed {
                use super::runtime_types;
                pub type Target = runtime_types::staging_xcm::v5::location::Location;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for AliasesAuthorizationsRemoved {
                const PALLET: &'static str = "XcmPallet";
                const EVENT: &'static str = "AliasesAuthorizationsRemoved";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod query_counter {
                    use super::runtime_types;
                    pub type QueryCounter = ::core::primitive::u64;
                }
                pub mod queries {
                    use super::runtime_types;
                    pub type Queries =
                        runtime_types::pallet_xcm::pallet::QueryStatus<::core::primitive::u32>;
                    pub type Param0 = ::core::primitive::u64;
                }
                pub mod asset_traps {
                    use super::runtime_types;
                    pub type AssetTraps = ::core::primitive::u32;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod safe_xcm_version {
                    use super::runtime_types;
                    pub type SafeXcmVersion = ::core::primitive::u32;
                }
                pub mod supported_version {
                    use super::runtime_types;
                    pub type SupportedVersion = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::xcm::VersionedLocation;
                }
                pub mod version_notifiers {
                    use super::runtime_types;
                    pub type VersionNotifiers = ::core::primitive::u64;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::xcm::VersionedLocation;
                }
                pub mod version_notify_targets {
                    use super::runtime_types;
                    pub type VersionNotifyTargets = (
                        ::core::primitive::u64,
                        runtime_types::sp_weights::weight_v2::Weight,
                        ::core::primitive::u32,
                    );
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = runtime_types::xcm::VersionedLocation;
                }
                pub mod version_discovery_queue {
                    use super::runtime_types;
                    pub type VersionDiscoveryQueue =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            runtime_types::xcm::VersionedLocation,
                            ::core::primitive::u32,
                        )>;
                }
                pub mod current_migration {
                    use super::runtime_types;
                    pub type CurrentMigration =
                        runtime_types::pallet_xcm::pallet::VersionMigrationStage;
                }
                pub mod remote_locked_fungibles {
                    use super::runtime_types;
                    pub type RemoteLockedFungibles =
                        runtime_types::pallet_xcm::pallet::RemoteLockedFungibleRecord<()>;
                    pub type Param0 = ::core::primitive::u32;
                    pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32;
                    pub type Param2 = runtime_types::xcm::VersionedAssetId;
                }
                pub mod locked_fungibles {
                    use super::runtime_types;
                    pub type LockedFungibles =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                            ::core::primitive::u128,
                            runtime_types::xcm::VersionedLocation,
                        )>;
                    pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                pub mod xcm_execution_suspended {
                    use super::runtime_types;
                    pub type XcmExecutionSuspended = ::core::primitive::bool;
                }
                pub mod should_record_xcm {
                    use super::runtime_types;
                    pub type ShouldRecordXcm = ::core::primitive::bool;
                }
                pub mod recorded_xcm {
                    use super::runtime_types;
                    pub type RecordedXcm = runtime_types::staging_xcm::v5::Xcm;
                }
                pub mod authorized_aliases {
                    use super::runtime_types;
                    pub type AuthorizedAliases = runtime_types::pallet_xcm::AuthorizedAliasesEntry<
                        runtime_types::frame_support::traits::storage::Disabled,
                        runtime_types::pallet_xcm::pallet::MaxAuthorizedAliases,
                    >;
                    pub type Param0 = runtime_types::xcm::VersionedLocation;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The latest available query index."]
                pub fn query_counter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::query_counter::QueryCounter,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "QueryCounter",
                        (),
                        [
                            216u8, 73u8, 160u8, 232u8, 60u8, 245u8, 218u8, 219u8, 152u8, 68u8,
                            146u8, 219u8, 255u8, 7u8, 86u8, 112u8, 83u8, 49u8, 94u8, 173u8, 64u8,
                            203u8, 147u8, 226u8, 236u8, 39u8, 129u8, 106u8, 209u8, 113u8, 150u8,
                            50u8,
                        ],
                    )
                }
                #[doc = " The ongoing queries."]
                pub fn queries_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::queries::Queries,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "Queries",
                        (),
                        [
                            134u8, 206u8, 252u8, 211u8, 156u8, 173u8, 214u8, 205u8, 17u8, 177u8,
                            139u8, 121u8, 43u8, 29u8, 30u8, 233u8, 210u8, 222u8, 172u8, 171u8,
                            13u8, 223u8, 153u8, 88u8, 43u8, 44u8, 183u8, 253u8, 252u8, 251u8,
                            184u8, 249u8,
                        ],
                    )
                }
                #[doc = " The ongoing queries."]
                pub fn queries(
                    &self,
                    _0: types::queries::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::queries::Param0,
                    >,
                    types::queries::Queries,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "Queries",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            134u8, 206u8, 252u8, 211u8, 156u8, 173u8, 214u8, 205u8, 17u8, 177u8,
                            139u8, 121u8, 43u8, 29u8, 30u8, 233u8, 210u8, 222u8, 172u8, 171u8,
                            13u8, 223u8, 153u8, 88u8, 43u8, 44u8, 183u8, 253u8, 252u8, 251u8,
                            184u8, 249u8,
                        ],
                    )
                }
                #[doc = " The existing asset traps."]
                #[doc = ""]
                #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"]
                #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."]
                pub fn asset_traps_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::asset_traps::AssetTraps,
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "AssetTraps",
                        (),
                        [
                            148u8, 41u8, 254u8, 134u8, 61u8, 172u8, 126u8, 146u8, 78u8, 178u8,
                            50u8, 77u8, 226u8, 8u8, 200u8, 78u8, 77u8, 91u8, 26u8, 133u8, 104u8,
                            126u8, 28u8, 28u8, 202u8, 62u8, 87u8, 183u8, 231u8, 191u8, 5u8, 181u8,
                        ],
                    )
                }
                #[doc = " The existing asset traps."]
                #[doc = ""]
                #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"]
                #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."]
                pub fn asset_traps(
                    &self,
                    _0: types::asset_traps::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::asset_traps::Param0,
                    >,
                    types::asset_traps::AssetTraps,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "AssetTraps",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            148u8, 41u8, 254u8, 134u8, 61u8, 172u8, 126u8, 146u8, 78u8, 178u8,
                            50u8, 77u8, 226u8, 8u8, 200u8, 78u8, 77u8, 91u8, 26u8, 133u8, 104u8,
                            126u8, 28u8, 28u8, 202u8, 62u8, 87u8, 183u8, 231u8, 191u8, 5u8, 181u8,
                        ],
                    )
                }
                #[doc = " Default version to encode XCM when latest version of destination is unknown. If `None`,"]
                #[doc = " then the destinations whose XCM version is unknown are considered unreachable."]
                pub fn safe_xcm_version(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::safe_xcm_version::SafeXcmVersion,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "SafeXcmVersion",
                        (),
                        [
                            187u8, 8u8, 74u8, 126u8, 80u8, 215u8, 177u8, 60u8, 223u8, 123u8, 196u8,
                            155u8, 166u8, 66u8, 25u8, 164u8, 191u8, 66u8, 116u8, 131u8, 116u8,
                            188u8, 224u8, 122u8, 75u8, 195u8, 246u8, 188u8, 83u8, 134u8, 49u8,
                            143u8,
                        ],
                    )
                }
                #[doc = " The Latest versions that we know various locations support."]
                pub fn supported_version_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::supported_version::SupportedVersion,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "SupportedVersion",
                        (),
                        [
                            156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8,
                            125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8,
                            243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8,
                            180u8, 65u8,
                        ],
                    )
                }
                #[doc = " The Latest versions that we know various locations support."]
                pub fn supported_version_iter1(
                    &self,
                    _0: types::supported_version::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::supported_version::Param0,
                    >,
                    types::supported_version::SupportedVersion,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "SupportedVersion",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8,
                            125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8,
                            243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8,
                            180u8, 65u8,
                        ],
                    )
                }
                #[doc = " The Latest versions that we know various locations support."]
                pub fn supported_version(
                    &self,
                    _0: types::supported_version::Param0,
                    _1: types::supported_version::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::supported_version::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::supported_version::Param1,
                        >,
                    ),
                    types::supported_version::SupportedVersion,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "SupportedVersion",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8,
                            125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8,
                            243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8,
                            180u8, 65u8,
                        ],
                    )
                }
                #[doc = " All locations that we have requested version notifications from."]
                pub fn version_notifiers_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::version_notifiers::VersionNotifiers,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifiers",
                        (),
                        [
                            216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8,
                            114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8,
                            150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8,
                        ],
                    )
                }
                #[doc = " All locations that we have requested version notifications from."]
                pub fn version_notifiers_iter1(
                    &self,
                    _0: types::version_notifiers::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::version_notifiers::Param0,
                    >,
                    types::version_notifiers::VersionNotifiers,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifiers",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8,
                            114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8,
                            150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8,
                        ],
                    )
                }
                #[doc = " All locations that we have requested version notifications from."]
                pub fn version_notifiers(
                    &self,
                    _0: types::version_notifiers::Param0,
                    _1: types::version_notifiers::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::version_notifiers::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::version_notifiers::Param1,
                        >,
                    ),
                    types::version_notifiers::VersionNotifiers,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifiers",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8,
                            114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8,
                            150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8,
                        ],
                    )
                }
                #[doc = " The target locations that are subscribed to our version changes, as well as the most recent"]
                #[doc = " of our versions we informed them of."]
                pub fn version_notify_targets_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::version_notify_targets::VersionNotifyTargets,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifyTargets",
                        (),
                        [
                            166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8,
                            180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8,
                            151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8,
                        ],
                    )
                }
                #[doc = " The target locations that are subscribed to our version changes, as well as the most recent"]
                #[doc = " of our versions we informed them of."]
                pub fn version_notify_targets_iter1(
                    &self,
                    _0: types::version_notify_targets::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::version_notify_targets::Param0,
                    >,
                    types::version_notify_targets::VersionNotifyTargets,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifyTargets",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8,
                            180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8,
                            151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8,
                        ],
                    )
                }
                #[doc = " The target locations that are subscribed to our version changes, as well as the most recent"]
                #[doc = " of our versions we informed them of."]
                pub fn version_notify_targets(
                    &self,
                    _0: types::version_notify_targets::Param0,
                    _1: types::version_notify_targets::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::version_notify_targets::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::version_notify_targets::Param1,
                        >,
                    ),
                    types::version_notify_targets::VersionNotifyTargets,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionNotifyTargets",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8,
                            180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8,
                            151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8,
                        ],
                    )
                }
                #[doc = " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and"]
                #[doc = " the `u32` counter is the number of times that a send to the destination has been attempted,"]
                #[doc = " which is used as a prioritization."]
                pub fn version_discovery_queue(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::version_discovery_queue::VersionDiscoveryQueue,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "VersionDiscoveryQueue",
                        (),
                        [
                            206u8, 152u8, 58u8, 105u8, 70u8, 142u8, 210u8, 246u8, 107u8, 8u8,
                            190u8, 195u8, 255u8, 27u8, 199u8, 241u8, 221u8, 238u8, 61u8, 92u8,
                            245u8, 162u8, 151u8, 234u8, 151u8, 6u8, 216u8, 115u8, 214u8, 138u8,
                            8u8, 27u8,
                        ],
                    )
                }
                #[doc = " The current migration's stage, if any."]
                pub fn current_migration(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::current_migration::CurrentMigration,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "CurrentMigration",
                        (),
                        [
                            74u8, 138u8, 181u8, 162u8, 59u8, 251u8, 37u8, 28u8, 232u8, 51u8, 30u8,
                            152u8, 252u8, 133u8, 95u8, 195u8, 47u8, 127u8, 21u8, 44u8, 62u8, 143u8,
                            170u8, 234u8, 160u8, 37u8, 131u8, 179u8, 57u8, 241u8, 140u8, 124u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on a remote chain."]
                pub fn remote_locked_fungibles_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::remote_locked_fungibles::RemoteLockedFungibles,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "RemoteLockedFungibles",
                        (),
                        [
                            166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8,
                            155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8,
                            185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8,
                            11u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on a remote chain."]
                pub fn remote_locked_fungibles_iter1(
                    &self,
                    _0: types::remote_locked_fungibles::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::remote_locked_fungibles::Param0,
                    >,
                    types::remote_locked_fungibles::RemoteLockedFungibles,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "RemoteLockedFungibles",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8,
                            155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8,
                            185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8,
                            11u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on a remote chain."]
                pub fn remote_locked_fungibles_iter2(
                    &self,
                    _0: types::remote_locked_fungibles::Param0,
                    _1: types::remote_locked_fungibles::Param1,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::remote_locked_fungibles::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::remote_locked_fungibles::Param1,
                        >,
                    ),
                    types::remote_locked_fungibles::RemoteLockedFungibles,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "RemoteLockedFungibles",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                        ),
                        [
                            166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8,
                            155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8,
                            185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8,
                            11u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on a remote chain."]
                pub fn remote_locked_fungibles(
                    &self,
                    _0: types::remote_locked_fungibles::Param0,
                    _1: types::remote_locked_fungibles::Param1,
                    _2: types::remote_locked_fungibles::Param2,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::remote_locked_fungibles::Param0,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::remote_locked_fungibles::Param1,
                        >,
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                            types::remote_locked_fungibles::Param2,
                        >,
                    ),
                    types::remote_locked_fungibles::RemoteLockedFungibles,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "RemoteLockedFungibles",
                        (
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_1),
                            ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_2),
                        ),
                        [
                            166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8,
                            155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8,
                            185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8,
                            11u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on this chain."]
                pub fn locked_fungibles_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::locked_fungibles::LockedFungibles,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "LockedFungibles",
                        (),
                        [
                            112u8, 157u8, 87u8, 224u8, 37u8, 77u8, 11u8, 17u8, 173u8, 230u8, 168u8,
                            230u8, 33u8, 8u8, 209u8, 110u8, 182u8, 34u8, 118u8, 28u8, 15u8, 14u8,
                            185u8, 50u8, 16u8, 52u8, 90u8, 125u8, 46u8, 20u8, 120u8, 136u8,
                        ],
                    )
                }
                #[doc = " Fungible assets which we know are locked on this chain."]
                pub fn locked_fungibles(
                    &self,
                    _0: types::locked_fungibles::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::locked_fungibles::Param0,
                    >,
                    types::locked_fungibles::LockedFungibles,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "LockedFungibles",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            112u8, 157u8, 87u8, 224u8, 37u8, 77u8, 11u8, 17u8, 173u8, 230u8, 168u8,
                            230u8, 33u8, 8u8, 209u8, 110u8, 182u8, 34u8, 118u8, 28u8, 15u8, 14u8,
                            185u8, 50u8, 16u8, 52u8, 90u8, 125u8, 46u8, 20u8, 120u8, 136u8,
                        ],
                    )
                }
                #[doc = " Global suspension state of the XCM executor."]
                pub fn xcm_execution_suspended(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::xcm_execution_suspended::XcmExecutionSuspended,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "XcmExecutionSuspended",
                        (),
                        [
                            182u8, 54u8, 69u8, 68u8, 78u8, 76u8, 103u8, 79u8, 47u8, 136u8, 99u8,
                            104u8, 128u8, 129u8, 249u8, 54u8, 214u8, 136u8, 97u8, 48u8, 178u8,
                            42u8, 26u8, 27u8, 82u8, 24u8, 33u8, 77u8, 33u8, 27u8, 20u8, 127u8,
                        ],
                    )
                }
                #[doc = " Whether or not incoming XCMs (both executed locally and received) should be recorded."]
                #[doc = " Only one XCM program will be recorded at a time."]
                #[doc = " This is meant to be used in runtime APIs, and it's advised it stays false"]
                #[doc = " for all other use cases, so as to not degrade regular performance."]
                #[doc = ""]
                #[doc = " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]"]
                #[doc = " implementation in the XCM executor configuration."]
                pub fn should_record_xcm(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::should_record_xcm::ShouldRecordXcm,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "ShouldRecordXcm",
                        (),
                        [
                            77u8, 184u8, 154u8, 92u8, 185u8, 225u8, 131u8, 210u8, 55u8, 115u8, 3u8,
                            182u8, 191u8, 132u8, 51u8, 136u8, 42u8, 136u8, 54u8, 36u8, 229u8,
                            229u8, 47u8, 88u8, 4u8, 175u8, 136u8, 78u8, 226u8, 253u8, 13u8, 178u8,
                        ],
                    )
                }
                #[doc = " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally"]
                #[doc = " will be stored here."]
                #[doc = " Runtime APIs can fetch the XCM that was executed by accessing this value."]
                #[doc = ""]
                #[doc = " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]"]
                #[doc = " implementation in the XCM executor configuration."]
                pub fn recorded_xcm(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::recorded_xcm::RecordedXcm,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "RecordedXcm",
                        (),
                        [
                            21u8, 172u8, 234u8, 160u8, 115u8, 240u8, 135u8, 8u8, 11u8, 62u8, 121u8,
                            113u8, 13u8, 164u8, 179u8, 0u8, 139u8, 216u8, 216u8, 236u8, 135u8,
                            116u8, 200u8, 199u8, 199u8, 249u8, 211u8, 0u8, 4u8, 86u8, 187u8, 198u8,
                        ],
                    )
                }
                #[doc = " Map of authorized aliasers of local origins. Each local location can authorize a list of"]
                #[doc = " other locations to alias into it. Each aliaser is only valid until its inner `expiry`"]
                #[doc = " block number."]
                pub fn authorized_aliases_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorized_aliases::AuthorizedAliases,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "AuthorizedAliases",
                        (),
                        [
                            240u8, 28u8, 155u8, 219u8, 136u8, 114u8, 250u8, 219u8, 149u8, 37u8,
                            248u8, 248u8, 115u8, 12u8, 249u8, 220u8, 104u8, 132u8, 84u8, 29u8, 4u8,
                            70u8, 254u8, 69u8, 2u8, 16u8, 147u8, 58u8, 253u8, 171u8, 226u8, 48u8,
                        ],
                    )
                }
                #[doc = " Map of authorized aliasers of local origins. Each local location can authorize a list of"]
                #[doc = " other locations to alias into it. Each aliaser is only valid until its inner `expiry`"]
                #[doc = " block number."]
                pub fn authorized_aliases(
                    &self,
                    _0: types::authorized_aliases::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::authorized_aliases::Param0,
                    >,
                    types::authorized_aliases::AuthorizedAliases,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "XcmPallet",
                        "AuthorizedAliases",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            240u8, 28u8, 155u8, 219u8, 136u8, 114u8, 250u8, 219u8, 149u8, 37u8,
                            248u8, 248u8, 115u8, 12u8, 249u8, 220u8, 104u8, 132u8, 84u8, 29u8, 4u8,
                            70u8, 254u8, 69u8, 2u8, 16u8, 147u8, 58u8, 253u8, 171u8, 226u8, 48u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The latest supported version that we advertise. Generally just set it to"]
                #[doc = " `pallet_xcm::CurrentXcmVersion`."]
                pub fn advertised_xcm_version(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "XcmPallet",
                        "AdvertisedXcmVersion",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod beefy {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_beefy::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_beefy::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                pub struct ReportDoubleVoting {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_double_voting::EquivocationProof,
                    >,
                    pub key_owner_proof: report_double_voting::KeyOwnerProof,
                }
                pub mod report_double_voting {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::DoubleVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDoubleVoting {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_double_voting";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub struct ReportDoubleVotingUnsigned {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_double_voting_unsigned::EquivocationProof,
                    >,
                    pub key_owner_proof: report_double_voting_unsigned::KeyOwnerProof,
                }
                pub mod report_double_voting_unsigned {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::DoubleVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDoubleVotingUnsigned {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_double_voting_unsigned";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"]
                #[doc = "future."]
                #[doc = ""]
                #[doc = "Note: `delay_in_blocks` has to be at least 1."]
                pub struct SetNewGenesis {
                    pub delay_in_blocks: set_new_genesis::DelayInBlocks,
                }
                pub mod set_new_genesis {
                    use super::runtime_types;
                    pub type DelayInBlocks = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNewGenesis {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "set_new_genesis";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                pub struct ReportForkVoting {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_fork_voting::EquivocationProof,
                    >,
                    pub key_owner_proof: report_fork_voting::KeyOwnerProof,
                }
                pub mod report_fork_voting {
                    use super::runtime_types;
                    pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof<
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>,
                        runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        runtime_types::sp_mmr_primitives::AncestryProof<
                            ::subxt::ext::subxt_core::utils::H256,
                        >,
                    >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportForkVoting {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_fork_voting";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub struct ReportForkVotingUnsigned {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_fork_voting_unsigned::EquivocationProof,
                    >,
                    pub key_owner_proof: report_fork_voting_unsigned::KeyOwnerProof,
                }
                pub mod report_fork_voting_unsigned {
                    use super::runtime_types;
                    pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof<
                        runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>,
                        runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        runtime_types::sp_mmr_primitives::AncestryProof<
                            ::subxt::ext::subxt_core::utils::H256,
                        >,
                    >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportForkVotingUnsigned {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_fork_voting_unsigned";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                pub struct ReportFutureBlockVoting {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_future_block_voting::EquivocationProof,
                    >,
                    pub key_owner_proof: report_future_block_voting::KeyOwnerProof,
                }
                pub mod report_future_block_voting {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::FutureBlockVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportFutureBlockVoting {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_future_block_voting";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub struct ReportFutureBlockVotingUnsigned {
                    pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                        report_future_block_voting_unsigned::EquivocationProof,
                    >,
                    pub key_owner_proof: report_future_block_voting_unsigned::KeyOwnerProof,
                }
                pub mod report_future_block_voting_unsigned {
                    use super::runtime_types;
                    pub type EquivocationProof =
                        runtime_types::sp_consensus_beefy::FutureBlockVotingProof<
                            ::core::primitive::u32,
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        >;
                    pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportFutureBlockVotingUnsigned {
                    const PALLET: &'static str = "Beefy";
                    const CALL: &'static str = "report_future_block_voting_unsigned";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                pub fn report_double_voting(
                    &self,
                    equivocation_proof: types::report_double_voting::EquivocationProof,
                    key_owner_proof: types::report_double_voting::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReportDoubleVoting>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_double_voting",
                        types::ReportDoubleVoting {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            191u8, 103u8, 205u8, 53u8, 2u8, 139u8, 97u8, 160u8, 39u8, 60u8, 235u8,
                            187u8, 152u8, 245u8, 107u8, 55u8, 254u8, 113u8, 243u8, 116u8, 173u8,
                            138u8, 229u8, 141u8, 9u8, 14u8, 113u8, 35u8, 47u8, 56u8, 34u8, 211u8,
                        ],
                    )
                }
                #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                #[doc = "equivocation proof and validate the given key ownership proof"]
                #[doc = "against the extracted offender. If both are valid, the offence"]
                #[doc = "will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub fn report_double_voting_unsigned(
                    &self,
                    equivocation_proof: types::report_double_voting_unsigned::EquivocationProof,
                    key_owner_proof: types::report_double_voting_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportDoubleVotingUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_double_voting_unsigned",
                        types::ReportDoubleVotingUnsigned {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            160u8, 71u8, 106u8, 163u8, 14u8, 55u8, 54u8, 11u8, 239u8, 189u8, 185u8,
                            175u8, 229u8, 60u8, 58u8, 164u8, 213u8, 195u8, 135u8, 216u8, 244u8,
                            44u8, 23u8, 22u8, 67u8, 236u8, 253u8, 154u8, 170u8, 40u8, 46u8, 201u8,
                        ],
                    )
                }
                #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"]
                #[doc = "future."]
                #[doc = ""]
                #[doc = "Note: `delay_in_blocks` has to be at least 1."]
                pub fn set_new_genesis(
                    &self,
                    delay_in_blocks: types::set_new_genesis::DelayInBlocks,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetNewGenesis>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "set_new_genesis",
                        types::SetNewGenesis { delay_in_blocks },
                        [
                            147u8, 6u8, 252u8, 43u8, 77u8, 91u8, 170u8, 45u8, 112u8, 155u8, 158u8,
                            79u8, 1u8, 116u8, 162u8, 146u8, 181u8, 9u8, 171u8, 48u8, 198u8, 210u8,
                            243u8, 64u8, 229u8, 35u8, 28u8, 177u8, 144u8, 22u8, 165u8, 163u8,
                        ],
                    )
                }
                #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                pub fn report_fork_voting(
                    &self,
                    equivocation_proof: types::report_fork_voting::EquivocationProof,
                    key_owner_proof: types::report_fork_voting::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReportForkVoting>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_fork_voting",
                        types::ReportForkVoting {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            103u8, 233u8, 45u8, 138u8, 239u8, 186u8, 23u8, 196u8, 43u8, 210u8,
                            208u8, 15u8, 198u8, 49u8, 171u8, 183u8, 142u8, 163u8, 253u8, 226u8,
                            207u8, 106u8, 84u8, 184u8, 12u8, 130u8, 78u8, 114u8, 195u8, 249u8,
                            81u8, 84u8,
                        ],
                    )
                }
                #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub fn report_fork_voting_unsigned(
                    &self,
                    equivocation_proof: types::report_fork_voting_unsigned::EquivocationProof,
                    key_owner_proof: types::report_fork_voting_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportForkVotingUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_fork_voting_unsigned",
                        types::ReportForkVotingUnsigned {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            211u8, 251u8, 231u8, 187u8, 27u8, 149u8, 165u8, 149u8, 133u8, 206u8,
                            161u8, 106u8, 127u8, 114u8, 11u8, 99u8, 115u8, 165u8, 75u8, 25u8, 58u8,
                            10u8, 100u8, 20u8, 27u8, 215u8, 53u8, 91u8, 180u8, 234u8, 146u8, 173u8,
                        ],
                    )
                }
                #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                pub fn report_future_block_voting(
                    &self,
                    equivocation_proof: types::report_future_block_voting::EquivocationProof,
                    key_owner_proof: types::report_future_block_voting::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportFutureBlockVoting,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_future_block_voting",
                        types::ReportFutureBlockVoting {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            120u8, 166u8, 30u8, 87u8, 193u8, 115u8, 177u8, 199u8, 41u8, 88u8,
                            241u8, 216u8, 207u8, 172u8, 220u8, 224u8, 39u8, 59u8, 233u8, 52u8,
                            124u8, 180u8, 214u8, 243u8, 202u8, 101u8, 159u8, 95u8, 38u8, 141u8,
                            177u8, 178u8,
                        ],
                    )
                }
                #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                #[doc = "and validate the given key ownership proof against the extracted offender."]
                #[doc = "If both are valid, the offence will be reported."]
                #[doc = ""]
                #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                #[doc = "if the block author is defined it will be defined as the equivocation"]
                #[doc = "reporter."]
                pub fn report_future_block_voting_unsigned(
                    &self,
                    equivocation_proof : types :: report_future_block_voting_unsigned :: EquivocationProof,
                    key_owner_proof: types::report_future_block_voting_unsigned::KeyOwnerProof,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::ReportFutureBlockVotingUnsigned,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Beefy",
                        "report_future_block_voting_unsigned",
                        types::ReportFutureBlockVotingUnsigned {
                            equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new(
                                equivocation_proof,
                            ),
                            key_owner_proof,
                        },
                        [
                            138u8, 158u8, 33u8, 65u8, 55u8, 98u8, 124u8, 63u8, 104u8, 90u8, 211u8,
                            249u8, 40u8, 126u8, 37u8, 101u8, 210u8, 168u8, 56u8, 209u8, 20u8, 26u8,
                            166u8, 55u8, 4u8, 207u8, 49u8, 70u8, 110u8, 210u8, 239u8, 74u8,
                        ],
                    )
                }
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod authorities {
                    use super::runtime_types;
                    pub type Authorities =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        >;
                }
                pub mod validator_set_id {
                    use super::runtime_types;
                    pub type ValidatorSetId = ::core::primitive::u64;
                }
                pub mod next_authorities {
                    use super::runtime_types;
                    pub type NextAuthorities =
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                        >;
                }
                pub mod set_id_session {
                    use super::runtime_types;
                    pub type SetIdSession = ::core::primitive::u32;
                    pub type Param0 = ::core::primitive::u64;
                }
                pub mod genesis_block {
                    use super::runtime_types;
                    pub type GenesisBlock = ::core::option::Option<::core::primitive::u32>;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The current authorities set"]
                pub fn authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::authorities::Authorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "Authorities",
                        (),
                        [
                            135u8, 146u8, 24u8, 144u8, 245u8, 251u8, 253u8, 63u8, 44u8, 46u8, 72u8,
                            115u8, 190u8, 93u8, 201u8, 244u8, 80u8, 80u8, 156u8, 171u8, 69u8,
                            126u8, 67u8, 51u8, 196u8, 136u8, 93u8, 176u8, 111u8, 247u8, 19u8,
                            161u8,
                        ],
                    )
                }
                #[doc = " The current validator set id"]
                pub fn validator_set_id(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validator_set_id::ValidatorSetId,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "ValidatorSetId",
                        (),
                        [
                            168u8, 84u8, 23u8, 134u8, 153u8, 30u8, 183u8, 176u8, 206u8, 100u8,
                            109u8, 86u8, 109u8, 126u8, 146u8, 175u8, 173u8, 1u8, 253u8, 42u8,
                            122u8, 207u8, 71u8, 4u8, 145u8, 83u8, 148u8, 29u8, 243u8, 52u8, 29u8,
                            78u8,
                        ],
                    )
                }
                #[doc = " Authorities set scheduled to be used with the next session"]
                pub fn next_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::next_authorities::NextAuthorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "NextAuthorities",
                        (),
                        [
                            183u8, 185u8, 111u8, 92u8, 70u8, 221u8, 225u8, 184u8, 218u8, 97u8,
                            108u8, 66u8, 60u8, 148u8, 40u8, 73u8, 236u8, 28u8, 169u8, 32u8, 202u8,
                            125u8, 238u8, 246u8, 210u8, 51u8, 25u8, 61u8, 220u8, 195u8, 156u8,
                            217u8,
                        ],
                    )
                }
                #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"]
                #[doc = " members were responsible."]
                #[doc = ""]
                #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"]
                #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"]
                #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"]
                #[doc = " was the owner of a given key on a given session, and what the active set ID was"]
                #[doc = " during that session."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."]
                pub fn set_id_session_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::set_id_session::SetIdSession,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "SetIdSession",
                        (),
                        [
                            47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8,
                            65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8,
                            238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8,
                        ],
                    )
                }
                #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"]
                #[doc = " members were responsible."]
                #[doc = ""]
                #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"]
                #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"]
                #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"]
                #[doc = " was the owner of a given key on a given session, and what the active set ID was"]
                #[doc = " during that session."]
                #[doc = ""]
                #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."]
                pub fn set_id_session(
                    &self,
                    _0: types::set_id_session::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::set_id_session::Param0,
                    >,
                    types::set_id_session::SetIdSession,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "SetIdSession",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8,
                            65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8,
                            238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8,
                        ],
                    )
                }
                #[doc = " Block number where BEEFY consensus is enabled/started."]
                #[doc = " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively"]
                #[doc = " restarted from the newly set block number."]
                pub fn genesis_block(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::genesis_block::GenesisBlock,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Beefy",
                        "GenesisBlock",
                        (),
                        [
                            198u8, 155u8, 11u8, 240u8, 189u8, 245u8, 159u8, 127u8, 55u8, 33u8,
                            48u8, 29u8, 209u8, 119u8, 163u8, 24u8, 28u8, 22u8, 163u8, 163u8, 124u8,
                            88u8, 126u8, 4u8, 193u8, 158u8, 29u8, 243u8, 212u8, 4u8, 41u8, 22u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The maximum number of authorities that can be added."]
                pub fn max_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Beefy",
                        "MaxAuthorities",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of nominators for each validator."]
                pub fn max_nominators(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Beefy",
                        "MaxNominators",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The maximum number of entries to keep in the set id to session index mapping."]
                #[doc = ""]
                #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"]
                #[doc = " value should relate to the bonding duration of whatever staking system is"]
                #[doc = " being used (if any). If equivocation handling is not enabled then this value"]
                #[doc = " can be zero."]
                pub fn max_set_id_session_entries(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u64,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "Beefy",
                        "MaxSetIdSessionEntries",
                        [
                            128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8,
                            59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8,
                            103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8,
                            246u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod mmr {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod root_hash {
                    use super::runtime_types;
                    pub type RootHash = ::subxt::ext::subxt_core::utils::H256;
                }
                pub mod number_of_leaves {
                    use super::runtime_types;
                    pub type NumberOfLeaves = ::core::primitive::u64;
                }
                pub mod nodes {
                    use super::runtime_types;
                    pub type Nodes = ::subxt::ext::subxt_core::utils::H256;
                    pub type Param0 = ::core::primitive::u64;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Latest MMR Root hash."]
                pub fn root_hash(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::root_hash::RootHash,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Mmr",
                        "RootHash",
                        (),
                        [
                            111u8, 206u8, 173u8, 92u8, 67u8, 49u8, 150u8, 113u8, 90u8, 245u8, 38u8,
                            254u8, 76u8, 250u8, 167u8, 66u8, 130u8, 129u8, 251u8, 220u8, 172u8,
                            229u8, 162u8, 251u8, 36u8, 227u8, 43u8, 189u8, 7u8, 106u8, 23u8, 13u8,
                        ],
                    )
                }
                #[doc = " Current size of the MMR (number of leaves)."]
                pub fn number_of_leaves(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::number_of_leaves::NumberOfLeaves,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Mmr",
                        "NumberOfLeaves",
                        (),
                        [
                            123u8, 58u8, 149u8, 174u8, 85u8, 45u8, 20u8, 115u8, 241u8, 0u8, 51u8,
                            174u8, 234u8, 60u8, 230u8, 59u8, 237u8, 144u8, 170u8, 32u8, 4u8, 0u8,
                            34u8, 163u8, 238u8, 205u8, 93u8, 208u8, 53u8, 38u8, 141u8, 195u8,
                        ],
                    )
                }
                #[doc = " Hashes of the nodes in the MMR."]
                #[doc = ""]
                #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"]
                #[doc = " are pruned and only stored in the Offchain DB."]
                pub fn nodes_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::nodes::Nodes,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Mmr",
                        "Nodes",
                        (),
                        [
                            27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8,
                            206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8,
                            249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8,
                        ],
                    )
                }
                #[doc = " Hashes of the nodes in the MMR."]
                #[doc = ""]
                #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"]
                #[doc = " are pruned and only stored in the Offchain DB."]
                pub fn nodes(
                    &self,
                    _0: types::nodes::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::nodes::Param0,
                    >,
                    types::nodes::Nodes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Mmr",
                        "Nodes",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8,
                            206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8,
                            249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod mmr_leaf {
        use super::root_mod;
        use super::runtime_types;
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod beefy_authorities {
                    use super::runtime_types;
                    pub type BeefyAuthorities =
                        runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet<
                            ::subxt::ext::subxt_core::utils::H256,
                        >;
                }
                pub mod beefy_next_authorities {
                    use super::runtime_types;
                    pub type BeefyNextAuthorities =
                        runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet<
                            ::subxt::ext::subxt_core::utils::H256,
                        >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Details of current BEEFY authority set."]
                pub fn beefy_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::beefy_authorities::BeefyAuthorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MmrLeaf",
                        "BeefyAuthorities",
                        (),
                        [
                            128u8, 35u8, 176u8, 79u8, 224u8, 58u8, 214u8, 234u8, 231u8, 71u8,
                            227u8, 153u8, 180u8, 189u8, 66u8, 44u8, 47u8, 174u8, 0u8, 83u8, 121u8,
                            182u8, 226u8, 44u8, 224u8, 173u8, 237u8, 102u8, 231u8, 146u8, 110u8,
                            7u8,
                        ],
                    )
                }
                #[doc = " Details of next BEEFY authority set."]
                #[doc = ""]
                #[doc = " This storage entry is used as cache for calls to `update_beefy_next_authority_set`."]
                pub fn beefy_next_authorities(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::beefy_next_authorities::BeefyNextAuthorities,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "MmrLeaf",
                        "BeefyNextAuthorities",
                        (),
                        [
                            97u8, 71u8, 52u8, 111u8, 120u8, 251u8, 183u8, 155u8, 177u8, 100u8,
                            236u8, 142u8, 204u8, 117u8, 95u8, 40u8, 201u8, 36u8, 32u8, 82u8, 38u8,
                            234u8, 135u8, 39u8, 224u8, 69u8, 94u8, 85u8, 12u8, 89u8, 97u8, 218u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod identity_migrator {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"]
                #[doc = "deposits held and removing storage items associated with `who`."]
                pub struct ReapIdentity {
                    pub who: reap_identity::Who,
                }
                pub mod reap_identity {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReapIdentity {
                    const PALLET: &'static str = "IdentityMigrator";
                    const CALL: &'static str = "reap_identity";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"]
                #[doc = "Instruction."]
                pub struct PokeDeposit {
                    pub who: poke_deposit::Who,
                }
                pub mod poke_deposit {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit {
                    const PALLET: &'static str = "IdentityMigrator";
                    const CALL: &'static str = "poke_deposit";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"]
                #[doc = "deposits held and removing storage items associated with `who`."]
                pub fn reap_identity(
                    &self,
                    who: types::reap_identity::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ReapIdentity>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "IdentityMigrator",
                        "reap_identity",
                        types::ReapIdentity { who },
                        [
                            187u8, 110u8, 202u8, 220u8, 54u8, 240u8, 242u8, 171u8, 5u8, 83u8,
                            129u8, 93u8, 213u8, 208u8, 21u8, 236u8, 121u8, 128u8, 127u8, 121u8,
                            153u8, 118u8, 232u8, 44u8, 20u8, 124u8, 214u8, 185u8, 249u8, 182u8,
                            136u8, 96u8,
                        ],
                    )
                }
                #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"]
                #[doc = "Instruction."]
                pub fn poke_deposit(
                    &self,
                    who: types::poke_deposit::Who,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::PokeDeposit>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "IdentityMigrator",
                        "poke_deposit",
                        types::PokeDeposit { who },
                        [
                            42u8, 67u8, 168u8, 124u8, 75u8, 32u8, 143u8, 173u8, 14u8, 28u8, 76u8,
                            35u8, 196u8, 255u8, 250u8, 33u8, 128u8, 159u8, 132u8, 124u8, 51u8,
                            243u8, 166u8, 55u8, 208u8, 101u8, 188u8, 133u8, 36u8, 18u8, 119u8,
                            146u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The identity and all sub accounts were reaped for `who`."]
            pub struct IdentityReaped {
                pub who: identity_reaped::Who,
            }
            pub mod identity_reaped {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for IdentityReaped {
                const PALLET: &'static str = "IdentityMigrator";
                const EVENT: &'static str = "IdentityReaped";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"]
            #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."]
            pub struct DepositUpdated {
                pub who: deposit_updated::Who,
                pub identity: deposit_updated::Identity,
                pub subs: deposit_updated::Subs,
            }
            pub mod deposit_updated {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Identity = ::core::primitive::u128;
                pub type Subs = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for DepositUpdated {
                const PALLET: &'static str = "IdentityMigrator";
                const EVENT: &'static str = "DepositUpdated";
            }
        }
    }
    pub mod paras_sudo_wrapper {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule a para to be initialized at the start of the next session."]
                #[doc = ""]
                #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"]
                #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"]
                #[doc = "running coretime chain required."]
                pub struct SudoScheduleParaInitialize {
                    pub id: sudo_schedule_para_initialize::Id,
                    pub genesis: sudo_schedule_para_initialize::Genesis,
                }
                pub mod sudo_schedule_para_initialize {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Genesis =
                        runtime_types::polkadot_runtime_parachains::paras::ParaGenesisArgs;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoScheduleParaInitialize {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_schedule_para_initialize";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Schedule a para to be cleaned up at the start of the next session."]
                pub struct SudoScheduleParaCleanup {
                    pub id: sudo_schedule_para_cleanup::Id,
                }
                pub mod sudo_schedule_para_cleanup {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoScheduleParaCleanup {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_schedule_para_cleanup";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"]
                pub struct SudoScheduleParathreadUpgrade {
                    pub id: sudo_schedule_parathread_upgrade::Id,
                }
                pub mod sudo_schedule_parathread_upgrade {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoScheduleParathreadUpgrade {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_schedule_parathread_upgrade";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Downgrade a lease holding parachain to an on-demand parachain"]
                pub struct SudoScheduleParachainDowngrade {
                    pub id: sudo_schedule_parachain_downgrade::Id,
                }
                pub mod sudo_schedule_parachain_downgrade {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoScheduleParachainDowngrade {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_schedule_parachain_downgrade";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Send a downward XCM to the given para."]
                #[doc = ""]
                #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"]
                #[doc = "size `config.max_downward_message_size`."]
                pub struct SudoQueueDownwardXcm {
                    pub id: sudo_queue_downward_xcm::Id,
                    pub xcm:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<sudo_queue_downward_xcm::Xcm>,
                }
                pub mod sudo_queue_downward_xcm {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Xcm = runtime_types::xcm::VersionedXcm;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoQueueDownwardXcm {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_queue_downward_xcm";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Forcefully establish a channel from the sender to the recipient."]
                #[doc = ""]
                #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"]
                #[doc = "`Hrmp::hrmp_accept_open_channel`."]
                pub struct SudoEstablishHrmpChannel {
                    pub sender: sudo_establish_hrmp_channel::Sender,
                    pub recipient: sudo_establish_hrmp_channel::Recipient,
                    pub max_capacity: sudo_establish_hrmp_channel::MaxCapacity,
                    pub max_message_size: sudo_establish_hrmp_channel::MaxMessageSize,
                }
                pub mod sudo_establish_hrmp_channel {
                    use super::runtime_types;
                    pub type Sender = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type Recipient =
                        runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type MaxCapacity = ::core::primitive::u32;
                    pub type MaxMessageSize = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoEstablishHrmpChannel {
                    const PALLET: &'static str = "ParasSudoWrapper";
                    const CALL: &'static str = "sudo_establish_hrmp_channel";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Schedule a para to be initialized at the start of the next session."]
                #[doc = ""]
                #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"]
                #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"]
                #[doc = "running coretime chain required."]
                pub fn sudo_schedule_para_initialize(
                    &self,
                    id: types::sudo_schedule_para_initialize::Id,
                    genesis: types::sudo_schedule_para_initialize::Genesis,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SudoScheduleParaInitialize,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_schedule_para_initialize",
                        types::SudoScheduleParaInitialize { id, genesis },
                        [
                            91u8, 145u8, 184u8, 83u8, 85u8, 168u8, 43u8, 14u8, 18u8, 86u8, 4u8,
                            120u8, 148u8, 107u8, 139u8, 46u8, 145u8, 126u8, 255u8, 61u8, 83u8,
                            140u8, 63u8, 233u8, 0u8, 47u8, 227u8, 194u8, 99u8, 7u8, 61u8, 15u8,
                        ],
                    )
                }
                #[doc = "Schedule a para to be cleaned up at the start of the next session."]
                pub fn sudo_schedule_para_cleanup(
                    &self,
                    id: types::sudo_schedule_para_cleanup::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SudoScheduleParaCleanup,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_schedule_para_cleanup",
                        types::SudoScheduleParaCleanup { id },
                        [
                            148u8, 0u8, 73u8, 32u8, 33u8, 214u8, 92u8, 82u8, 146u8, 97u8, 39u8,
                            220u8, 147u8, 148u8, 83u8, 200u8, 36u8, 197u8, 231u8, 246u8, 159u8,
                            175u8, 195u8, 46u8, 68u8, 230u8, 16u8, 240u8, 108u8, 132u8, 0u8, 188u8,
                        ],
                    )
                }
                #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"]
                pub fn sudo_schedule_parathread_upgrade(
                    &self,
                    id: types::sudo_schedule_parathread_upgrade::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SudoScheduleParathreadUpgrade,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_schedule_parathread_upgrade",
                        types::SudoScheduleParathreadUpgrade { id },
                        [
                            244u8, 142u8, 128u8, 182u8, 130u8, 88u8, 113u8, 34u8, 92u8, 224u8,
                            244u8, 155u8, 83u8, 212u8, 68u8, 87u8, 156u8, 80u8, 26u8, 23u8, 245u8,
                            197u8, 167u8, 204u8, 14u8, 198u8, 70u8, 93u8, 227u8, 159u8, 159u8,
                            88u8,
                        ],
                    )
                }
                #[doc = "Downgrade a lease holding parachain to an on-demand parachain"]
                pub fn sudo_schedule_parachain_downgrade(
                    &self,
                    id: types::sudo_schedule_parachain_downgrade::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SudoScheduleParachainDowngrade,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_schedule_parachain_downgrade",
                        types::SudoScheduleParachainDowngrade { id },
                        [
                            152u8, 217u8, 14u8, 138u8, 136u8, 85u8, 79u8, 255u8, 220u8, 85u8,
                            248u8, 12u8, 186u8, 250u8, 206u8, 152u8, 115u8, 92u8, 143u8, 8u8,
                            171u8, 46u8, 94u8, 232u8, 169u8, 79u8, 150u8, 212u8, 166u8, 191u8,
                            188u8, 198u8,
                        ],
                    )
                }
                #[doc = "Send a downward XCM to the given para."]
                #[doc = ""]
                #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"]
                #[doc = "size `config.max_downward_message_size`."]
                pub fn sudo_queue_downward_xcm(
                    &self,
                    id: types::sudo_queue_downward_xcm::Id,
                    xcm: types::sudo_queue_downward_xcm::Xcm,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SudoQueueDownwardXcm>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_queue_downward_xcm",
                        types::SudoQueueDownwardXcm {
                            id,
                            xcm: ::subxt::ext::subxt_core::alloc::boxed::Box::new(xcm),
                        },
                        [
                            40u8, 26u8, 205u8, 124u8, 249u8, 177u8, 41u8, 133u8, 217u8, 87u8,
                            207u8, 240u8, 199u8, 51u8, 4u8, 31u8, 34u8, 216u8, 150u8, 41u8, 53u8,
                            58u8, 60u8, 198u8, 62u8, 122u8, 112u8, 108u8, 86u8, 183u8, 162u8, 93u8,
                        ],
                    )
                }
                #[doc = "Forcefully establish a channel from the sender to the recipient."]
                #[doc = ""]
                #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"]
                #[doc = "`Hrmp::hrmp_accept_open_channel`."]
                pub fn sudo_establish_hrmp_channel(
                    &self,
                    sender: types::sudo_establish_hrmp_channel::Sender,
                    recipient: types::sudo_establish_hrmp_channel::Recipient,
                    max_capacity: types::sudo_establish_hrmp_channel::MaxCapacity,
                    max_message_size: types::sudo_establish_hrmp_channel::MaxMessageSize,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::SudoEstablishHrmpChannel,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ParasSudoWrapper",
                        "sudo_establish_hrmp_channel",
                        types::SudoEstablishHrmpChannel {
                            sender,
                            recipient,
                            max_capacity,
                            max_message_size,
                        },
                        [
                            236u8, 105u8, 76u8, 213u8, 11u8, 105u8, 119u8, 48u8, 1u8, 103u8, 239u8,
                            156u8, 66u8, 63u8, 135u8, 67u8, 226u8, 150u8, 254u8, 24u8, 169u8, 82u8,
                            29u8, 75u8, 102u8, 167u8, 59u8, 66u8, 173u8, 148u8, 202u8, 50u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod assigned_slots {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::polkadot_runtime_common::assigned_slots::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::polkadot_runtime_common::assigned_slots::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Assign a permanent parachain slot and immediately create a lease for it."]
                pub struct AssignPermParachainSlot {
                    pub id: assign_perm_parachain_slot::Id,
                }
                pub mod assign_perm_parachain_slot {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AssignPermParachainSlot {
                    const PALLET: &'static str = "AssignedSlots";
                    const CALL: &'static str = "assign_perm_parachain_slot";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"]
                #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"]
                #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."]
                pub struct AssignTempParachainSlot {
                    pub id: assign_temp_parachain_slot::Id,
                    pub lease_period_start: assign_temp_parachain_slot::LeasePeriodStart,
                }
                pub mod assign_temp_parachain_slot {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                    pub type LeasePeriodStart = runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart ;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AssignTempParachainSlot {
                    const PALLET: &'static str = "AssignedSlots";
                    const CALL: &'static str = "assign_temp_parachain_slot";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Unassign a permanent or temporary parachain slot"]
                pub struct UnassignParachainSlot {
                    pub id: unassign_parachain_slot::Id,
                }
                pub mod unassign_parachain_slot {
                    use super::runtime_types;
                    pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnassignParachainSlot {
                    const PALLET: &'static str = "AssignedSlots";
                    const CALL: &'static str = "unassign_parachain_slot";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the storage value [`MaxPermanentSlots`]."]
                pub struct SetMaxPermanentSlots {
                    pub slots: set_max_permanent_slots::Slots,
                }
                pub mod set_max_permanent_slots {
                    use super::runtime_types;
                    pub type Slots = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxPermanentSlots {
                    const PALLET: &'static str = "AssignedSlots";
                    const CALL: &'static str = "set_max_permanent_slots";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Sets the storage value [`MaxTemporarySlots`]."]
                pub struct SetMaxTemporarySlots {
                    pub slots: set_max_temporary_slots::Slots,
                }
                pub mod set_max_temporary_slots {
                    use super::runtime_types;
                    pub type Slots = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxTemporarySlots {
                    const PALLET: &'static str = "AssignedSlots";
                    const CALL: &'static str = "set_max_temporary_slots";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Assign a permanent parachain slot and immediately create a lease for it."]
                pub fn assign_perm_parachain_slot(
                    &self,
                    id: types::assign_perm_parachain_slot::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::AssignPermParachainSlot,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssignedSlots",
                        "assign_perm_parachain_slot",
                        types::AssignPermParachainSlot { id },
                        [
                            174u8, 53u8, 0u8, 157u8, 42u8, 160u8, 60u8, 36u8, 68u8, 7u8, 86u8,
                            60u8, 126u8, 71u8, 118u8, 95u8, 139u8, 208u8, 57u8, 118u8, 183u8,
                            111u8, 59u8, 37u8, 186u8, 193u8, 92u8, 145u8, 39u8, 21u8, 237u8, 31u8,
                        ],
                    )
                }
                #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"]
                #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"]
                #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."]
                pub fn assign_temp_parachain_slot(
                    &self,
                    id: types::assign_temp_parachain_slot::Id,
                    lease_period_start: types::assign_temp_parachain_slot::LeasePeriodStart,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::AssignTempParachainSlot,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssignedSlots",
                        "assign_temp_parachain_slot",
                        types::AssignTempParachainSlot {
                            id,
                            lease_period_start,
                        },
                        [
                            226u8, 38u8, 224u8, 199u8, 32u8, 159u8, 245u8, 129u8, 190u8, 103u8,
                            103u8, 214u8, 27u8, 215u8, 104u8, 111u8, 132u8, 186u8, 214u8, 25u8,
                            110u8, 187u8, 73u8, 179u8, 101u8, 48u8, 60u8, 218u8, 248u8, 28u8,
                            202u8, 66u8,
                        ],
                    )
                }
                #[doc = "Unassign a permanent or temporary parachain slot"]
                pub fn unassign_parachain_slot(
                    &self,
                    id: types::unassign_parachain_slot::Id,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<
                    types::UnassignParachainSlot,
                > {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssignedSlots",
                        "unassign_parachain_slot",
                        types::UnassignParachainSlot { id },
                        [
                            235u8, 6u8, 124u8, 73u8, 72u8, 232u8, 38u8, 233u8, 103u8, 111u8, 249u8,
                            235u8, 10u8, 169u8, 92u8, 251u8, 245u8, 151u8, 28u8, 78u8, 125u8,
                            113u8, 201u8, 187u8, 24u8, 58u8, 18u8, 177u8, 68u8, 122u8, 167u8,
                            143u8,
                        ],
                    )
                }
                #[doc = "Sets the storage value [`MaxPermanentSlots`]."]
                pub fn set_max_permanent_slots(
                    &self,
                    slots: types::set_max_permanent_slots::Slots,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxPermanentSlots>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssignedSlots",
                        "set_max_permanent_slots",
                        types::SetMaxPermanentSlots { slots },
                        [
                            62u8, 74u8, 80u8, 101u8, 204u8, 21u8, 139u8, 67u8, 178u8, 103u8, 237u8,
                            166u8, 58u8, 6u8, 201u8, 30u8, 17u8, 186u8, 220u8, 150u8, 183u8, 174u8,
                            72u8, 15u8, 72u8, 166u8, 116u8, 203u8, 132u8, 237u8, 196u8, 230u8,
                        ],
                    )
                }
                #[doc = "Sets the storage value [`MaxTemporarySlots`]."]
                pub fn set_max_temporary_slots(
                    &self,
                    slots: types::set_max_temporary_slots::Slots,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetMaxTemporarySlots>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "AssignedSlots",
                        "set_max_temporary_slots",
                        types::SetMaxTemporarySlots { slots },
                        [
                            126u8, 108u8, 55u8, 12u8, 136u8, 207u8, 246u8, 65u8, 251u8, 139u8,
                            150u8, 134u8, 10u8, 133u8, 106u8, 161u8, 61u8, 59u8, 15u8, 72u8, 247u8,
                            33u8, 191u8, 127u8, 27u8, 89u8, 165u8, 134u8, 148u8, 140u8, 204u8,
                            22u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::polkadot_runtime_common::assigned_slots::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A parachain was assigned a permanent parachain slot"]
            pub struct PermanentSlotAssigned(pub permanent_slot_assigned::Field0);
            pub mod permanent_slot_assigned {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for PermanentSlotAssigned {
                const PALLET: &'static str = "AssignedSlots";
                const EVENT: &'static str = "PermanentSlotAssigned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A parachain was assigned a temporary parachain slot"]
            pub struct TemporarySlotAssigned(pub temporary_slot_assigned::Field0);
            pub mod temporary_slot_assigned {
                use super::runtime_types;
                pub type Field0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for TemporarySlotAssigned {
                const PALLET: &'static str = "AssignedSlots";
                const EVENT: &'static str = "TemporarySlotAssigned";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The maximum number of permanent slots has been changed"]
            pub struct MaxPermanentSlotsChanged {
                pub slots: max_permanent_slots_changed::Slots,
            }
            pub mod max_permanent_slots_changed {
                use super::runtime_types;
                pub type Slots = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MaxPermanentSlotsChanged {
                const PALLET: &'static str = "AssignedSlots";
                const EVENT: &'static str = "MaxPermanentSlotsChanged";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The maximum number of temporary slots has been changed"]
            pub struct MaxTemporarySlotsChanged {
                pub slots: max_temporary_slots_changed::Slots,
            }
            pub mod max_temporary_slots_changed {
                use super::runtime_types;
                pub type Slots = ::core::primitive::u32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for MaxTemporarySlotsChanged {
                const PALLET: &'static str = "AssignedSlots";
                const EVENT: &'static str = "MaxTemporarySlotsChanged";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod permanent_slots {
                    use super::runtime_types;
                    pub type PermanentSlots = (::core::primitive::u32, ::core::primitive::u32);
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod permanent_slot_count {
                    use super::runtime_types;
                    pub type PermanentSlotCount = ::core::primitive::u32;
                }
                pub mod temporary_slots {
                    use super::runtime_types;
                    pub type TemporarySlots = runtime_types :: polkadot_runtime_common :: assigned_slots :: ParachainTemporarySlot < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , :: core :: primitive :: u32 > ;
                    pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id;
                }
                pub mod temporary_slot_count {
                    use super::runtime_types;
                    pub type TemporarySlotCount = ::core::primitive::u32;
                }
                pub mod active_temporary_slot_count {
                    use super::runtime_types;
                    pub type ActiveTemporarySlotCount = ::core::primitive::u32;
                }
                pub mod max_temporary_slots {
                    use super::runtime_types;
                    pub type MaxTemporarySlots = ::core::primitive::u32;
                }
                pub mod max_permanent_slots {
                    use super::runtime_types;
                    pub type MaxPermanentSlots = ::core::primitive::u32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Assigned permanent slots, with their start lease period, and duration."]
                pub fn permanent_slots_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::permanent_slots::PermanentSlots,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "PermanentSlots",
                        (),
                        [
                            133u8, 179u8, 221u8, 222u8, 50u8, 75u8, 158u8, 137u8, 167u8, 190u8,
                            19u8, 237u8, 201u8, 44u8, 86u8, 64u8, 57u8, 61u8, 96u8, 112u8, 218u8,
                            186u8, 176u8, 58u8, 143u8, 61u8, 105u8, 13u8, 103u8, 162u8, 188u8,
                            154u8,
                        ],
                    )
                }
                #[doc = " Assigned permanent slots, with their start lease period, and duration."]
                pub fn permanent_slots(
                    &self,
                    _0: types::permanent_slots::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::permanent_slots::Param0,
                    >,
                    types::permanent_slots::PermanentSlots,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "PermanentSlots",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            133u8, 179u8, 221u8, 222u8, 50u8, 75u8, 158u8, 137u8, 167u8, 190u8,
                            19u8, 237u8, 201u8, 44u8, 86u8, 64u8, 57u8, 61u8, 96u8, 112u8, 218u8,
                            186u8, 176u8, 58u8, 143u8, 61u8, 105u8, 13u8, 103u8, 162u8, 188u8,
                            154u8,
                        ],
                    )
                }
                #[doc = " Number of assigned (and active) permanent slots."]
                pub fn permanent_slot_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::permanent_slot_count::PermanentSlotCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "PermanentSlotCount",
                        (),
                        [
                            57u8, 211u8, 19u8, 233u8, 105u8, 201u8, 166u8, 99u8, 53u8, 217u8, 23u8,
                            64u8, 216u8, 129u8, 21u8, 36u8, 234u8, 24u8, 57u8, 99u8, 13u8, 205u8,
                            201u8, 78u8, 28u8, 96u8, 232u8, 62u8, 91u8, 235u8, 157u8, 213u8,
                        ],
                    )
                }
                #[doc = " Assigned temporary slots."]
                pub fn temporary_slots_iter(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::temporary_slots::TemporarySlots,
                    (),
                    (),
                    ::subxt::ext::subxt_core::utils::Yes,
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "TemporarySlots",
                        (),
                        [
                            184u8, 245u8, 181u8, 90u8, 169u8, 232u8, 108u8, 3u8, 153u8, 4u8, 176u8,
                            170u8, 230u8, 163u8, 236u8, 111u8, 196u8, 218u8, 154u8, 125u8, 102u8,
                            216u8, 195u8, 126u8, 99u8, 90u8, 242u8, 141u8, 214u8, 165u8, 32u8,
                            57u8,
                        ],
                    )
                }
                #[doc = " Assigned temporary slots."]
                pub fn temporary_slots(
                    &self,
                    _0: types::temporary_slots::Param0,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    ::subxt::ext::subxt_core::storage::address::StaticStorageKey<
                        types::temporary_slots::Param0,
                    >,
                    types::temporary_slots::TemporarySlots,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "TemporarySlots",
                        ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0),
                        [
                            184u8, 245u8, 181u8, 90u8, 169u8, 232u8, 108u8, 3u8, 153u8, 4u8, 176u8,
                            170u8, 230u8, 163u8, 236u8, 111u8, 196u8, 218u8, 154u8, 125u8, 102u8,
                            216u8, 195u8, 126u8, 99u8, 90u8, 242u8, 141u8, 214u8, 165u8, 32u8,
                            57u8,
                        ],
                    )
                }
                #[doc = " Number of assigned temporary slots."]
                pub fn temporary_slot_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::temporary_slot_count::TemporarySlotCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "TemporarySlotCount",
                        (),
                        [
                            218u8, 236u8, 69u8, 75u8, 224u8, 60u8, 9u8, 197u8, 217u8, 4u8, 210u8,
                            55u8, 125u8, 106u8, 239u8, 208u8, 115u8, 105u8, 94u8, 223u8, 219u8,
                            27u8, 175u8, 161u8, 120u8, 168u8, 36u8, 239u8, 136u8, 228u8, 7u8, 15u8,
                        ],
                    )
                }
                #[doc = " Number of active temporary slots in current slot lease period."]
                pub fn active_temporary_slot_count(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::active_temporary_slot_count::ActiveTemporarySlotCount,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "ActiveTemporarySlotCount",
                        (),
                        [
                            153u8, 99u8, 232u8, 164u8, 137u8, 10u8, 232u8, 172u8, 78u8, 4u8, 69u8,
                            178u8, 245u8, 220u8, 56u8, 251u8, 60u8, 238u8, 127u8, 246u8, 60u8,
                            11u8, 240u8, 185u8, 2u8, 194u8, 69u8, 212u8, 173u8, 205u8, 205u8,
                            198u8,
                        ],
                    )
                }
                #[doc = "  The max number of temporary slots that can be assigned."]
                pub fn max_temporary_slots(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::max_temporary_slots::MaxTemporarySlots,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "MaxTemporarySlots",
                        (),
                        [
                            129u8, 130u8, 136u8, 77u8, 149u8, 130u8, 130u8, 195u8, 150u8, 114u8,
                            199u8, 133u8, 86u8, 252u8, 149u8, 149u8, 131u8, 248u8, 70u8, 39u8,
                            22u8, 101u8, 175u8, 13u8, 32u8, 138u8, 81u8, 20u8, 41u8, 46u8, 238u8,
                            187u8,
                        ],
                    )
                }
                #[doc = " The max number of permanent slots that can be assigned."]
                pub fn max_permanent_slots(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::max_permanent_slots::MaxPermanentSlots,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "MaxPermanentSlots",
                        (),
                        [
                            20u8, 72u8, 203u8, 62u8, 120u8, 21u8, 97u8, 9u8, 138u8, 135u8, 67u8,
                            152u8, 131u8, 197u8, 59u8, 80u8, 226u8, 148u8, 159u8, 122u8, 34u8,
                            86u8, 162u8, 80u8, 208u8, 151u8, 43u8, 164u8, 120u8, 33u8, 144u8,
                            118u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " The number of lease periods a permanent parachain slot lasts."]
                pub fn permanent_slot_lease_period_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "PermanentSlotLeasePeriodLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The number of lease periods a temporary parachain slot lasts."]
                pub fn temporary_slot_lease_period_length(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "TemporarySlotLeasePeriodLength",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
                #[doc = " The max number of temporary slots to be scheduled per lease periods."]
                pub fn max_temporary_slot_per_lease_period(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "AssignedSlots",
                        "MaxTemporarySlotPerLeasePeriod",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod validator_manager {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::rococo_runtime::validator_manager::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Add new validators to the set."]
                #[doc = ""]
                #[doc = "The new validators will be active from current session + 2."]
                pub struct RegisterValidators {
                    pub validators: register_validators::Validators,
                }
                pub mod register_validators {
                    use super::runtime_types;
                    pub type Validators = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RegisterValidators {
                    const PALLET: &'static str = "ValidatorManager";
                    const CALL: &'static str = "register_validators";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Remove validators from the set."]
                #[doc = ""]
                #[doc = "The removed validators will be deactivated from current session + 2."]
                pub struct DeregisterValidators {
                    pub validators: deregister_validators::Validators,
                }
                pub mod deregister_validators {
                    use super::runtime_types;
                    pub type Validators = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for DeregisterValidators {
                    const PALLET: &'static str = "ValidatorManager";
                    const CALL: &'static str = "deregister_validators";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Add new validators to the set."]
                #[doc = ""]
                #[doc = "The new validators will be active from current session + 2."]
                pub fn register_validators(
                    &self,
                    validators: types::register_validators::Validators,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RegisterValidators>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ValidatorManager",
                        "register_validators",
                        types::RegisterValidators { validators },
                        [
                            181u8, 41u8, 122u8, 3u8, 39u8, 160u8, 138u8, 83u8, 145u8, 147u8, 107u8,
                            151u8, 213u8, 31u8, 237u8, 89u8, 119u8, 154u8, 14u8, 23u8, 238u8,
                            247u8, 201u8, 92u8, 68u8, 127u8, 56u8, 178u8, 125u8, 152u8, 17u8,
                            147u8,
                        ],
                    )
                }
                #[doc = "Remove validators from the set."]
                #[doc = ""]
                #[doc = "The removed validators will be deactivated from current session + 2."]
                pub fn deregister_validators(
                    &self,
                    validators: types::deregister_validators::Validators,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::DeregisterValidators>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "ValidatorManager",
                        "deregister_validators",
                        types::DeregisterValidators { validators },
                        [
                            150u8, 134u8, 135u8, 215u8, 121u8, 111u8, 44u8, 52u8, 25u8, 244u8,
                            130u8, 47u8, 66u8, 73u8, 243u8, 49u8, 171u8, 143u8, 34u8, 122u8, 55u8,
                            234u8, 176u8, 221u8, 106u8, 61u8, 102u8, 234u8, 13u8, 233u8, 211u8,
                            214u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::rococo_runtime::validator_manager::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "New validators were added to the set."]
            pub struct ValidatorsRegistered(pub validators_registered::Field0);
            pub mod validators_registered {
                use super::runtime_types;
                pub type Field0 = ::subxt::ext::subxt_core::alloc::vec::Vec<
                    ::subxt::ext::subxt_core::utils::AccountId32,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ValidatorsRegistered {
                const PALLET: &'static str = "ValidatorManager";
                const EVENT: &'static str = "ValidatorsRegistered";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Validators were removed from the set."]
            pub struct ValidatorsDeregistered(pub validators_deregistered::Field0);
            pub mod validators_deregistered {
                use super::runtime_types;
                pub type Field0 = ::subxt::ext::subxt_core::alloc::vec::Vec<
                    ::subxt::ext::subxt_core::utils::AccountId32,
                >;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for ValidatorsDeregistered {
                const PALLET: &'static str = "ValidatorManager";
                const EVENT: &'static str = "ValidatorsDeregistered";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod validators_to_retire {
                    use super::runtime_types;
                    pub type ValidatorsToRetire = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
                pub mod validators_to_add {
                    use super::runtime_types;
                    pub type ValidatorsToAdd = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    >;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Validators that should be retired, because their Parachain was deregistered."]
                pub fn validators_to_retire(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validators_to_retire::ValidatorsToRetire,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ValidatorManager",
                        "ValidatorsToRetire",
                        (),
                        [
                            137u8, 92u8, 99u8, 157u8, 254u8, 166u8, 190u8, 64u8, 111u8, 212u8,
                            37u8, 90u8, 164u8, 0u8, 31u8, 15u8, 83u8, 21u8, 225u8, 7u8, 57u8,
                            104u8, 64u8, 192u8, 58u8, 38u8, 36u8, 133u8, 181u8, 229u8, 200u8, 65u8,
                        ],
                    )
                }
                #[doc = " Validators that should be added."]
                pub fn validators_to_add(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::validators_to_add::ValidatorsToAdd,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "ValidatorManager",
                        "ValidatorsToAdd",
                        (),
                        [
                            168u8, 209u8, 123u8, 225u8, 168u8, 62u8, 18u8, 174u8, 164u8, 161u8,
                            228u8, 179u8, 251u8, 112u8, 210u8, 173u8, 24u8, 177u8, 111u8, 129u8,
                            97u8, 230u8, 231u8, 103u8, 72u8, 104u8, 222u8, 156u8, 190u8, 150u8,
                            147u8, 68u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod state_trie_migration {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "The `Error` enum of this pallet."]
        pub type Error = runtime_types::pallet_state_trie_migration::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_state_trie_migration::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Control the automatic migration."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."]
                pub struct ControlAutoMigration {
                    pub maybe_config: control_auto_migration::MaybeConfig,
                }
                pub mod control_auto_migration {
                    use super::runtime_types;
                    pub type MaybeConfig = ::core::option::Option<
                        runtime_types::pallet_state_trie_migration::pallet::MigrationLimits,
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ControlAutoMigration {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "control_auto_migration";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Continue the migration for the given `limits`."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call can be any signed account."]
                #[doc = ""]
                #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"]
                #[doc = "Upon successful execution, the transaction fee is returned."]
                #[doc = ""]
                #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"]
                #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"]
                #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"]
                #[doc = "`real_size_upper` bytes of read data."]
                #[doc = ""]
                #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"]
                #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"]
                #[doc = "from caller, saying that they believed `witness_task` was the last state of the"]
                #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"]
                #[doc = "holds. In case `witness_task` does not match, the transaction fails."]
                #[doc = ""]
                #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"]
                #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"]
                #[doc = "`size` limit can always be overwritten."]
                pub struct ContinueMigrate {
                    pub limits: continue_migrate::Limits,
                    pub real_size_upper: continue_migrate::RealSizeUpper,
                    pub witness_task: continue_migrate::WitnessTask,
                }
                pub mod continue_migrate {
                    use super::runtime_types;
                    pub type Limits =
                        runtime_types::pallet_state_trie_migration::pallet::MigrationLimits;
                    pub type RealSizeUpper = ::core::primitive::u32;
                    pub type WitnessTask =
                        runtime_types::pallet_state_trie_migration::pallet::MigrationTask;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ContinueMigrate {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "continue_migrate";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Migrate the list of top keys by iterating each of them one by one."]
                #[doc = ""]
                #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                #[doc = "should only be used in case any keys are leftover due to a bug."]
                pub struct MigrateCustomTop {
                    pub keys: migrate_custom_top::Keys,
                    pub witness_size: migrate_custom_top::WitnessSize,
                }
                pub mod migrate_custom_top {
                    use super::runtime_types;
                    pub type Keys = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >;
                    pub type WitnessSize = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for MigrateCustomTop {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "migrate_custom_top";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Migrate the list of child keys by iterating each of them one by one."]
                #[doc = ""]
                #[doc = "All of the given child keys must be present under one `child_root`."]
                #[doc = ""]
                #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                #[doc = "should only be used in case any keys are leftover due to a bug."]
                pub struct MigrateCustomChild {
                    pub root: migrate_custom_child::Root,
                    pub child_keys: migrate_custom_child::ChildKeys,
                    pub total_size: migrate_custom_child::TotalSize,
                }
                pub mod migrate_custom_child {
                    use super::runtime_types;
                    pub type Root =
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>;
                    pub type ChildKeys = ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >;
                    pub type TotalSize = ::core::primitive::u32;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for MigrateCustomChild {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "migrate_custom_child";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Set the maximum limit of the signed migration."]
                pub struct SetSignedMaxLimits {
                    pub limits: set_signed_max_limits::Limits,
                }
                pub mod set_signed_max_limits {
                    use super::runtime_types;
                    pub type Limits =
                        runtime_types::pallet_state_trie_migration::pallet::MigrationLimits;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSignedMaxLimits {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "set_signed_max_limits";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Forcefully set the progress the running migration."]
                #[doc = ""]
                #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"]
                #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"]
                #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"]
                #[doc = "used, so probably it is already migrated."]
                #[doc = ""]
                #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"]
                #[doc = "process."]
                pub struct ForceSetProgress {
                    pub progress_top: force_set_progress::ProgressTop,
                    pub progress_child: force_set_progress::ProgressChild,
                }
                pub mod force_set_progress {
                    use super::runtime_types;
                    pub type ProgressTop =
                        runtime_types::pallet_state_trie_migration::pallet::Progress;
                    pub type ProgressChild =
                        runtime_types::pallet_state_trie_migration::pallet::Progress;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetProgress {
                    const PALLET: &'static str = "StateTrieMigration";
                    const CALL: &'static str = "force_set_progress";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Control the automatic migration."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."]
                pub fn control_auto_migration(
                    &self,
                    maybe_config: types::control_auto_migration::MaybeConfig,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ControlAutoMigration>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "control_auto_migration",
                        types::ControlAutoMigration { maybe_config },
                        [
                            41u8, 252u8, 1u8, 4u8, 170u8, 164u8, 45u8, 147u8, 203u8, 58u8, 64u8,
                            26u8, 53u8, 231u8, 170u8, 72u8, 23u8, 87u8, 32u8, 93u8, 130u8, 210u8,
                            65u8, 200u8, 147u8, 232u8, 32u8, 105u8, 182u8, 213u8, 101u8, 85u8,
                        ],
                    )
                }
                #[doc = "Continue the migration for the given `limits`."]
                #[doc = ""]
                #[doc = "The dispatch origin of this call can be any signed account."]
                #[doc = ""]
                #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"]
                #[doc = "Upon successful execution, the transaction fee is returned."]
                #[doc = ""]
                #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"]
                #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"]
                #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"]
                #[doc = "`real_size_upper` bytes of read data."]
                #[doc = ""]
                #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"]
                #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"]
                #[doc = "from caller, saying that they believed `witness_task` was the last state of the"]
                #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"]
                #[doc = "holds. In case `witness_task` does not match, the transaction fails."]
                #[doc = ""]
                #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"]
                #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"]
                #[doc = "`size` limit can always be overwritten."]
                pub fn continue_migrate(
                    &self,
                    limits: types::continue_migrate::Limits,
                    real_size_upper: types::continue_migrate::RealSizeUpper,
                    witness_task: types::continue_migrate::WitnessTask,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ContinueMigrate>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "continue_migrate",
                        types::ContinueMigrate {
                            limits,
                            real_size_upper,
                            witness_task,
                        },
                        [
                            244u8, 113u8, 101u8, 72u8, 234u8, 245u8, 21u8, 134u8, 132u8, 53u8,
                            179u8, 247u8, 210u8, 42u8, 87u8, 131u8, 157u8, 133u8, 108u8, 97u8,
                            12u8, 252u8, 69u8, 100u8, 236u8, 171u8, 134u8, 241u8, 68u8, 15u8,
                            227u8, 23u8,
                        ],
                    )
                }
                #[doc = "Migrate the list of top keys by iterating each of them one by one."]
                #[doc = ""]
                #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                #[doc = "should only be used in case any keys are leftover due to a bug."]
                pub fn migrate_custom_top(
                    &self,
                    keys: types::migrate_custom_top::Keys,
                    witness_size: types::migrate_custom_top::WitnessSize,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::MigrateCustomTop>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "migrate_custom_top",
                        types::MigrateCustomTop { keys, witness_size },
                        [
                            167u8, 185u8, 103u8, 14u8, 52u8, 177u8, 104u8, 139u8, 95u8, 195u8, 1u8,
                            30u8, 111u8, 205u8, 10u8, 53u8, 116u8, 31u8, 104u8, 135u8, 34u8, 80u8,
                            214u8, 3u8, 80u8, 101u8, 21u8, 3u8, 244u8, 62u8, 115u8, 50u8,
                        ],
                    )
                }
                #[doc = "Migrate the list of child keys by iterating each of them one by one."]
                #[doc = ""]
                #[doc = "All of the given child keys must be present under one `child_root`."]
                #[doc = ""]
                #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                #[doc = "should only be used in case any keys are leftover due to a bug."]
                pub fn migrate_custom_child(
                    &self,
                    root: types::migrate_custom_child::Root,
                    child_keys: types::migrate_custom_child::ChildKeys,
                    total_size: types::migrate_custom_child::TotalSize,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::MigrateCustomChild>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "migrate_custom_child",
                        types::MigrateCustomChild {
                            root,
                            child_keys,
                            total_size,
                        },
                        [
                            160u8, 99u8, 211u8, 111u8, 120u8, 53u8, 188u8, 31u8, 102u8, 86u8, 94u8,
                            86u8, 218u8, 181u8, 14u8, 154u8, 243u8, 49u8, 23u8, 65u8, 218u8, 160u8,
                            200u8, 97u8, 208u8, 159u8, 40u8, 10u8, 110u8, 134u8, 86u8, 33u8,
                        ],
                    )
                }
                #[doc = "Set the maximum limit of the signed migration."]
                pub fn set_signed_max_limits(
                    &self,
                    limits: types::set_signed_max_limits::Limits,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetSignedMaxLimits>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "set_signed_max_limits",
                        types::SetSignedMaxLimits { limits },
                        [
                            106u8, 43u8, 66u8, 154u8, 114u8, 172u8, 120u8, 79u8, 212u8, 196u8,
                            220u8, 112u8, 17u8, 42u8, 131u8, 249u8, 56u8, 91u8, 11u8, 152u8, 80u8,
                            120u8, 36u8, 113u8, 51u8, 34u8, 10u8, 35u8, 135u8, 228u8, 216u8, 38u8,
                        ],
                    )
                }
                #[doc = "Forcefully set the progress the running migration."]
                #[doc = ""]
                #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"]
                #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"]
                #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"]
                #[doc = "used, so probably it is already migrated."]
                #[doc = ""]
                #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"]
                #[doc = "process."]
                pub fn force_set_progress(
                    &self,
                    progress_top: types::force_set_progress::ProgressTop,
                    progress_child: types::force_set_progress::ProgressChild,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::ForceSetProgress>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "StateTrieMigration",
                        "force_set_progress",
                        types::ForceSetProgress {
                            progress_top,
                            progress_child,
                        },
                        [
                            103u8, 70u8, 170u8, 72u8, 136u8, 4u8, 169u8, 245u8, 254u8, 93u8, 17u8,
                            104u8, 19u8, 53u8, 182u8, 35u8, 205u8, 99u8, 116u8, 101u8, 102u8,
                            124u8, 253u8, 206u8, 111u8, 140u8, 212u8, 12u8, 218u8, 19u8, 39u8,
                            229u8,
                        ],
                    )
                }
            }
        }
        #[doc = "Inner events of this pallet."]
        pub type Event = runtime_types::pallet_state_trie_migration::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Given number of `(top, child)` keys were migrated respectively, with the given"]
            #[doc = "`compute`."]
            pub struct Migrated {
                pub top: migrated::Top,
                pub child: migrated::Child,
                pub compute: migrated::Compute,
            }
            pub mod migrated {
                use super::runtime_types;
                pub type Top = ::core::primitive::u32;
                pub type Child = ::core::primitive::u32;
                pub type Compute =
                    runtime_types::pallet_state_trie_migration::pallet::MigrationCompute;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Migrated {
                const PALLET: &'static str = "StateTrieMigration";
                const EVENT: &'static str = "Migrated";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Some account got slashed by the given amount."]
            pub struct Slashed {
                pub who: slashed::Who,
                pub amount: slashed::Amount,
            }
            pub mod slashed {
                use super::runtime_types;
                pub type Who = ::subxt::ext::subxt_core::utils::AccountId32;
                pub type Amount = ::core::primitive::u128;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Slashed {
                const PALLET: &'static str = "StateTrieMigration";
                const EVENT: &'static str = "Slashed";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The auto migration task finished."]
            pub struct AutoMigrationFinished;
            impl ::subxt::ext::subxt_core::events::StaticEvent for AutoMigrationFinished {
                const PALLET: &'static str = "StateTrieMigration";
                const EVENT: &'static str = "AutoMigrationFinished";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Migration got halted due to an error or miss-configuration."]
            pub struct Halted {
                pub error: halted::Error,
            }
            pub mod halted {
                use super::runtime_types;
                pub type Error = runtime_types::pallet_state_trie_migration::pallet::Error;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Halted {
                const PALLET: &'static str = "StateTrieMigration";
                const EVENT: &'static str = "Halted";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod migration_process {
                    use super::runtime_types;
                    pub type MigrationProcess =
                        runtime_types::pallet_state_trie_migration::pallet::MigrationTask;
                }
                pub mod auto_limits {
                    use super::runtime_types;
                    pub type AutoLimits = ::core::option::Option<
                        runtime_types::pallet_state_trie_migration::pallet::MigrationLimits,
                    >;
                }
                pub mod signed_migration_max_limits {
                    use super::runtime_types;
                    pub type SignedMigrationMaxLimits =
                        runtime_types::pallet_state_trie_migration::pallet::MigrationLimits;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " Migration progress."]
                #[doc = ""]
                #[doc = " This stores the snapshot of the last migrated keys. It can be set into motion and move"]
                #[doc = " forward by any of the means provided by this pallet."]
                pub fn migration_process(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::migration_process::MigrationProcess,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "StateTrieMigration",
                        "MigrationProcess",
                        (),
                        [
                            119u8, 172u8, 143u8, 118u8, 90u8, 3u8, 154u8, 185u8, 165u8, 165u8,
                            249u8, 230u8, 77u8, 14u8, 221u8, 146u8, 75u8, 243u8, 69u8, 209u8, 79u8,
                            253u8, 28u8, 64u8, 243u8, 45u8, 29u8, 1u8, 22u8, 127u8, 0u8, 66u8,
                        ],
                    )
                }
                #[doc = " The limits that are imposed on automatic migrations."]
                #[doc = ""]
                #[doc = " If set to None, then no automatic migration happens."]
                pub fn auto_limits(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::auto_limits::AutoLimits,
                    ::subxt::ext::subxt_core::utils::Yes,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "StateTrieMigration",
                        "AutoLimits",
                        (),
                        [
                            225u8, 29u8, 94u8, 66u8, 169u8, 230u8, 106u8, 20u8, 238u8, 81u8, 238u8,
                            183u8, 185u8, 74u8, 94u8, 58u8, 107u8, 174u8, 228u8, 10u8, 156u8,
                            225u8, 95u8, 75u8, 208u8, 227u8, 58u8, 147u8, 161u8, 68u8, 158u8, 99u8,
                        ],
                    )
                }
                #[doc = " The maximum limits that the signed migration could use."]
                #[doc = ""]
                #[doc = " If not set, no signed submission is allowed."]
                pub fn signed_migration_max_limits(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::signed_migration_max_limits::SignedMigrationMaxLimits,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "StateTrieMigration",
                        "SignedMigrationMaxLimits",
                        (),
                        [
                            121u8, 97u8, 145u8, 237u8, 10u8, 145u8, 206u8, 119u8, 15u8, 12u8,
                            200u8, 24u8, 231u8, 140u8, 248u8, 227u8, 202u8, 78u8, 93u8, 134u8,
                            144u8, 79u8, 55u8, 136u8, 89u8, 52u8, 49u8, 64u8, 136u8, 249u8, 245u8,
                            175u8,
                        ],
                    )
                }
            }
        }
        pub mod constants {
            use super::runtime_types;
            pub struct ConstantsApi;
            impl ConstantsApi {
                #[doc = " Maximal number of bytes that a key can have."]
                #[doc = ""]
                #[doc = " FRAME itself does not limit the key length."]
                #[doc = " The concrete value must therefore depend on your storage usage."]
                #[doc = " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of"]
                #[doc = " keys which are then hashed and concatenated, resulting in arbitrarily long keys."]
                #[doc = ""]
                #[doc = " Use the *state migration RPC* to retrieve the length of the longest key in your"]
                #[doc = " storage: <https://github.com/paritytech/substrate/issues/11642>"]
                #[doc = ""]
                #[doc = " The migration will halt with a `Halted` event if this value is too small."]
                #[doc = " Since there is no real penalty from over-estimating, it is advised to use a large"]
                #[doc = " value. The default is 512 byte."]
                #[doc = ""]
                #[doc = " Some key lengths for reference:"]
                #[doc = " - [`frame_support::storage::StorageValue`]: 32 byte"]
                #[doc = " - [`frame_support::storage::StorageMap`]: 64 byte"]
                #[doc = " - [`frame_support::storage::StorageDoubleMap`]: 96 byte"]
                #[doc = ""]
                #[doc = " For more info see"]
                #[doc = " <https://www.shawntabrizi.com/blog/substrate/querying-substrate-storage-via-rpc/>"]
                pub fn max_key_len(
                    &self,
                ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress<
                    ::core::primitive::u32,
                > {
                    ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static(
                        "StateTrieMigration",
                        "MaxKeyLen",
                        [
                            98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8,
                            125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8,
                            178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8,
                            145u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod root_testing {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_root_testing::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "A dispatch that will fill the block weight up to the given ratio."]
                pub struct FillBlock {
                    pub ratio: fill_block::Ratio,
                }
                pub mod fill_block {
                    use super::runtime_types;
                    pub type Ratio = runtime_types::sp_arithmetic::per_things::Perbill;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FillBlock {
                    const PALLET: &'static str = "RootTesting";
                    const CALL: &'static str = "fill_block";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct TriggerDefensive;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TriggerDefensive {
                    const PALLET: &'static str = "RootTesting";
                    const CALL: &'static str = "trigger_defensive";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "A dispatch that will fill the block weight up to the given ratio."]
                pub fn fill_block(
                    &self,
                    ratio: types::fill_block::Ratio,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::FillBlock>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "RootTesting",
                        "fill_block",
                        types::FillBlock { ratio },
                        [
                            164u8, 37u8, 43u8, 91u8, 125u8, 34u8, 208u8, 126u8, 67u8, 94u8, 184u8,
                            240u8, 68u8, 208u8, 41u8, 206u8, 172u8, 95u8, 111u8, 115u8, 9u8, 250u8,
                            163u8, 66u8, 240u8, 0u8, 237u8, 140u8, 87u8, 57u8, 162u8, 117u8,
                        ],
                    )
                }
                pub fn trigger_defensive(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::TriggerDefensive>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "RootTesting",
                        "trigger_defensive",
                        types::TriggerDefensive {},
                        [
                            170u8, 234u8, 12u8, 158u8, 10u8, 171u8, 161u8, 144u8, 101u8, 67u8,
                            150u8, 128u8, 105u8, 234u8, 223u8, 60u8, 241u8, 245u8, 112u8, 21u8,
                            80u8, 216u8, 72u8, 147u8, 22u8, 125u8, 19u8, 200u8, 171u8, 153u8, 88u8,
                            194u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_root_testing::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "Event dispatched when the trigger_defensive extrinsic is called."]
            pub struct DefensiveTestCall;
            impl ::subxt::ext::subxt_core::events::StaticEvent for DefensiveTestCall {
                const PALLET: &'static str = "RootTesting";
                const EVENT: &'static str = "DefensiveTestCall";
            }
        }
    }
    pub mod sudo {
        use super::root_mod;
        use super::runtime_types;
        #[doc = "Error for the Sudo pallet."]
        pub type Error = runtime_types::pallet_sudo::pallet::Error;
        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
        pub type Call = runtime_types::pallet_sudo::pallet::Call;
        pub mod calls {
            use super::root_mod;
            use super::runtime_types;
            type DispatchError = runtime_types::sp_runtime::DispatchError;
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                pub struct Sudo {
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<sudo::Call>,
                }
                pub mod sudo {
                    use super::runtime_types;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Sudo {
                    const PALLET: &'static str = "Sudo";
                    const CALL: &'static str = "sudo";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                #[doc = "This function does not check the weight of the call, and instead allows the"]
                #[doc = "Sudo user to specify the weight of the call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub struct SudoUncheckedWeight {
                    pub call:
                        ::subxt::ext::subxt_core::alloc::boxed::Box<sudo_unchecked_weight::Call>,
                    pub weight: sudo_unchecked_weight::Weight,
                }
                pub mod sudo_unchecked_weight {
                    use super::runtime_types;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                    pub type Weight = runtime_types::sp_weights::weight_v2::Weight;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoUncheckedWeight {
                    const PALLET: &'static str = "Sudo";
                    const CALL: &'static str = "sudo_unchecked_weight";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"]
                #[doc = "key."]
                pub struct SetKey {
                    pub new: set_key::New,
                }
                pub mod set_key {
                    use super::runtime_types;
                    pub type New = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetKey {
                    const PALLET: &'static str = "Sudo";
                    const CALL: &'static str = "set_key";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"]
                #[doc = "a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub struct SudoAs {
                    pub who: sudo_as::Who,
                    pub call: ::subxt::ext::subxt_core::alloc::boxed::Box<sudo_as::Call>,
                }
                pub mod sudo_as {
                    use super::runtime_types;
                    pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress<
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        (),
                    >;
                    pub type Call = runtime_types::rococo_runtime::RuntimeCall;
                }
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoAs {
                    const PALLET: &'static str = "Sudo";
                    const CALL: &'static str = "sudo_as";
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Permanently removes the sudo key."]
                #[doc = ""]
                #[doc = "**This cannot be un-done.**"]
                pub struct RemoveKey;
                impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveKey {
                    const PALLET: &'static str = "Sudo";
                    const CALL: &'static str = "remove_key";
                }
            }
            pub struct TransactionApi;
            impl TransactionApi {
                #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                pub fn sudo(
                    &self,
                    call: types::sudo::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::Sudo>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Sudo",
                        "sudo",
                        types::Sudo {
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            142u8, 6u8, 237u8, 75u8, 9u8, 157u8, 134u8, 173u8, 13u8, 91u8, 16u8,
                            214u8, 125u8, 89u8, 162u8, 242u8, 85u8, 58u8, 152u8, 18u8, 117u8,
                            140u8, 1u8, 37u8, 116u8, 215u8, 224u8, 115u8, 37u8, 212u8, 51u8, 154u8,
                        ],
                    )
                }
                #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                #[doc = "This function does not check the weight of the call, and instead allows the"]
                #[doc = "Sudo user to specify the weight of the call."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub fn sudo_unchecked_weight(
                    &self,
                    call: types::sudo_unchecked_weight::Call,
                    weight: types::sudo_unchecked_weight::Weight,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SudoUncheckedWeight>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Sudo",
                        "sudo_unchecked_weight",
                        types::SudoUncheckedWeight {
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                            weight,
                        },
                        [
                            21u8, 106u8, 255u8, 109u8, 83u8, 78u8, 79u8, 233u8, 36u8, 237u8, 76u8,
                            100u8, 27u8, 180u8, 32u8, 181u8, 250u8, 208u8, 192u8, 104u8, 128u8,
                            80u8, 148u8, 88u8, 230u8, 109u8, 102u8, 255u8, 184u8, 100u8, 194u8,
                            65u8,
                        ],
                    )
                }
                #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"]
                #[doc = "key."]
                pub fn set_key(
                    &self,
                    new: types::set_key::New,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SetKey>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Sudo",
                        "set_key",
                        types::SetKey { new },
                        [
                            9u8, 73u8, 39u8, 205u8, 188u8, 127u8, 143u8, 54u8, 128u8, 94u8, 8u8,
                            227u8, 197u8, 44u8, 70u8, 93u8, 228u8, 196u8, 64u8, 165u8, 226u8,
                            158u8, 101u8, 192u8, 22u8, 193u8, 102u8, 84u8, 21u8, 35u8, 92u8, 198u8,
                        ],
                    )
                }
                #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"]
                #[doc = "a given account."]
                #[doc = ""]
                #[doc = "The dispatch origin for this call must be _Signed_."]
                pub fn sudo_as(
                    &self,
                    who: types::sudo_as::Who,
                    call: types::sudo_as::Call,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::SudoAs>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Sudo",
                        "sudo_as",
                        types::SudoAs {
                            who,
                            call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call),
                        },
                        [
                            140u8, 221u8, 91u8, 39u8, 108u8, 238u8, 199u8, 29u8, 54u8, 6u8, 203u8,
                            45u8, 172u8, 0u8, 67u8, 64u8, 198u8, 58u8, 84u8, 42u8, 159u8, 36u8,
                            109u8, 22u8, 134u8, 31u8, 41u8, 115u8, 252u8, 14u8, 232u8, 180u8,
                        ],
                    )
                }
                #[doc = "Permanently removes the sudo key."]
                #[doc = ""]
                #[doc = "**This cannot be un-done.**"]
                pub fn remove_key(
                    &self,
                ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload<types::RemoveKey>
                {
                    ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static(
                        "Sudo",
                        "remove_key",
                        types::RemoveKey {},
                        [
                            133u8, 253u8, 54u8, 175u8, 202u8, 239u8, 5u8, 198u8, 180u8, 138u8,
                            25u8, 28u8, 109u8, 40u8, 30u8, 56u8, 126u8, 100u8, 52u8, 205u8, 250u8,
                            191u8, 61u8, 195u8, 172u8, 142u8, 184u8, 239u8, 247u8, 10u8, 211u8,
                            79u8,
                        ],
                    )
                }
            }
        }
        #[doc = "The `Event` enum of this pallet"]
        pub type Event = runtime_types::pallet_sudo::pallet::Event;
        pub mod events {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A sudo call just took place."]
            pub struct Sudid {
                pub sudo_result: sudid::SudoResult,
            }
            pub mod sudid {
                use super::runtime_types;
                pub type SudoResult =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for Sudid {
                const PALLET: &'static str = "Sudo";
                const EVENT: &'static str = "Sudid";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The sudo key has been updated."]
            pub struct KeyChanged {
                pub old: key_changed::Old,
                pub new: key_changed::New,
            }
            pub mod key_changed {
                use super::runtime_types;
                pub type Old = ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>;
                pub type New = ::subxt::ext::subxt_core::utils::AccountId32;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for KeyChanged {
                const PALLET: &'static str = "Sudo";
                const EVENT: &'static str = "KeyChanged";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "The key was permanently removed."]
            pub struct KeyRemoved;
            impl ::subxt::ext::subxt_core::events::StaticEvent for KeyRemoved {
                const PALLET: &'static str = "Sudo";
                const EVENT: &'static str = "KeyRemoved";
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."]
            pub struct SudoAsDone {
                pub sudo_result: sudo_as_done::SudoResult,
            }
            pub mod sudo_as_done {
                use super::runtime_types;
                pub type SudoResult =
                    ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>;
            }
            impl ::subxt::ext::subxt_core::events::StaticEvent for SudoAsDone {
                const PALLET: &'static str = "Sudo";
                const EVENT: &'static str = "SudoAsDone";
            }
        }
        pub mod storage {
            use super::runtime_types;
            pub mod types {
                use super::runtime_types;
                pub mod key {
                    use super::runtime_types;
                    pub type Key = ::subxt::ext::subxt_core::utils::AccountId32;
                }
            }
            pub struct StorageApi;
            impl StorageApi {
                #[doc = " The `AccountId` of the sudo key."]
                pub fn key(
                    &self,
                ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress<
                    (),
                    types::key::Key,
                    ::subxt::ext::subxt_core::utils::Yes,
                    (),
                    (),
                > {
                    ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static(
                        "Sudo",
                        "Key",
                        (),
                        [
                            72u8, 14u8, 225u8, 162u8, 205u8, 247u8, 227u8, 105u8, 116u8, 57u8, 4u8,
                            31u8, 84u8, 137u8, 227u8, 228u8, 133u8, 245u8, 206u8, 227u8, 117u8,
                            36u8, 252u8, 151u8, 107u8, 15u8, 180u8, 4u8, 4u8, 152u8, 195u8, 144u8,
                        ],
                    )
                }
            }
        }
    }
    pub mod runtime_types {
        use super::runtime_types;
        pub mod bounded_collections {
            use super::runtime_types;
            pub mod bounded_vec {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BoundedVec<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>);
            }
            pub mod weak_bounded_vec {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct WeakBoundedVec<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>);
            }
        }
        pub mod finality_grandpa {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Equivocation<_0, _1, _2> {
                pub round_number: ::core::primitive::u64,
                pub identity: _0,
                pub first: (_1, _2),
                pub second: (_1, _2),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Precommit<_0, _1> {
                pub target_hash: _0,
                pub target_number: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Prevote<_0, _1> {
                pub target_hash: _0,
                pub target_number: _1,
            }
        }
        pub mod frame_metadata_hash_extension {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct CheckMetadataHash {
                pub mode: runtime_types::frame_metadata_hash_extension::Mode,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Mode {
                #[codec(index = 0)]
                Disabled,
                #[codec(index = 1)]
                Enabled,
            }
        }
        pub mod frame_support {
            use super::runtime_types;
            pub mod dispatch {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum DispatchClass {
                    #[codec(index = 0)]
                    Normal,
                    #[codec(index = 1)]
                    Operational,
                    #[codec(index = 2)]
                    Mandatory,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Pays {
                    #[codec(index = 0)]
                    Yes,
                    #[codec(index = 1)]
                    No,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PerDispatchClass<_0> {
                    pub normal: _0,
                    pub operational: _0,
                    pub mandatory: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PostDispatchInfo {
                    pub actual_weight:
                        ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                    pub pays_fee: runtime_types::frame_support::dispatch::Pays,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum RawOrigin<_0> {
                    #[codec(index = 0)]
                    Root,
                    #[codec(index = 1)]
                    Signed(_0),
                    #[codec(index = 2)]
                    None,
                    #[codec(index = 3)]
                    Authorized,
                }
            }
            pub mod traits {
                use super::runtime_types;
                pub mod messages {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ProcessMessageError {
                        #[codec(index = 0)]
                        BadFormat,
                        #[codec(index = 1)]
                        Corrupt,
                        #[codec(index = 2)]
                        Unsupported,
                        #[codec(index = 3)]
                        Overweight(runtime_types::sp_weights::weight_v2::Weight),
                        #[codec(index = 4)]
                        Yield,
                        #[codec(index = 5)]
                        StackLimitReached,
                    }
                }
                pub mod preimages {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Bounded<_0, _1> {
                        #[codec(index = 0)]
                        Legacy {
                            hash: ::subxt::ext::subxt_core::utils::H256,
                        },
                        #[codec(index = 1)]
                        Inline(
                            runtime_types::bounded_collections::bounded_vec::BoundedVec<
                                ::core::primitive::u8,
                            >,
                        ),
                        #[codec(index = 2)]
                        Lookup {
                            hash: ::subxt::ext::subxt_core::utils::H256,
                            len: ::core::primitive::u32,
                        },
                        __Ignore(::core::marker::PhantomData<(_0, _1)>),
                    }
                }
                pub mod schedule {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum DispatchTime<_0> {
                        #[codec(index = 0)]
                        At(_0),
                        #[codec(index = 1)]
                        After(_0),
                    }
                }
                pub mod storage {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Disabled;
                }
                pub mod tokens {
                    use super::runtime_types;
                    pub mod fungible {
                        use super::runtime_types;
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        pub struct HoldConsideration(pub ::core::primitive::u128);
                    }
                    pub mod misc {
                        use super::runtime_types;
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        pub enum BalanceStatus {
                            #[codec(index = 0)]
                            Free,
                            #[codec(index = 1)]
                            Reserved,
                        }
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        pub struct IdAmount<_0, _1> {
                            pub id: _0,
                            pub amount: _1,
                        }
                    }
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct PalletId(pub [::core::primitive::u8; 8usize]);
        }
        pub mod frame_system {
            use super::runtime_types;
            pub mod extensions {
                use super::runtime_types;
                pub mod authorize_call {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct AuthorizeCall;
                }
                pub mod check_genesis {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckGenesis;
                }
                pub mod check_mortality {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckMortality(pub runtime_types::sp_runtime::generic::era::Era);
                }
                pub mod check_non_zero_sender {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckNonZeroSender;
                }
                pub mod check_nonce {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckNonce(#[codec(compact)] pub ::core::primitive::u32);
                }
                pub mod check_spec_version {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckSpecVersion;
                }
                pub mod check_tx_version {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckTxVersion;
                }
                pub mod check_weight {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CheckWeight;
                }
                pub mod weight_reclaim {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct WeightReclaim;
                }
            }
            pub mod limits {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BlockLength {
                    pub max: runtime_types::frame_support::dispatch::PerDispatchClass<
                        ::core::primitive::u32,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BlockWeights {
                    pub base_block: runtime_types::sp_weights::weight_v2::Weight,
                    pub max_block: runtime_types::sp_weights::weight_v2::Weight,
                    pub per_class: runtime_types::frame_support::dispatch::PerDispatchClass<
                        runtime_types::frame_system::limits::WeightsPerClass,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct WeightsPerClass {
                    pub base_extrinsic: runtime_types::sp_weights::weight_v2::Weight,
                    pub max_extrinsic:
                        ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                    pub max_total:
                        ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                    pub reserved:
                        ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                }
            }
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Make some on-chain remark."]
                    #[doc = ""]
                    #[doc = "Can be executed by every `origin`."]
                    remark {
                        remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Set the number of pages in the WebAssembly environment's heap."]
                    set_heap_pages { pages: ::core::primitive::u64 },
                    #[codec(index = 2)]
                    #[doc = "Set the new runtime code."]
                    set_code {
                        code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 3)]
                    #[doc = "Set the new runtime code without doing any checks of the given `code`."]
                    #[doc = ""]
                    #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"]
                    #[doc = "version!"]
                    set_code_without_checks {
                        code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 4)]
                    #[doc = "Set some items of storage."]
                    set_storage {
                        items: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        )>,
                    },
                    #[codec(index = 5)]
                    #[doc = "Kill some items from storage."]
                    kill_storage {
                        keys: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                    },
                    #[codec(index = 6)]
                    #[doc = "Kill all storage items with a key that starts with the given prefix."]
                    #[doc = ""]
                    #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"]
                    #[doc = "the prefix we are removing to accurately calculate the weight of this function."]
                    kill_prefix {
                        prefix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        subkeys: ::core::primitive::u32,
                    },
                    #[codec(index = 7)]
                    #[doc = "Make some on-chain remark and emit event."]
                    remark_with_event {
                        remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 9)]
                    #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                    #[doc = "later."]
                    #[doc = ""]
                    #[doc = "This call requires Root origin."]
                    authorize_upgrade {
                        code_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 10)]
                    #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"]
                    #[doc = "later."]
                    #[doc = ""]
                    #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"]
                    #[doc = "example that the spec name remains the same and that the version number increases. Not"]
                    #[doc = "recommended for normal use. Use `authorize_upgrade` instead."]
                    #[doc = ""]
                    #[doc = "This call requires Root origin."]
                    authorize_upgrade_without_checks {
                        code_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 11)]
                    #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."]
                    #[doc = ""]
                    #[doc = "If the authorization required a version check, this call will ensure the spec name"]
                    #[doc = "remains unchanged and that the spec version has increased."]
                    #[doc = ""]
                    #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"]
                    #[doc = "the new `code` in the same block or attempt to schedule the upgrade."]
                    #[doc = ""]
                    #[doc = "All origins are allowed."]
                    apply_authorized_upgrade {
                        code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Error for the System pallet"]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The name of specification does not match between the current runtime"]
                    #[doc = "and the new runtime."]
                    InvalidSpecName,
                    #[codec(index = 1)]
                    #[doc = "The specification version is not allowed to decrease between the current runtime"]
                    #[doc = "and the new runtime."]
                    SpecVersionNeedsToIncrease,
                    #[codec(index = 2)]
                    #[doc = "Failed to extract the runtime version from the new runtime."]
                    #[doc = ""]
                    #[doc = "Either calling `Core_version` or decoding `RuntimeVersion` failed."]
                    FailedToExtractRuntimeVersion,
                    #[codec(index = 3)]
                    #[doc = "Suicide called when the account has non-default composite data."]
                    NonDefaultComposite,
                    #[codec(index = 4)]
                    #[doc = "There is a non-zero reference count preventing the account from being purged."]
                    NonZeroRefCount,
                    #[codec(index = 5)]
                    #[doc = "The origin filter prevent the call to be dispatched."]
                    CallFiltered,
                    #[codec(index = 6)]
                    #[doc = "A multi-block migration is ongoing and prevents the current code from being replaced."]
                    MultiBlockMigrationsOngoing,
                    #[codec(index = 7)]
                    #[doc = "No upgrade authorized."]
                    NothingAuthorized,
                    #[codec(index = 8)]
                    #[doc = "The submitted code is not authorized."]
                    Unauthorized,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Event for the System pallet."]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "An extrinsic completed successfully."]
                    ExtrinsicSuccess {
                        dispatch_info: runtime_types::frame_system::DispatchEventInfo,
                    },
                    #[codec(index = 1)]
                    #[doc = "An extrinsic failed."]
                    ExtrinsicFailed {
                        dispatch_error: runtime_types::sp_runtime::DispatchError,
                        dispatch_info: runtime_types::frame_system::DispatchEventInfo,
                    },
                    #[codec(index = 2)]
                    #[doc = "`:code` was updated."]
                    CodeUpdated,
                    #[codec(index = 3)]
                    #[doc = "A new account was created."]
                    NewAccount {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 4)]
                    #[doc = "An account was reaped."]
                    KilledAccount {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 5)]
                    #[doc = "On on-chain remark happened."]
                    Remarked {
                        sender: ::subxt::ext::subxt_core::utils::AccountId32,
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 6)]
                    #[doc = "An upgrade was authorized."]
                    UpgradeAuthorized {
                        code_hash: ::subxt::ext::subxt_core::utils::H256,
                        check_version: ::core::primitive::bool,
                    },
                    #[codec(index = 7)]
                    #[doc = "An invalid authorized upgrade was rejected while trying to apply it."]
                    RejectedInvalidAuthorizedUpgrade {
                        code_hash: ::subxt::ext::subxt_core::utils::H256,
                        error: runtime_types::sp_runtime::DispatchError,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AccountInfo<_0, _1> {
                pub nonce: _0,
                pub consumers: ::core::primitive::u32,
                pub providers: ::core::primitive::u32,
                pub sufficients: ::core::primitive::u32,
                pub data: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct CodeUpgradeAuthorization {
                pub code_hash: ::subxt::ext::subxt_core::utils::H256,
                pub check_version: ::core::primitive::bool,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct DispatchEventInfo {
                pub weight: runtime_types::sp_weights::weight_v2::Weight,
                pub class: runtime_types::frame_support::dispatch::DispatchClass,
                pub pays_fee: runtime_types::frame_support::dispatch::Pays,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct EventRecord<_0, _1> {
                pub phase: runtime_types::frame_system::Phase,
                pub event: _0,
                pub topics: ::subxt::ext::subxt_core::alloc::vec::Vec<_1>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct LastRuntimeUpgradeInfo {
                #[codec(compact)]
                pub spec_version: ::core::primitive::u32,
                pub spec_name: ::subxt::ext::subxt_core::alloc::string::String,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Phase {
                #[codec(index = 0)]
                ApplyExtrinsic(::core::primitive::u32),
                #[codec(index = 1)]
                Finalization,
                #[codec(index = 2)]
                Initialization,
            }
        }
        pub mod pallet_asset_rate {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Initialize a conversion rate to native balance for the given asset."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)"]
                    create {
                        asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        >,
                        rate: runtime_types::sp_arithmetic::fixed_point::FixedU128,
                    },
                    #[codec(index = 1)]
                    #[doc = "Update the conversion rate to native balance for the given asset."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)"]
                    update {
                        asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        >,
                        rate: runtime_types::sp_arithmetic::fixed_point::FixedU128,
                    },
                    #[codec(index = 2)]
                    #[doc = "Remove an existing conversion rate to native balance for the given asset."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)"]
                    remove {
                        asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The given asset ID is unknown."]
                    UnknownAssetKind,
                    #[codec(index = 1)]
                    #[doc = "The given asset ID already has an assigned conversion rate and cannot be re-created."]
                    AlreadyExists,
                    #[codec(index = 2)]
                    #[doc = "Overflow ocurred when calculating the inverse rate."]
                    Overflow,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    AssetRateCreated {
                        asset_kind:
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        rate: runtime_types::sp_arithmetic::fixed_point::FixedU128,
                    },
                    #[codec(index = 1)]
                    AssetRateRemoved {
                        asset_kind:
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                    },
                    #[codec(index = 2)]
                    AssetRateUpdated {
                        asset_kind:
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        old: runtime_types::sp_arithmetic::fixed_point::FixedU128,
                        new: runtime_types::sp_arithmetic::fixed_point::FixedU128,
                    },
                }
            }
        }
        pub mod pallet_babe {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                    #[doc = "the equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence will"]
                    #[doc = "be reported."]
                    report_equivocation {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_slots::EquivocationProof<
                                runtime_types::sp_runtime::generic::header::Header<
                                    ::core::primitive::u32,
                                >,
                                runtime_types::sp_consensus_babe::app::Public,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 1)]
                    #[doc = "Report authority equivocation/misbehavior. This method will verify"]
                    #[doc = "the equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence will"]
                    #[doc = "be reported."]
                    #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                    #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                    #[doc = "if the block author is defined it will be defined as the equivocation"]
                    #[doc = "reporter."]
                    report_equivocation_unsigned {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_slots::EquivocationProof<
                                runtime_types::sp_runtime::generic::header::Header<
                                    ::core::primitive::u32,
                                >,
                                runtime_types::sp_consensus_babe::app::Public,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 2)]
                    #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"]
                    #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."]
                    #[doc = "Multiple calls to this method will replace any existing planned config change that had"]
                    #[doc = "not been enacted yet."]
                    plan_config_change {
                        config: runtime_types::sp_consensus_babe::digests::NextConfigDescriptor,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "An equivocation proof provided as part of an equivocation report is invalid."]
                    InvalidEquivocationProof,
                    #[codec(index = 1)]
                    #[doc = "A key ownership proof provided as part of an equivocation report is invalid."]
                    InvalidKeyOwnershipProof,
                    #[codec(index = 2)]
                    #[doc = "A given equivocation report is valid but already previously reported."]
                    DuplicateOffenceReport,
                    #[codec(index = 3)]
                    #[doc = "Submitted configuration is invalid."]
                    InvalidConfiguration,
                }
            }
        }
        pub mod pallet_balances {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Transfer some liquid free balance to another account."]
                    #[doc = ""]
                    #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."]
                    #[doc = "If the sender's account is below the existential deposit as a result"]
                    #[doc = "of the transfer, the account will be reaped."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
                    transfer_allow_death {
                        dest: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"]
                    #[doc = "may be specified."]
                    force_transfer {
                        source: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        dest: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"]
                    #[doc = "kill the origin account."]
                    #[doc = ""]
                    #[doc = "99% of the time you want [`transfer_allow_death`] instead."]
                    #[doc = ""]
                    #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"]
                    transfer_keep_alive {
                        dest: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "Transfer the entire transferable balance from the caller account."]
                    #[doc = ""]
                    #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"]
                    #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"]
                    #[doc = "transferred by this function. To ensure that this function results in a killed account,"]
                    #[doc = "you might need to prepare the account by removing any reference counters, storage"]
                    #[doc = "deposits, etc..."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be Signed."]
                    #[doc = ""]
                    #[doc = "- `dest`: The recipient of the transfer."]
                    #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"]
                    #[doc = "  of the funds the account has, causing the sender account to be killed (false), or"]
                    #[doc = "  transfer everything except at least the existential deposit, which will guarantee to"]
                    #[doc = "  keep the sender account alive (true)."]
                    transfer_all {
                        dest: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        keep_alive: ::core::primitive::bool,
                    },
                    #[codec(index = 5)]
                    #[doc = "Unreserve some balance from a user by force."]
                    #[doc = ""]
                    #[doc = "Can only be called by ROOT."]
                    force_unreserve {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 6)]
                    #[doc = "Upgrade a specified account."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be `Signed`."]
                    #[doc = "- `who`: The account to be upgraded."]
                    #[doc = ""]
                    #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"]
                    #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"]
                    #[doc = "possibility of churn)."]
                    upgrade_accounts {
                        who: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    },
                    #[codec(index = 8)]
                    #[doc = "Set the regular balance of a given account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call is `root`."]
                    force_set_balance {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        new_free: ::core::primitive::u128,
                    },
                    #[codec(index = 9)]
                    #[doc = "Adjust the total issuance in a saturating way."]
                    #[doc = ""]
                    #[doc = "Can only be called by root and always needs a positive `delta`."]
                    #[doc = ""]
                    #[doc = "# Example"]
                    force_adjust_total_issuance {
                        direction: runtime_types::pallet_balances::types::AdjustmentDirection,
                        #[codec(compact)]
                        delta: ::core::primitive::u128,
                    },
                    #[codec(index = 10)]
                    #[doc = "Burn the specified liquid free balance from the origin account."]
                    #[doc = ""]
                    #[doc = "If the origin's account ends up below the existential deposit as a result"]
                    #[doc = "of the burn and `keep_alive` is false, the account will be reaped."]
                    #[doc = ""]
                    #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"]
                    #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."]
                    burn {
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                        keep_alive: ::core::primitive::bool,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Vesting balance too high to send value."]
                    VestingBalance,
                    #[codec(index = 1)]
                    #[doc = "Account liquidity restrictions prevent withdrawal."]
                    LiquidityRestrictions,
                    #[codec(index = 2)]
                    #[doc = "Balance too low to send value."]
                    InsufficientBalance,
                    #[codec(index = 3)]
                    #[doc = "Value too low to create account due to existential deposit."]
                    ExistentialDeposit,
                    #[codec(index = 4)]
                    #[doc = "Transfer/payment would kill account."]
                    Expendability,
                    #[codec(index = 5)]
                    #[doc = "A vesting schedule already exists for this account."]
                    ExistingVestingSchedule,
                    #[codec(index = 6)]
                    #[doc = "Beneficiary account must pre-exist."]
                    DeadAccount,
                    #[codec(index = 7)]
                    #[doc = "Number of named reserves exceed `MaxReserves`."]
                    TooManyReserves,
                    #[codec(index = 8)]
                    #[doc = "Number of holds exceed `VariantCountOf<T::RuntimeHoldReason>`."]
                    TooManyHolds,
                    #[codec(index = 9)]
                    #[doc = "Number of freezes exceed `MaxFreezes`."]
                    TooManyFreezes,
                    #[codec(index = 10)]
                    #[doc = "The issuance cannot be modified since it is already deactivated."]
                    IssuanceDeactivated,
                    #[codec(index = 11)]
                    #[doc = "The delta cannot be zero."]
                    DeltaZero,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "An account was created with some free balance."]
                    Endowed {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                        free_balance: ::core::primitive::u128,
                    },
                    #[codec(index = 1)]
                    #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"]
                    #[doc = "resulting in an outright loss."]
                    DustLost {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "Transfer succeeded."]
                    Transfer {
                        from: ::subxt::ext::subxt_core::utils::AccountId32,
                        to: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "A balance was set by root."]
                    BalanceSet {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        free: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "Some balance was reserved (moved from free to reserved)."]
                    Reserved {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 5)]
                    #[doc = "Some balance was unreserved (moved from reserved to free)."]
                    Unreserved {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 6)]
                    #[doc = "Some balance was moved from the reserve of the first account to the second account."]
                    #[doc = "Final argument indicates the destination balance type."]
                    ReserveRepatriated {
                        from: ::subxt::ext::subxt_core::utils::AccountId32,
                        to: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                        destination_status:
                            runtime_types::frame_support::traits::tokens::misc::BalanceStatus,
                    },
                    #[codec(index = 7)]
                    #[doc = "Some amount was deposited (e.g. for transaction fees)."]
                    Deposit {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 8)]
                    #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."]
                    Withdraw {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 9)]
                    #[doc = "Some amount was removed from the account (e.g. for misbehavior)."]
                    Slashed {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 10)]
                    #[doc = "Some amount was minted into an account."]
                    Minted {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 11)]
                    #[doc = "Some amount was burned from an account."]
                    Burned {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 12)]
                    #[doc = "Some amount was suspended from an account (it can be restored later)."]
                    Suspended {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 13)]
                    #[doc = "Some amount was restored into an account."]
                    Restored {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 14)]
                    #[doc = "An account was upgraded."]
                    Upgraded {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 15)]
                    #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."]
                    Issued { amount: ::core::primitive::u128 },
                    #[codec(index = 16)]
                    #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."]
                    Rescinded { amount: ::core::primitive::u128 },
                    #[codec(index = 17)]
                    #[doc = "Some balance was locked."]
                    Locked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 18)]
                    #[doc = "Some balance was unlocked."]
                    Unlocked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 19)]
                    #[doc = "Some balance was frozen."]
                    Frozen {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 20)]
                    #[doc = "Some balance was thawed."]
                    Thawed {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 21)]
                    #[doc = "The `TotalIssuance` was forcefully changed."]
                    TotalIssuanceForced {
                        old: ::core::primitive::u128,
                        new: ::core::primitive::u128,
                    },
                }
            }
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AccountData<_0> {
                    pub free: _0,
                    pub reserved: _0,
                    pub frozen: _0,
                    pub flags: runtime_types::pallet_balances::types::ExtraFlags,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum AdjustmentDirection {
                    #[codec(index = 0)]
                    Increase,
                    #[codec(index = 1)]
                    Decrease,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BalanceLock<_0> {
                    pub id: [::core::primitive::u8; 8usize],
                    pub amount: _0,
                    pub reasons: runtime_types::pallet_balances::types::Reasons,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ExtraFlags(pub ::core::primitive::u128);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Reasons {
                    #[codec(index = 0)]
                    Fee,
                    #[codec(index = 1)]
                    Misc,
                    #[codec(index = 2)]
                    All,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ReserveData<_0, _1> {
                    pub id: _0,
                    pub amount: _1,
                }
            }
        }
        pub mod pallet_beefy {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                    #[doc = "equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence"]
                    #[doc = "will be reported."]
                    report_double_voting {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::DoubleVotingProof<
                                ::core::primitive::u32,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 1)]
                    #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                    #[doc = "equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence"]
                    #[doc = "will be reported."]
                    #[doc = ""]
                    #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                    #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                    #[doc = "if the block author is defined it will be defined as the equivocation"]
                    #[doc = "reporter."]
                    report_double_voting_unsigned {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::DoubleVotingProof<
                                ::core::primitive::u32,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 2)]
                    #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"]
                    #[doc = "future."]
                    #[doc = ""]
                    #[doc = "Note: `delay_in_blocks` has to be at least 1."]
                    set_new_genesis {
                        delay_in_blocks: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                    #[doc = "and validate the given key ownership proof against the extracted offender."]
                    #[doc = "If both are valid, the offence will be reported."]
                    report_fork_voting {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::ForkVotingProof<
                                runtime_types::sp_runtime::generic::header::Header<
                                    ::core::primitive::u32,
                                >,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                                runtime_types::sp_mmr_primitives::AncestryProof<
                                    ::subxt::ext::subxt_core::utils::H256,
                                >,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 4)]
                    #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"]
                    #[doc = "and validate the given key ownership proof against the extracted offender."]
                    #[doc = "If both are valid, the offence will be reported."]
                    #[doc = ""]
                    #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                    #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                    #[doc = "if the block author is defined it will be defined as the equivocation"]
                    #[doc = "reporter."]
                    report_fork_voting_unsigned {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::ForkVotingProof<
                                runtime_types::sp_runtime::generic::header::Header<
                                    ::core::primitive::u32,
                                >,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                                runtime_types::sp_mmr_primitives::AncestryProof<
                                    ::subxt::ext::subxt_core::utils::H256,
                                >,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 5)]
                    #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                    #[doc = "and validate the given key ownership proof against the extracted offender."]
                    #[doc = "If both are valid, the offence will be reported."]
                    report_future_block_voting {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::FutureBlockVotingProof<
                                ::core::primitive::u32,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 6)]
                    #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"]
                    #[doc = "and validate the given key ownership proof against the extracted offender."]
                    #[doc = "If both are valid, the offence will be reported."]
                    #[doc = ""]
                    #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                    #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                    #[doc = "if the block author is defined it will be defined as the equivocation"]
                    #[doc = "reporter."]
                    report_future_block_voting_unsigned {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_beefy::FutureBlockVotingProof<
                                ::core::primitive::u32,
                                runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "A key ownership proof provided as part of an equivocation report is invalid."]
                    InvalidKeyOwnershipProof,
                    #[codec(index = 1)]
                    #[doc = "A double voting proof provided as part of an equivocation report is invalid."]
                    InvalidDoubleVotingProof,
                    #[codec(index = 2)]
                    #[doc = "A fork voting proof provided as part of an equivocation report is invalid."]
                    InvalidForkVotingProof,
                    #[codec(index = 3)]
                    #[doc = "A future block voting proof provided as part of an equivocation report is invalid."]
                    InvalidFutureBlockVotingProof,
                    #[codec(index = 4)]
                    #[doc = "The session of the equivocation proof is invalid"]
                    InvalidEquivocationProofSession,
                    #[codec(index = 5)]
                    #[doc = "A given equivocation report is valid but already previously reported."]
                    DuplicateOffenceReport,
                    #[codec(index = 6)]
                    #[doc = "Submitted configuration is invalid."]
                    InvalidConfiguration,
                }
            }
        }
        pub mod pallet_bounties {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Propose a new bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"]
                    #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"]
                    #[doc = "or slashed when rejected."]
                    #[doc = ""]
                    #[doc = "- `curator`: The curator account whom will manage this bounty."]
                    #[doc = "- `fee`: The curator fee."]
                    #[doc = "- `value`: The total payment amount of this bounty, curator fee included."]
                    #[doc = "- `description`: The description of this bounty."]
                    propose_bounty {
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                        description:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"]
                    #[doc = "and the original deposit will be returned."]
                    #[doc = ""]
                    #[doc = "May only be called from `T::SpendOrigin`."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    approve_bounty {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Propose a curator to a funded bounty."]
                    #[doc = ""]
                    #[doc = "May only be called from `T::SpendOrigin`."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    propose_curator {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                        curator: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        fee: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "Unassign curator from a bounty."]
                    #[doc = ""]
                    #[doc = "This function can only be called by the `RejectOrigin` a signed origin."]
                    #[doc = ""]
                    #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"]
                    #[doc = "malicious or inactive. As a result, we will slash the curator when possible."]
                    #[doc = ""]
                    #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"]
                    #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"]
                    #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"]
                    #[doc = ""]
                    #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"]
                    #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"]
                    #[doc = "we should pick a new curator. In this case the curator should also be slashed."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    unassign_curator {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 4)]
                    #[doc = "Accept the curator role for a bounty."]
                    #[doc = "A deposit will be reserved from curator and refund upon successful payout."]
                    #[doc = ""]
                    #[doc = "May only be called from the curator."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    accept_curator {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"]
                    #[doc = "after a delay."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                    #[doc = ""]
                    #[doc = "- `bounty_id`: Bounty ID to award."]
                    #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    award_bounty {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                        beneficiary: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 6)]
                    #[doc = "Claim the payout from an awarded bounty after payout delay."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."]
                    #[doc = ""]
                    #[doc = "- `bounty_id`: Bounty ID to claim."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    claim_bounty {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 7)]
                    #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"]
                    #[doc = "the curator deposit will be unreserved if possible."]
                    #[doc = ""]
                    #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."]
                    #[doc = ""]
                    #[doc = "- `bounty_id`: Bounty ID to cancel."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    close_bounty {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    #[doc = "Extend the expiry time of an active bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the curator of this bounty."]
                    #[doc = ""]
                    #[doc = "- `bounty_id`: Bounty ID to extend."]
                    #[doc = "- `remark`: additional information."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    extend_bounty_expiry {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                        remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 9)]
                    #[doc = "Approve bountry and propose a curator simultaneously."]
                    #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."]
                    #[doc = ""]
                    #[doc = "May only be called from `T::SpendOrigin`."]
                    #[doc = ""]
                    #[doc = "- `bounty_id`: Bounty ID to approve."]
                    #[doc = "- `curator`: The curator account whom will manage this bounty."]
                    #[doc = "- `fee`: The curator fee."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    approve_bounty_with_curator {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                        curator: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        fee: ::core::primitive::u128,
                    },
                    #[codec(index = 10)]
                    #[doc = "Poke the deposit reserved for creating a bounty proposal."]
                    #[doc = ""]
                    #[doc = "This can be used by accounts to update their reserved amount."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `bounty_id`: The bounty id for which to adjust the deposit."]
                    #[doc = ""]
                    #[doc = "If the deposit is updated, the difference will be reserved/unreserved from the"]
                    #[doc = "proposer's account."]
                    #[doc = ""]
                    #[doc = "The transaction is made free if the deposit is updated and paid otherwise."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if the deposit is updated."]
                    poke_deposit {
                        #[codec(compact)]
                        bounty_id: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Proposer's balance is too low."]
                    InsufficientProposersBalance,
                    #[codec(index = 1)]
                    #[doc = "No proposal or bounty at that index."]
                    InvalidIndex,
                    #[codec(index = 2)]
                    #[doc = "The reason given is just too big."]
                    ReasonTooBig,
                    #[codec(index = 3)]
                    #[doc = "The bounty status is unexpected."]
                    UnexpectedStatus,
                    #[codec(index = 4)]
                    #[doc = "Require bounty curator."]
                    RequireCurator,
                    #[codec(index = 5)]
                    #[doc = "Invalid bounty value."]
                    InvalidValue,
                    #[codec(index = 6)]
                    #[doc = "Invalid bounty fee."]
                    InvalidFee,
                    #[codec(index = 7)]
                    #[doc = "A bounty payout is pending."]
                    #[doc = "To cancel the bounty, you must unassign and slash the curator."]
                    PendingPayout,
                    #[codec(index = 8)]
                    #[doc = "The bounties cannot be claimed/closed because it's still in the countdown period."]
                    Premature,
                    #[codec(index = 9)]
                    #[doc = "The bounty cannot be closed because it has active child bounties."]
                    HasActiveChildBounty,
                    #[codec(index = 10)]
                    #[doc = "Too many approvals are already queued."]
                    TooManyQueued,
                    #[codec(index = 11)]
                    #[doc = "User is not the proposer of the bounty."]
                    NotProposer,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "New bounty proposal."]
                    BountyProposed { index: ::core::primitive::u32 },
                    #[codec(index = 1)]
                    #[doc = "A bounty proposal was rejected; funds were slashed."]
                    BountyRejected {
                        index: ::core::primitive::u32,
                        bond: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "A bounty proposal is funded and became active."]
                    BountyBecameActive { index: ::core::primitive::u32 },
                    #[codec(index = 3)]
                    #[doc = "A bounty is awarded to a beneficiary."]
                    BountyAwarded {
                        index: ::core::primitive::u32,
                        beneficiary: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 4)]
                    #[doc = "A bounty is claimed by beneficiary."]
                    BountyClaimed {
                        index: ::core::primitive::u32,
                        payout: ::core::primitive::u128,
                        beneficiary: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A bounty is cancelled."]
                    BountyCanceled { index: ::core::primitive::u32 },
                    #[codec(index = 6)]
                    #[doc = "A bounty expiry is extended."]
                    BountyExtended { index: ::core::primitive::u32 },
                    #[codec(index = 7)]
                    #[doc = "A bounty is approved."]
                    BountyApproved { index: ::core::primitive::u32 },
                    #[codec(index = 8)]
                    #[doc = "A bounty curator is proposed."]
                    CuratorProposed {
                        bounty_id: ::core::primitive::u32,
                        curator: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 9)]
                    #[doc = "A bounty curator is unassigned."]
                    CuratorUnassigned { bounty_id: ::core::primitive::u32 },
                    #[codec(index = 10)]
                    #[doc = "A bounty curator is accepted."]
                    CuratorAccepted {
                        bounty_id: ::core::primitive::u32,
                        curator: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 11)]
                    #[doc = "A bounty deposit has been poked."]
                    DepositPoked {
                        bounty_id: ::core::primitive::u32,
                        proposer: ::subxt::ext::subxt_core::utils::AccountId32,
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Bounty<_0, _1, _2> {
                pub proposer: _0,
                pub value: _1,
                pub fee: _1,
                pub curator_deposit: _1,
                pub bond: _1,
                pub status: runtime_types::pallet_bounties::BountyStatus<_0, _2>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum BountyStatus<_0, _1> {
                #[codec(index = 0)]
                Proposed,
                #[codec(index = 1)]
                Approved,
                #[codec(index = 2)]
                Funded,
                #[codec(index = 3)]
                CuratorProposed { curator: _0 },
                #[codec(index = 4)]
                Active { curator: _0, update_due: _1 },
                #[codec(index = 5)]
                PendingPayout {
                    curator: _0,
                    beneficiary: _0,
                    unlock_at: _1,
                },
                #[codec(index = 6)]
                ApprovedWithCurator { curator: _0 },
            }
        }
        pub mod pallet_broker {
            use super::runtime_types;
            pub mod coretime_interface {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum CoreAssignment {
                    #[codec(index = 0)]
                    Idle,
                    #[codec(index = 1)]
                    Pool,
                    #[codec(index = 2)]
                    Task(::core::primitive::u32),
                }
            }
        }
        pub mod pallet_child_bounties {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Add a new child-bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the curator of parent"]
                    #[doc = "bounty and the parent bounty must be in \"active\" state."]
                    #[doc = ""]
                    #[doc = "Child-bounty gets added successfully & fund gets transferred from"]
                    #[doc = "parent bounty to child-bounty account, if parent bounty has enough"]
                    #[doc = "funds, else the call fails."]
                    #[doc = ""]
                    #[doc = "Upper bound to maximum number of active  child bounties that can be"]
                    #[doc = "added are managed via runtime trait config"]
                    #[doc = "[`Config::MaxActiveChildBountyCount`]."]
                    #[doc = ""]
                    #[doc = "If the call is success, the status of child-bounty is updated to"]
                    #[doc = "\"Added\"."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."]
                    #[doc = "- `value`: Value for executing the proposal."]
                    #[doc = "- `description`: Text description for the child-bounty."]
                    add_child_bounty {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        value: ::core::primitive::u128,
                        description:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Propose curator for funded child-bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be curator of parent bounty."]
                    #[doc = ""]
                    #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                    #[doc = "work."]
                    #[doc = ""]
                    #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"]
                    #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"]
                    #[doc = "call completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    #[doc = "- `curator`: Address of child-bounty curator."]
                    #[doc = "- `fee`: payment fee to child-bounty curator for execution."]
                    propose_curator {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                        curator: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        #[codec(compact)]
                        fee: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "Accept the curator role for the child-bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the curator of this"]
                    #[doc = "child-bounty."]
                    #[doc = ""]
                    #[doc = "A deposit will be reserved from the curator and refund upon"]
                    #[doc = "successful payout or cancellation."]
                    #[doc = ""]
                    #[doc = "Fee for curator is deducted from curator fee of parent bounty."]
                    #[doc = ""]
                    #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                    #[doc = "work."]
                    #[doc = ""]
                    #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"]
                    #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"]
                    #[doc = "call completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    accept_curator {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Unassign curator from a child-bounty."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"]
                    #[doc = "the curator of the parent bounty, or any signed origin."]
                    #[doc = ""]
                    #[doc = "For the origin other than T::RejectOrigin and the child-bounty"]
                    #[doc = "curator, parent bounty must be in active state, for this call to"]
                    #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"]
                    #[doc = "this call irrespective of the parent bounty state."]
                    #[doc = ""]
                    #[doc = "If this function is called by the `RejectOrigin` or the"]
                    #[doc = "parent bounty curator, we assume that the child-bounty curator is"]
                    #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"]
                    #[doc = "slashed."]
                    #[doc = ""]
                    #[doc = "If the origin is the child-bounty curator, we take this as a sign"]
                    #[doc = "that they are unable to do their job, and are willingly giving up."]
                    #[doc = "We could slash the deposit, but for now we allow them to unreserve"]
                    #[doc = "their deposit and exit without issue. (We may want to change this if"]
                    #[doc = "it is abused.)"]
                    #[doc = ""]
                    #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"]
                    #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"]
                    #[doc = "inactive state of child-bounty curator."]
                    #[doc = ""]
                    #[doc = "This allows anyone in the community to call out that a child-bounty"]
                    #[doc = "curator is not doing their due diligence, and we should pick a new"]
                    #[doc = "one. In this case the child-bounty curator deposit is slashed."]
                    #[doc = ""]
                    #[doc = "State of child-bounty is moved to Added state on successful call"]
                    #[doc = "completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    unassign_curator {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 4)]
                    #[doc = "Award child-bounty to a beneficiary."]
                    #[doc = ""]
                    #[doc = "The beneficiary will be able to claim the funds after a delay."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be the parent curator or"]
                    #[doc = "curator of this child-bounty."]
                    #[doc = ""]
                    #[doc = "Parent bounty must be in active state, for this child-bounty call to"]
                    #[doc = "work."]
                    #[doc = ""]
                    #[doc = "Child-bounty must be in active state, for processing the call. And"]
                    #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"]
                    #[doc = "completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    #[doc = "- `beneficiary`: Beneficiary account."]
                    award_child_bounty {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                        beneficiary: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 5)]
                    #[doc = "Claim the payout from an awarded child-bounty after payout delay."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call may be any signed origin."]
                    #[doc = ""]
                    #[doc = "Call works independent of parent bounty state, No need for parent"]
                    #[doc = "bounty to be in active state."]
                    #[doc = ""]
                    #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"]
                    #[doc = "paid & curator deposit is unreserved."]
                    #[doc = ""]
                    #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"]
                    #[doc = "call. And instance of child-bounty is removed from the state on"]
                    #[doc = "successful call completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    claim_child_bounty {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"]
                    #[doc = "are transferred to parent bounty account. The child-bounty curator"]
                    #[doc = "deposit may be unreserved if possible."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be either parent curator or"]
                    #[doc = "`T::RejectOrigin`."]
                    #[doc = ""]
                    #[doc = "If the state of child-bounty is `Active`, curator deposit is"]
                    #[doc = "unreserved."]
                    #[doc = ""]
                    #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"]
                    #[doc = "returns `PendingPayout` error."]
                    #[doc = ""]
                    #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"]
                    #[doc = "active state, for this child-bounty call to work. For origin"]
                    #[doc = "T::RejectOrigin execution is forced."]
                    #[doc = ""]
                    #[doc = "Instance of child-bounty is removed from the state on successful"]
                    #[doc = "call completion."]
                    #[doc = ""]
                    #[doc = "- `parent_bounty_id`: Index of parent bounty."]
                    #[doc = "- `child_bounty_id`: Index of child bounty."]
                    close_child_bounty {
                        #[codec(compact)]
                        parent_bounty_id: ::core::primitive::u32,
                        #[codec(compact)]
                        child_bounty_id: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The parent bounty is not in active state."]
                    ParentBountyNotActive,
                    #[codec(index = 1)]
                    #[doc = "The bounty balance is not enough to add new child-bounty."]
                    InsufficientBountyBalance,
                    #[codec(index = 2)]
                    #[doc = "Number of child bounties exceeds limit `MaxActiveChildBountyCount`."]
                    TooManyChildBounties,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A child-bounty is added."]
                    Added {
                        index: ::core::primitive::u32,
                        child_index: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A child-bounty is awarded to a beneficiary."]
                    Awarded {
                        index: ::core::primitive::u32,
                        child_index: ::core::primitive::u32,
                        beneficiary: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 2)]
                    #[doc = "A child-bounty is claimed by beneficiary."]
                    Claimed {
                        index: ::core::primitive::u32,
                        child_index: ::core::primitive::u32,
                        payout: ::core::primitive::u128,
                        beneficiary: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 3)]
                    #[doc = "A child-bounty is cancelled."]
                    Canceled {
                        index: ::core::primitive::u32,
                        child_index: ::core::primitive::u32,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ChildBounty<_0, _1, _2> {
                pub parent_bounty: ::core::primitive::u32,
                pub value: _1,
                pub fee: _1,
                pub curator_deposit: _1,
                pub status: runtime_types::pallet_child_bounties::ChildBountyStatus<_0, _2>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum ChildBountyStatus<_0, _1> {
                #[codec(index = 0)]
                Added,
                #[codec(index = 1)]
                CuratorProposed { curator: _0 },
                #[codec(index = 2)]
                Active { curator: _0 },
                #[codec(index = 3)]
                PendingPayout {
                    curator: _0,
                    beneficiary: _0,
                    unlock_at: _1,
                },
            }
        }
        pub mod pallet_conviction_voting {
            use super::runtime_types;
            pub mod conviction {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Conviction {
                    #[codec(index = 0)]
                    None,
                    #[codec(index = 1)]
                    Locked1x,
                    #[codec(index = 2)]
                    Locked2x,
                    #[codec(index = 3)]
                    Locked3x,
                    #[codec(index = 4)]
                    Locked4x,
                    #[codec(index = 5)]
                    Locked5x,
                    #[codec(index = 6)]
                    Locked6x,
                }
            }
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"]
                    #[doc = "otherwise it is a vote to keep the status quo."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `poll_index`: The index of the poll to vote for."]
                    #[doc = "- `vote`: The vote configuration."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."]
                    vote {
                        #[codec(compact)]
                        poll_index: ::core::primitive::u32,
                        vote: runtime_types::pallet_conviction_voting::vote::AccountVote<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"]
                    #[doc = "particular class of polls."]
                    #[doc = ""]
                    #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"]
                    #[doc = "time appropriate for the conviction's lock period."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"]
                    #[doc = "  - be delegating already; or"]
                    #[doc = "  - have no voting activity (if there is, then it will need to be removed through"]
                    #[doc = "    `remove_vote`)."]
                    #[doc = ""]
                    #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."]
                    #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"]
                    #[doc = "  to this function are required."]
                    #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"]
                    #[doc = "  account is undelegated, the funds will be locked for the corresponding period."]
                    #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"]
                    #[doc = "  be more than the account's current balance."]
                    #[doc = ""]
                    #[doc = "Emits `Delegated`."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                    #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                    delegate {
                        class: ::core::primitive::u16,
                        to: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        conviction: runtime_types::pallet_conviction_voting::conviction::Conviction,
                        balance: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "Undelegate the voting power of the sending account for a particular class of polls."]
                    #[doc = ""]
                    #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"]
                    #[doc = "of the conviction with which the delegation was issued has passed."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"]
                    #[doc = "currently delegating."]
                    #[doc = ""]
                    #[doc = "- `class`: The class of polls to remove the delegation from."]
                    #[doc = ""]
                    #[doc = "Emits `Undelegated`."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"]
                    #[doc = "  voted on. Weight is initially charged as if maximum votes, but is refunded later."]
                    undelegate { class: ::core::primitive::u16 },
                    #[codec(index = 3)]
                    #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"]
                    #[doc = "class."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `class`: The class of polls to unlock."]
                    #[doc = "- `target`: The account to remove the lock on."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R)` with R number of vote of target."]
                    unlock {
                        class: ::core::primitive::u16,
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Remove a vote for a poll."]
                    #[doc = ""]
                    #[doc = "If:"]
                    #[doc = "- the poll was cancelled, or"]
                    #[doc = "- the poll is ongoing, or"]
                    #[doc = "- the poll has ended such that"]
                    #[doc = "  - the vote of the account was in opposition to the result; or"]
                    #[doc = "  - there was no conviction to the account's vote; or"]
                    #[doc = "  - the account made a split vote"]
                    #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"]
                    #[doc = "funds being available."]
                    #[doc = ""]
                    #[doc = "If, however, the poll has ended and:"]
                    #[doc = "- it finished corresponding to the vote of the account, and"]
                    #[doc = "- the account made a standard vote with conviction, and"]
                    #[doc = "- the lock period of the conviction is not over"]
                    #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"]
                    #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"]
                    #[doc = "of both the amount locked and the time is it locked for)."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"]
                    #[doc = "registered for poll `index`."]
                    #[doc = ""]
                    #[doc = "- `index`: The index of poll of the vote to be removed."]
                    #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"]
                    #[doc = "  which have finished or are cancelled, this must be `Some`."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                    #[doc = "  Weight is calculated for the maximum number of vote."]
                    remove_vote {
                        class: ::core::option::Option<::core::primitive::u16>,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "Remove a vote for a poll."]
                    #[doc = ""]
                    #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"]
                    #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"]
                    #[doc = "either because the poll was cancelled, because the voter lost the poll or"]
                    #[doc = "because the conviction period is over."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"]
                    #[doc = "  `index`."]
                    #[doc = "- `index`: The index of poll of the vote to be removed."]
                    #[doc = "- `class`: The class of the poll."]
                    #[doc = ""]
                    #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."]
                    #[doc = "  Weight is calculated for the maximum number of vote."]
                    remove_other_vote {
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        class: ::core::primitive::u16,
                        index: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Poll is not ongoing."]
                    NotOngoing,
                    #[codec(index = 1)]
                    #[doc = "The given account did not vote on the poll."]
                    NotVoter,
                    #[codec(index = 2)]
                    #[doc = "The actor has no permission to conduct the action."]
                    NoPermission,
                    #[codec(index = 3)]
                    #[doc = "The actor has no permission to conduct the action right now but will do in the future."]
                    NoPermissionYet,
                    #[codec(index = 4)]
                    #[doc = "The account is already delegating."]
                    AlreadyDelegating,
                    #[codec(index = 5)]
                    #[doc = "The account currently has votes attached to it and the operation cannot succeed until"]
                    #[doc = "these are removed through `remove_vote`."]
                    AlreadyVoting,
                    #[codec(index = 6)]
                    #[doc = "Too high a balance was provided that the account cannot afford."]
                    InsufficientFunds,
                    #[codec(index = 7)]
                    #[doc = "The account is not currently delegating."]
                    NotDelegating,
                    #[codec(index = 8)]
                    #[doc = "Delegation to oneself makes no sense."]
                    Nonsense,
                    #[codec(index = 9)]
                    #[doc = "Maximum number of votes reached."]
                    MaxVotesReached,
                    #[codec(index = 10)]
                    #[doc = "The class must be supplied since it is not easily determinable from the state."]
                    ClassNeeded,
                    #[codec(index = 11)]
                    #[doc = "The class ID supplied is invalid."]
                    BadClass,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "An account has delegated their vote to another account. \\[who, target\\]"]
                    Delegated(
                        ::subxt::ext::subxt_core::utils::AccountId32,
                        ::subxt::ext::subxt_core::utils::AccountId32,
                    ),
                    #[codec(index = 1)]
                    #[doc = "An \\[account\\] has cancelled a previous delegation operation."]
                    Undelegated(::subxt::ext::subxt_core::utils::AccountId32),
                    #[codec(index = 2)]
                    #[doc = "An account has voted"]
                    Voted {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        vote: runtime_types::pallet_conviction_voting::vote::AccountVote<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "A vote has been removed"]
                    VoteRemoved {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        vote: runtime_types::pallet_conviction_voting::vote::AccountVote<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "The lockup period of a conviction vote expired, and the funds have been unlocked."]
                    VoteUnlocked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        class: ::core::primitive::u16,
                    },
                }
            }
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Delegations<_0> {
                    pub votes: _0,
                    pub capital: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Tally<_0> {
                    pub ayes: _0,
                    pub nays: _0,
                    pub support: _0,
                }
            }
            pub mod vote {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum AccountVote<_0> {
                    #[codec(index = 0)]
                    Standard {
                        vote: runtime_types::pallet_conviction_voting::vote::Vote,
                        balance: _0,
                    },
                    #[codec(index = 1)]
                    Split { aye: _0, nay: _0 },
                    #[codec(index = 2)]
                    SplitAbstain { aye: _0, nay: _0, abstain: _0 },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Casting<_0, _1, _2> {
                    pub votes: runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                        _1,
                        runtime_types::pallet_conviction_voting::vote::AccountVote<_0>,
                    )>,
                    pub delegations:
                        runtime_types::pallet_conviction_voting::types::Delegations<_0>,
                    pub prior: runtime_types::pallet_conviction_voting::vote::PriorLock<_1, _0>,
                    #[codec(skip)]
                    pub __ignore: ::core::marker::PhantomData<_2>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Delegating<_0, _1, _2> {
                    pub balance: _0,
                    pub target: _1,
                    pub conviction: runtime_types::pallet_conviction_voting::conviction::Conviction,
                    pub delegations:
                        runtime_types::pallet_conviction_voting::types::Delegations<_0>,
                    pub prior: runtime_types::pallet_conviction_voting::vote::PriorLock<_2, _0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PriorLock<_0, _1>(pub _0, pub _1);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Vote(pub ::core::primitive::u8);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Voting<_0, _1, _2, _3> {
                    #[codec(index = 0)]
                    Casting(runtime_types::pallet_conviction_voting::vote::Casting<_0, _2, _2>),
                    #[codec(index = 1)]
                    Delegating(
                        runtime_types::pallet_conviction_voting::vote::Delegating<_0, _1, _2>,
                    ),
                    __Ignore(::core::marker::PhantomData<_3>),
                }
            }
        }
        pub mod pallet_grandpa {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                    #[doc = "equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence"]
                    #[doc = "will be reported."]
                    report_equivocation {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_grandpa::EquivocationProof<
                                ::subxt::ext::subxt_core::utils::H256,
                                ::core::primitive::u32,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 1)]
                    #[doc = "Report voter equivocation/misbehavior. This method will verify the"]
                    #[doc = "equivocation proof and validate the given key ownership proof"]
                    #[doc = "against the extracted offender. If both are valid, the offence"]
                    #[doc = "will be reported."]
                    #[doc = ""]
                    #[doc = "This extrinsic must be called unsigned and it is expected that only"]
                    #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
                    #[doc = "if the block author is defined it will be defined as the equivocation"]
                    #[doc = "reporter."]
                    report_equivocation_unsigned {
                        equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::sp_consensus_grandpa::EquivocationProof<
                                ::subxt::ext::subxt_core::utils::H256,
                                ::core::primitive::u32,
                            >,
                        >,
                        key_owner_proof: runtime_types::sp_session::MembershipProof,
                    },
                    #[codec(index = 2)]
                    #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."]
                    #[doc = ""]
                    #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"]
                    #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"]
                    #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."]
                    #[doc = "The block production rate (which may be slowed down because of finality lagging) should"]
                    #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"]
                    #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"]
                    #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"]
                    #[doc = "block of all validators of the new authority set."]
                    #[doc = ""]
                    #[doc = "Only callable by root."]
                    note_stalled {
                        delay: ::core::primitive::u32,
                        best_finalized_block_number: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Attempt to signal GRANDPA pause when the authority set isn't live"]
                    #[doc = "(either paused or already pending pause)."]
                    PauseFailed,
                    #[codec(index = 1)]
                    #[doc = "Attempt to signal GRANDPA resume when the authority set isn't paused"]
                    #[doc = "(either live or already pending resume)."]
                    ResumeFailed,
                    #[codec(index = 2)]
                    #[doc = "Attempt to signal GRANDPA change with one already pending."]
                    ChangePending,
                    #[codec(index = 3)]
                    #[doc = "Cannot signal forced change so soon after last."]
                    TooSoon,
                    #[codec(index = 4)]
                    #[doc = "A key ownership proof provided as part of an equivocation report is invalid."]
                    InvalidKeyOwnershipProof,
                    #[codec(index = 5)]
                    #[doc = "An equivocation proof provided as part of an equivocation report is invalid."]
                    InvalidEquivocationProof,
                    #[codec(index = 6)]
                    #[doc = "A given equivocation report is valid but already previously reported."]
                    DuplicateOffenceReport,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "New authority set has been applied."]
                    NewAuthorities {
                        authority_set: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            runtime_types::sp_consensus_grandpa::app::Public,
                            ::core::primitive::u64,
                        )>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Current authority set has been paused."]
                    Paused,
                    #[codec(index = 2)]
                    #[doc = "Current authority set has been resumed."]
                    Resumed,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct StoredPendingChange<_0> {
                pub scheduled_at: _0,
                pub delay: _0,
                pub next_authorities:
                    runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<(
                        runtime_types::sp_consensus_grandpa::app::Public,
                        ::core::primitive::u64,
                    )>,
                pub forced: ::core::option::Option<_0>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum StoredState<_0> {
                #[codec(index = 0)]
                Live,
                #[codec(index = 1)]
                PendingPause { scheduled_at: _0, delay: _0 },
                #[codec(index = 2)]
                Paused,
                #[codec(index = 3)]
                PendingResume { scheduled_at: _0, delay: _0 },
            }
        }
        pub mod pallet_identity {
            use super::runtime_types;
            pub mod legacy {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct IdentityInfo {
                    pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                        runtime_types::pallet_identity::types::Data,
                        runtime_types::pallet_identity::types::Data,
                    )>,
                    pub display: runtime_types::pallet_identity::types::Data,
                    pub legal: runtime_types::pallet_identity::types::Data,
                    pub web: runtime_types::pallet_identity::types::Data,
                    pub riot: runtime_types::pallet_identity::types::Data,
                    pub email: runtime_types::pallet_identity::types::Data,
                    pub pgp_fingerprint: ::core::option::Option<[::core::primitive::u8; 20usize]>,
                    pub image: runtime_types::pallet_identity::types::Data,
                    pub twitter: runtime_types::pallet_identity::types::Data,
                }
            }
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Identity pallet declaration."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Add a registrar to the system."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."]
                    #[doc = ""]
                    #[doc = "- `account`: the account of the registrar."]
                    #[doc = ""]
                    #[doc = "Emits `RegistrarAdded` if successful."]
                    add_registrar {
                        account: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Set an account's identity information and reserve the appropriate deposit."]
                    #[doc = ""]
                    #[doc = "If the account already has identity information, the deposit is taken as part payment"]
                    #[doc = "for the new deposit."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `info`: The identity information."]
                    #[doc = ""]
                    #[doc = "Emits `IdentitySet` if successful."]
                    set_identity {
                        info: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::pallet_identity::legacy::IdentityInfo,
                        >,
                    },
                    #[codec(index = 2)]
                    #[doc = "Set the sub-accounts of the sender."]
                    #[doc = ""]
                    #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"]
                    #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "identity."]
                    #[doc = ""]
                    #[doc = "- `subs`: The identity's (new) sub-accounts."]
                    set_subs {
                        subs: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            runtime_types::pallet_identity::types::Data,
                        )>,
                    },
                    #[codec(index = 3)]
                    #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."]
                    #[doc = ""]
                    #[doc = "Payment: All reserved balances on the account are returned."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "identity."]
                    #[doc = ""]
                    #[doc = "Emits `IdentityCleared` if successful."]
                    clear_identity,
                    #[codec(index = 4)]
                    #[doc = "Request a judgement from a registrar."]
                    #[doc = ""]
                    #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"]
                    #[doc = "given."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                    #[doc = "registered identity."]
                    #[doc = ""]
                    #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."]
                    #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"]
                    #[doc = ""]
                    #[doc = "```nocompile"]
                    #[doc = "Registrars::<T>::get().get(reg_index).unwrap().fee"]
                    #[doc = "```"]
                    #[doc = ""]
                    #[doc = "Emits `JudgementRequested` if successful."]
                    request_judgement {
                        #[codec(compact)]
                        reg_index: ::core::primitive::u32,
                        #[codec(compact)]
                        max_fee: ::core::primitive::u128,
                    },
                    #[codec(index = 5)]
                    #[doc = "Cancel a previous request."]
                    #[doc = ""]
                    #[doc = "Payment: A previously reserved deposit is returned on success."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"]
                    #[doc = "registered identity."]
                    #[doc = ""]
                    #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."]
                    #[doc = ""]
                    #[doc = "Emits `JudgementUnrequested` if successful."]
                    cancel_request { reg_index: ::core::primitive::u32 },
                    #[codec(index = 6)]
                    #[doc = "Set the fee required for a judgement to be requested from a registrar."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                    #[doc = "of the registrar whose index is `index`."]
                    #[doc = ""]
                    #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                    #[doc = "- `fee`: the new fee."]
                    set_fee {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        #[codec(compact)]
                        fee: ::core::primitive::u128,
                    },
                    #[codec(index = 7)]
                    #[doc = "Change the account associated with a registrar."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                    #[doc = "of the registrar whose index is `index`."]
                    #[doc = ""]
                    #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                    #[doc = "- `new`: the new account ID."]
                    set_account_id {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        new: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 8)]
                    #[doc = "Set the field information for a registrar."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                    #[doc = "of the registrar whose index is `index`."]
                    #[doc = ""]
                    #[doc = "- `index`: the index of the registrar whose fee is to be set."]
                    #[doc = "- `fields`: the fields that the registrar concerns themselves with."]
                    set_fields {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        fields: ::core::primitive::u64,
                    },
                    #[codec(index = 9)]
                    #[doc = "Provide a judgement for an account's identity."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"]
                    #[doc = "of the registrar whose index is `reg_index`."]
                    #[doc = ""]
                    #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."]
                    #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                    #[doc = "  with a registered identity."]
                    #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."]
                    #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"]
                    #[doc = "  provided."]
                    #[doc = ""]
                    #[doc = "Note: Judgements do not apply to a username."]
                    #[doc = ""]
                    #[doc = "Emits `JudgementGiven` if successful."]
                    provide_judgement {
                        #[codec(compact)]
                        reg_index: ::core::primitive::u32,
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        judgement: runtime_types::pallet_identity::types::Judgement<
                            ::core::primitive::u128,
                        >,
                        identity: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 10)]
                    #[doc = "Remove an account's identity and sub-account information and slash the deposits."]
                    #[doc = ""]
                    #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"]
                    #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"]
                    #[doc = "manually using `cancel_request`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                    #[doc = ""]
                    #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"]
                    #[doc = "  with a registered identity."]
                    #[doc = ""]
                    #[doc = "Emits `IdentityKilled` if successful."]
                    kill_identity {
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 11)]
                    #[doc = "Add the given account to the sender's subs."]
                    #[doc = ""]
                    #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                    #[doc = "to the sender."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "sub identity of `sub`."]
                    add_sub {
                        sub: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        data: runtime_types::pallet_identity::types::Data,
                    },
                    #[codec(index = 12)]
                    #[doc = "Alter the associated name of the given sub-account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "sub identity of `sub`."]
                    rename_sub {
                        sub: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        data: runtime_types::pallet_identity::types::Data,
                    },
                    #[codec(index = 13)]
                    #[doc = "Remove the given account from the sender's subs."]
                    #[doc = ""]
                    #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                    #[doc = "to the sender."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "sub identity of `sub`."]
                    remove_sub {
                        sub: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 14)]
                    #[doc = "Remove the sender as a sub-account."]
                    #[doc = ""]
                    #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"]
                    #[doc = "to the sender (*not* the original depositor)."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"]
                    #[doc = "super-identity."]
                    #[doc = ""]
                    #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"]
                    #[doc = "controller of an account is maliciously registered as a sub-account."]
                    quit_sub,
                    #[codec(index = 15)]
                    #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."]
                    #[doc = ""]
                    #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"]
                    #[doc = "change the account used to grant usernames, this call can be used with the updated"]
                    #[doc = "parameters to overwrite the existing configuration."]
                    add_username_authority {
                        authority: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        suffix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        allocation: ::core::primitive::u32,
                    },
                    #[codec(index = 16)]
                    #[doc = "Remove `authority` from the username authorities."]
                    remove_username_authority {
                        suffix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        authority: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 17)]
                    #[doc = "Set the username for `who`. Must be called by a username authority."]
                    #[doc = ""]
                    #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"]
                    #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"]
                    #[doc = "username."]
                    #[doc = ""]
                    #[doc = "Users can either pre-sign their usernames or"]
                    #[doc = "accept them later."]
                    #[doc = ""]
                    #[doc = "Usernames must:"]
                    #[doc = "  - Only contain lowercase ASCII characters or digits."]
                    #[doc = "  - When combined with the suffix of the issuing authority be _less than_ the"]
                    #[doc = "    `MaxUsernameLength`."]
                    set_username_for {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        username: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        signature:
                            ::core::option::Option<runtime_types::sp_runtime::MultiSignature>,
                        use_allocation: ::core::primitive::bool,
                    },
                    #[codec(index = 18)]
                    #[doc = "Accept a given username that an `authority` granted. The call must include the full"]
                    #[doc = "username, as in `username.suffix`."]
                    accept_username {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 19)]
                    #[doc = "Remove an expired username approval. The username was approved by an authority but never"]
                    #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"]
                    #[doc = "full username, as in `username.suffix`."]
                    remove_expired_approval {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 20)]
                    #[doc = "Set a given username as the primary. The username should include the suffix."]
                    set_primary_username {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 21)]
                    #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."]
                    #[doc = "Once the grace period has passed, the username can be deleted by calling"]
                    #[doc = "[remove_username](crate::Call::remove_username)."]
                    unbind_username {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 22)]
                    #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."]
                    #[doc = "Caller is refunded the fee if the username expired and the removal was successful."]
                    remove_username {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 23)]
                    #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"]
                    #[doc = "and slashes any deposit associated with it."]
                    kill_username {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Too many subs-accounts."]
                    TooManySubAccounts,
                    #[codec(index = 1)]
                    #[doc = "Account isn't found."]
                    NotFound,
                    #[codec(index = 2)]
                    #[doc = "Account isn't named."]
                    NotNamed,
                    #[codec(index = 3)]
                    #[doc = "Empty index."]
                    EmptyIndex,
                    #[codec(index = 4)]
                    #[doc = "Fee is changed."]
                    FeeChanged,
                    #[codec(index = 5)]
                    #[doc = "No identity found."]
                    NoIdentity,
                    #[codec(index = 6)]
                    #[doc = "Sticky judgement."]
                    StickyJudgement,
                    #[codec(index = 7)]
                    #[doc = "Judgement given."]
                    JudgementGiven,
                    #[codec(index = 8)]
                    #[doc = "Invalid judgement."]
                    InvalidJudgement,
                    #[codec(index = 9)]
                    #[doc = "The index is invalid."]
                    InvalidIndex,
                    #[codec(index = 10)]
                    #[doc = "The target is invalid."]
                    InvalidTarget,
                    #[codec(index = 11)]
                    #[doc = "Maximum amount of registrars reached. Cannot add any more."]
                    TooManyRegistrars,
                    #[codec(index = 12)]
                    #[doc = "Account ID is already named."]
                    AlreadyClaimed,
                    #[codec(index = 13)]
                    #[doc = "Sender is not a sub-account."]
                    NotSub,
                    #[codec(index = 14)]
                    #[doc = "Sub-account isn't owned by sender."]
                    NotOwned,
                    #[codec(index = 15)]
                    #[doc = "The provided judgement was for a different identity."]
                    JudgementForDifferentIdentity,
                    #[codec(index = 16)]
                    #[doc = "Error that occurs when there is an issue paying for judgement."]
                    JudgementPaymentFailed,
                    #[codec(index = 17)]
                    #[doc = "The provided suffix is too long."]
                    InvalidSuffix,
                    #[codec(index = 18)]
                    #[doc = "The sender does not have permission to issue a username."]
                    NotUsernameAuthority,
                    #[codec(index = 19)]
                    #[doc = "The authority cannot allocate any more usernames."]
                    NoAllocation,
                    #[codec(index = 20)]
                    #[doc = "The signature on a username was not valid."]
                    InvalidSignature,
                    #[codec(index = 21)]
                    #[doc = "Setting this username requires a signature, but none was provided."]
                    RequiresSignature,
                    #[codec(index = 22)]
                    #[doc = "The username does not meet the requirements."]
                    InvalidUsername,
                    #[codec(index = 23)]
                    #[doc = "The username is already taken."]
                    UsernameTaken,
                    #[codec(index = 24)]
                    #[doc = "The requested username does not exist."]
                    NoUsername,
                    #[codec(index = 25)]
                    #[doc = "The username cannot be forcefully removed because it can still be accepted."]
                    NotExpired,
                    #[codec(index = 26)]
                    #[doc = "The username cannot be removed because it's still in the grace period."]
                    TooEarly,
                    #[codec(index = 27)]
                    #[doc = "The username cannot be removed because it is not unbinding."]
                    NotUnbinding,
                    #[codec(index = 28)]
                    #[doc = "The username cannot be unbound because it is already unbinding."]
                    AlreadyUnbinding,
                    #[codec(index = 29)]
                    #[doc = "The action cannot be performed because of insufficient privileges (e.g. authority"]
                    #[doc = "trying to unbind a username provided by the system)."]
                    InsufficientPrivileges,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A name was set or reset (which will remove all judgements)."]
                    IdentitySet {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A name was cleared, and the given balance returned."]
                    IdentityCleared {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "A name was removed and the given balance slashed."]
                    IdentityKilled {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "A judgement was asked from a registrar."]
                    JudgementRequested {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        registrar_index: ::core::primitive::u32,
                    },
                    #[codec(index = 4)]
                    #[doc = "A judgement request was retracted."]
                    JudgementUnrequested {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        registrar_index: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A judgement was given by a registrar."]
                    JudgementGiven {
                        target: ::subxt::ext::subxt_core::utils::AccountId32,
                        registrar_index: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "A registrar was added."]
                    RegistrarAdded {
                        registrar_index: ::core::primitive::u32,
                    },
                    #[codec(index = 7)]
                    #[doc = "A sub-identity was added to an identity and the deposit paid."]
                    SubIdentityAdded {
                        sub: ::subxt::ext::subxt_core::utils::AccountId32,
                        main: ::subxt::ext::subxt_core::utils::AccountId32,
                        deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 8)]
                    #[doc = "An account's sub-identities were set (in bulk)."]
                    SubIdentitiesSet {
                        main: ::subxt::ext::subxt_core::utils::AccountId32,
                        number_of_subs: ::core::primitive::u32,
                        new_deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 9)]
                    #[doc = "A given sub-account's associated name was changed by its super-identity."]
                    SubIdentityRenamed {
                        sub: ::subxt::ext::subxt_core::utils::AccountId32,
                        main: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 10)]
                    #[doc = "A sub-identity was removed from an identity and the deposit freed."]
                    SubIdentityRemoved {
                        sub: ::subxt::ext::subxt_core::utils::AccountId32,
                        main: ::subxt::ext::subxt_core::utils::AccountId32,
                        deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 11)]
                    #[doc = "A sub-identity was cleared, and the given deposit repatriated from the"]
                    #[doc = "main identity account to the sub-identity account."]
                    SubIdentityRevoked {
                        sub: ::subxt::ext::subxt_core::utils::AccountId32,
                        main: ::subxt::ext::subxt_core::utils::AccountId32,
                        deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 12)]
                    #[doc = "A username authority was added."]
                    AuthorityAdded {
                        authority: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 13)]
                    #[doc = "A username authority was removed."]
                    AuthorityRemoved {
                        authority: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 14)]
                    #[doc = "A username was set for `who`."]
                    UsernameSet {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 15)]
                    #[doc = "A username was queued, but `who` must accept it prior to `expiration`."]
                    UsernameQueued {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                        expiration: ::core::primitive::u32,
                    },
                    #[codec(index = 16)]
                    #[doc = "A queued username passed its expiration without being claimed and was removed."]
                    PreapprovalExpired {
                        whose: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 17)]
                    #[doc = "A username was set as a primary and can be looked up from `who`."]
                    PrimaryUsernameSet {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 18)]
                    #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"]
                    #[doc = "identity) has been removed."]
                    DanglingUsernameRemoved {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 19)]
                    #[doc = "A username has been unbound."]
                    UsernameUnbound {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 20)]
                    #[doc = "A username has been removed."]
                    UsernameRemoved {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                    #[codec(index = 21)]
                    #[doc = "A username has been killed."]
                    UsernameKilled {
                        username: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    },
                }
            }
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AuthorityProperties<_0> {
                    pub account_id: _0,
                    pub allocation: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Data {
                    #[codec(index = 0)]
                    None,
                    #[codec(index = 1)]
                    Raw0([::core::primitive::u8; 0usize]),
                    #[codec(index = 2)]
                    Raw1([::core::primitive::u8; 1usize]),
                    #[codec(index = 3)]
                    Raw2([::core::primitive::u8; 2usize]),
                    #[codec(index = 4)]
                    Raw3([::core::primitive::u8; 3usize]),
                    #[codec(index = 5)]
                    Raw4([::core::primitive::u8; 4usize]),
                    #[codec(index = 6)]
                    Raw5([::core::primitive::u8; 5usize]),
                    #[codec(index = 7)]
                    Raw6([::core::primitive::u8; 6usize]),
                    #[codec(index = 8)]
                    Raw7([::core::primitive::u8; 7usize]),
                    #[codec(index = 9)]
                    Raw8([::core::primitive::u8; 8usize]),
                    #[codec(index = 10)]
                    Raw9([::core::primitive::u8; 9usize]),
                    #[codec(index = 11)]
                    Raw10([::core::primitive::u8; 10usize]),
                    #[codec(index = 12)]
                    Raw11([::core::primitive::u8; 11usize]),
                    #[codec(index = 13)]
                    Raw12([::core::primitive::u8; 12usize]),
                    #[codec(index = 14)]
                    Raw13([::core::primitive::u8; 13usize]),
                    #[codec(index = 15)]
                    Raw14([::core::primitive::u8; 14usize]),
                    #[codec(index = 16)]
                    Raw15([::core::primitive::u8; 15usize]),
                    #[codec(index = 17)]
                    Raw16([::core::primitive::u8; 16usize]),
                    #[codec(index = 18)]
                    Raw17([::core::primitive::u8; 17usize]),
                    #[codec(index = 19)]
                    Raw18([::core::primitive::u8; 18usize]),
                    #[codec(index = 20)]
                    Raw19([::core::primitive::u8; 19usize]),
                    #[codec(index = 21)]
                    Raw20([::core::primitive::u8; 20usize]),
                    #[codec(index = 22)]
                    Raw21([::core::primitive::u8; 21usize]),
                    #[codec(index = 23)]
                    Raw22([::core::primitive::u8; 22usize]),
                    #[codec(index = 24)]
                    Raw23([::core::primitive::u8; 23usize]),
                    #[codec(index = 25)]
                    Raw24([::core::primitive::u8; 24usize]),
                    #[codec(index = 26)]
                    Raw25([::core::primitive::u8; 25usize]),
                    #[codec(index = 27)]
                    Raw26([::core::primitive::u8; 26usize]),
                    #[codec(index = 28)]
                    Raw27([::core::primitive::u8; 27usize]),
                    #[codec(index = 29)]
                    Raw28([::core::primitive::u8; 28usize]),
                    #[codec(index = 30)]
                    Raw29([::core::primitive::u8; 29usize]),
                    #[codec(index = 31)]
                    Raw30([::core::primitive::u8; 30usize]),
                    #[codec(index = 32)]
                    Raw31([::core::primitive::u8; 31usize]),
                    #[codec(index = 33)]
                    Raw32([::core::primitive::u8; 32usize]),
                    #[codec(index = 34)]
                    BlakeTwo256([::core::primitive::u8; 32usize]),
                    #[codec(index = 35)]
                    Sha256([::core::primitive::u8; 32usize]),
                    #[codec(index = 36)]
                    Keccak256([::core::primitive::u8; 32usize]),
                    #[codec(index = 37)]
                    ShaThree256([::core::primitive::u8; 32usize]),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Judgement<_0> {
                    #[codec(index = 0)]
                    Unknown,
                    #[codec(index = 1)]
                    FeePaid(_0),
                    #[codec(index = 2)]
                    Reasonable,
                    #[codec(index = 3)]
                    KnownGood,
                    #[codec(index = 4)]
                    OutOfDate,
                    #[codec(index = 5)]
                    LowQuality,
                    #[codec(index = 6)]
                    Erroneous,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Provider<_0> {
                    #[codec(index = 0)]
                    Allocation,
                    #[codec(index = 1)]
                    AuthorityDeposit(_0),
                    #[codec(index = 2)]
                    System,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct RegistrarInfo<_0, _1, _2> {
                    pub account: _1,
                    pub fee: _0,
                    pub fields: _2,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Registration<_0, _2> {
                    pub judgements: runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                        ::core::primitive::u32,
                        runtime_types::pallet_identity::types::Judgement<_0>,
                    )>,
                    pub deposit: _0,
                    pub info: _2,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct UsernameInformation<_0, _1> {
                    pub owner: _0,
                    pub provider: runtime_types::pallet_identity::types::Provider<_1>,
                }
            }
        }
        pub mod pallet_indices {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Assign an previously unassigned index."]
                    #[doc = ""]
                    #[doc = "Payment: `Deposit` is reserved from the sender account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `index`: the index to be claimed. This must not be in use."]
                    #[doc = ""]
                    #[doc = "Emits `IndexAssigned` if successful."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    claim { index: ::core::primitive::u32 },
                    #[codec(index = 1)]
                    #[doc = "Assign an index already owned by the sender to another account. The balance reservation"]
                    #[doc = "is effectively transferred to the new account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."]
                    #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                    #[doc = ""]
                    #[doc = "Emits `IndexAssigned` if successful."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    transfer {
                        new: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Free up an index owned by the sender."]
                    #[doc = ""]
                    #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."]
                    #[doc = ""]
                    #[doc = "- `index`: the index to be freed. This must be owned by the sender."]
                    #[doc = ""]
                    #[doc = "Emits `IndexFreed` if successful."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    free { index: ::core::primitive::u32 },
                    #[codec(index = 3)]
                    #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"]
                    #[doc = "held, then any deposit is reimbursed to its current owner."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    #[doc = ""]
                    #[doc = "- `index`: the index to be (re-)assigned."]
                    #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
                    #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."]
                    #[doc = ""]
                    #[doc = "Emits `IndexAssigned` if successful."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    force_transfer {
                        new: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        index: ::core::primitive::u32,
                        freeze: ::core::primitive::bool,
                    },
                    #[codec(index = 4)]
                    #[doc = "Freeze an index so it will always point to the sender account. This consumes the"]
                    #[doc = "deposit."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                    #[doc = "non-frozen account `index`."]
                    #[doc = ""]
                    #[doc = "- `index`: the index to be frozen in place."]
                    #[doc = ""]
                    #[doc = "Emits `IndexFrozen` if successful."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    freeze { index: ::core::primitive::u32 },
                    #[codec(index = 5)]
                    #[doc = "Poke the deposit reserved for an index."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
                    #[doc = "non-frozen account `index`."]
                    #[doc = ""]
                    #[doc = "The transaction fees is waived if the deposit is changed after poking/reconsideration."]
                    #[doc = ""]
                    #[doc = "- `index`: the index whose deposit is to be poked/reconsidered."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if successful."]
                    poke_deposit { index: ::core::primitive::u32 },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The index was not already assigned."]
                    NotAssigned,
                    #[codec(index = 1)]
                    #[doc = "The index is assigned to another account."]
                    NotOwner,
                    #[codec(index = 2)]
                    #[doc = "The index was not available."]
                    InUse,
                    #[codec(index = 3)]
                    #[doc = "The source and destination accounts are identical."]
                    NotTransfer,
                    #[codec(index = 4)]
                    #[doc = "The index is permanent and may not be freed/changed."]
                    Permanent,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A account index was assigned."]
                    IndexAssigned {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A account index has been freed up (unassigned)."]
                    IndexFreed { index: ::core::primitive::u32 },
                    #[codec(index = 2)]
                    #[doc = "A account index has been frozen to its current account ID."]
                    IndexFrozen {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 3)]
                    #[doc = "A deposit to reserve an index has been poked/reconsidered."]
                    DepositPoked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        index: ::core::primitive::u32,
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
        }
        pub mod pallet_message_queue {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    # [codec (index = 0)] # [doc = "Remove a page which has no more messages remaining to be processed or is stale."] reap_page { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Execute an overweight message."] # [doc = ""] # [doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] # [doc = "as success condition."] # [doc = ""] # [doc = "- `origin`: Must be `Signed`."] # [doc = "- `message_origin`: The origin from which the message to be executed arrived."] # [doc = "- `page`: The page in the queue in which the message to be executed is sitting."] # [doc = "- `index`: The index into the queue of the message to be executed."] # [doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] # [doc = "  of the message."] # [doc = ""] # [doc = "Benchmark complexity considerations: O(index + weight_limit)."] execute_overweight { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , weight_limit : runtime_types :: sp_weights :: weight_v2 :: Weight , } , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Page is not reapable because it has items remaining to be processed and is not old"]
                    #[doc = "enough."]
                    NotReapable,
                    #[codec(index = 1)]
                    #[doc = "Page to be reaped does not exist."]
                    NoPage,
                    #[codec(index = 2)]
                    #[doc = "The referenced message could not be found."]
                    NoMessage,
                    #[codec(index = 3)]
                    #[doc = "The message was already processed and cannot be processed again."]
                    AlreadyProcessed,
                    #[codec(index = 4)]
                    #[doc = "The message is queued for future execution."]
                    Queued,
                    #[codec(index = 5)]
                    #[doc = "There is temporarily not enough weight to continue servicing messages."]
                    InsufficientWeight,
                    #[codec(index = 6)]
                    #[doc = "This message is temporarily unprocessable."]
                    #[doc = ""]
                    #[doc = "Such errors are expected, but not guaranteed, to resolve themselves eventually through"]
                    #[doc = "retrying."]
                    TemporarilyUnprocessable,
                    #[codec(index = 7)]
                    #[doc = "The queue is paused and no message can be executed from it."]
                    #[doc = ""]
                    #[doc = "This can change at any time and may resolve in the future by re-trying."]
                    QueuePaused,
                    #[codec(index = 8)]
                    #[doc = "Another call is in progress and needs to finish before this call can happen."]
                    RecursiveDisallowed,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    # [codec (index = 0)] # [doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] ProcessingFailed { id : :: subxt :: ext :: subxt_core :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , error : runtime_types :: frame_support :: traits :: messages :: ProcessMessageError , } , # [codec (index = 1)] # [doc = "Message is processed."] Processed { id : :: subxt :: ext :: subxt_core :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , weight_used : runtime_types :: sp_weights :: weight_v2 :: Weight , success : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Message placed in overweight queue."] OverweightEnqueued { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , message_index : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "This page was reaped."] PageReaped { origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , index : :: core :: primitive :: u32 , } , }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct BookState<_0> {
                pub begin: ::core::primitive::u32,
                pub end: ::core::primitive::u32,
                pub count: ::core::primitive::u32,
                pub ready_neighbours:
                    ::core::option::Option<runtime_types::pallet_message_queue::Neighbours<_0>>,
                pub message_count: ::core::primitive::u64,
                pub size: ::core::primitive::u64,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Neighbours<_0> {
                pub prev: _0,
                pub next: _0,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Page<_0> {
                pub remaining: _0,
                pub remaining_size: _0,
                pub first_index: _0,
                pub first: _0,
                pub last: _0,
                pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    ::core::primitive::u8,
                >,
            }
        }
        pub mod pallet_migrations {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."]
                    #[doc = ""]
                    #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"]
                    #[doc = "restarting the migration process in this manner will not call the"]
                    #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."]
                    force_set_cursor {
                        cursor: ::core::option::Option<
                            runtime_types::pallet_migrations::MigrationCursor<
                                runtime_types::bounded_collections::bounded_vec::BoundedVec<
                                    ::core::primitive::u8,
                                >,
                                ::core::primitive::u32,
                            >,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."]
                    #[doc = ""]
                    #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"]
                    #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"]
                    #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"]
                    #[doc = "indicates that the current block number plus one should be used."]
                    force_set_active_cursor {
                        index: ::core::primitive::u32,
                        inner_cursor: ::core::option::Option<
                            runtime_types::bounded_collections::bounded_vec::BoundedVec<
                                ::core::primitive::u8,
                            >,
                        >,
                        started_at: ::core::option::Option<::core::primitive::u32>,
                    },
                    #[codec(index = 2)]
                    #[doc = "Forces the onboarding of the migrations."]
                    #[doc = ""]
                    #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"]
                    #[doc = "measurement. The cursor needs to be `None` for this to succeed."]
                    force_onboard_mbms,
                    #[codec(index = 3)]
                    #[doc = "Clears the `Historic` set."]
                    #[doc = ""]
                    #[doc = "`map_cursor` must be set to the last value that was returned by the"]
                    #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"]
                    #[doc = "way that will result in a sensible weight."]
                    clear_historic {
                        selector: runtime_types::pallet_migrations::HistoricCleanupSelector<
                            runtime_types::bounded_collections::bounded_vec::BoundedVec<
                                ::core::primitive::u8,
                            >,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The operation cannot complete since some MBMs are ongoing."]
                    Ongoing,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A Runtime upgrade started."]
                    #[doc = ""]
                    #[doc = "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`."]
                    UpgradeStarted { migrations: ::core::primitive::u32 },
                    #[codec(index = 1)]
                    #[doc = "The current runtime upgrade completed."]
                    #[doc = ""]
                    #[doc = "This implies that all of its migrations completed successfully as well."]
                    UpgradeCompleted,
                    #[codec(index = 2)]
                    #[doc = "Runtime upgrade failed."]
                    #[doc = ""]
                    #[doc = "This is very bad and will require governance intervention."]
                    UpgradeFailed,
                    #[codec(index = 3)]
                    #[doc = "A migration was skipped since it was already executed in the past."]
                    MigrationSkipped { index: ::core::primitive::u32 },
                    #[codec(index = 4)]
                    #[doc = "A migration progressed."]
                    MigrationAdvanced {
                        index: ::core::primitive::u32,
                        took: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A Migration completed."]
                    MigrationCompleted {
                        index: ::core::primitive::u32,
                        took: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "A Migration failed."]
                    #[doc = ""]
                    #[doc = "This implies that the whole upgrade failed and governance intervention is required."]
                    MigrationFailed {
                        index: ::core::primitive::u32,
                        took: ::core::primitive::u32,
                    },
                    #[codec(index = 7)]
                    #[doc = "The set of historical migrations has been cleared."]
                    HistoricCleared {
                        next_cursor: ::core::option::Option<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ActiveCursor<_0, _1> {
                pub index: ::core::primitive::u32,
                pub inner_cursor: ::core::option::Option<_0>,
                pub started_at: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum HistoricCleanupSelector<_0> {
                #[codec(index = 0)]
                Specific(::subxt::ext::subxt_core::alloc::vec::Vec<_0>),
                #[codec(index = 1)]
                Wildcard {
                    limit: ::core::option::Option<::core::primitive::u32>,
                    previous_cursor: ::core::option::Option<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >,
                },
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum MigrationCursor<_0, _1> {
                #[codec(index = 0)]
                Active(runtime_types::pallet_migrations::ActiveCursor<_0, _1>),
                #[codec(index = 1)]
                Stuck,
            }
        }
        pub mod pallet_multisig {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                    #[doc = "multi-signature, but do not participate in the approval process."]
                    #[doc = "- `call`: The call to be executed."]
                    #[doc = ""]
                    #[doc = "Result is equivalent to the dispatched result."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."]
                    as_multi_threshold_1 {
                        other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                    #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                    #[doc = ""]
                    #[doc = "If there are enough, then dispatch the call."]
                    #[doc = ""]
                    #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                    #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                    #[doc = "is cancelled."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                    #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                    #[doc = "dispatch. May not be empty."]
                    #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                    #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                    #[doc = "transaction index) of the first approval transaction."]
                    #[doc = "- `call`: The call to be executed."]
                    #[doc = ""]
                    #[doc = "NOTE: Unless this is the final approval, you will generally want to use"]
                    #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."]
                    #[doc = ""]
                    #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"]
                    #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"]
                    #[doc = "may be found in the deposited `MultisigExecuted` event."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(S + Z + Call)`."]
                    #[doc = "- Up to one balance-reserve or unreserve operation."]
                    #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                    #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                    #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."]
                    #[doc = "- One encode & hash, both of complexity `O(S)`."]
                    #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                    #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                    #[doc = "- One event."]
                    #[doc = "- The weight of the `call`."]
                    #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                    #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                    as_multi {
                        threshold: ::core::primitive::u16,
                        other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        maybe_timepoint: ::core::option::Option<
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                        max_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 2)]
                    #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"]
                    #[doc = "approved by a total of `threshold - 1` of `other_signatories`."]
                    #[doc = ""]
                    #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"]
                    #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"]
                    #[doc = "is cancelled."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                    #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                    #[doc = "dispatch. May not be empty."]
                    #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"]
                    #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"]
                    #[doc = "transaction index) of the first approval transaction."]
                    #[doc = "- `call_hash`: The hash of the call to be executed."]
                    #[doc = ""]
                    #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(S)`."]
                    #[doc = "- Up to one balance-reserve or unreserve operation."]
                    #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                    #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                    #[doc = "- One encode & hash, both of complexity `O(S)`."]
                    #[doc = "- Up to one binary search and insert (`O(logS + S)`)."]
                    #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."]
                    #[doc = "- One event."]
                    #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"]
                    #[doc = "  taken for its lifetime of `DepositBase + threshold * DepositFactor`."]
                    approve_as_multi {
                        threshold: ::core::primitive::u16,
                        other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        maybe_timepoint: ::core::option::Option<
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        >,
                        call_hash: [::core::primitive::u8; 32usize],
                        max_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 3)]
                    #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"]
                    #[doc = "for this operation will be unreserved on success."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."]
                    #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"]
                    #[doc = "dispatch. May not be empty."]
                    #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"]
                    #[doc = "transaction for this dispatch."]
                    #[doc = "- `call_hash`: The hash of the call to be executed."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(S)`."]
                    #[doc = "- Up to one balance-reserve or unreserve operation."]
                    #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"]
                    #[doc = "  signatories. `S` is capped by `MaxSignatories`, with weight being proportional."]
                    #[doc = "- One encode & hash, both of complexity `O(S)`."]
                    #[doc = "- One event."]
                    #[doc = "- I/O: 1 read `O(S)`, one remove."]
                    #[doc = "- Storage: removes one item."]
                    cancel_as_multi {
                        threshold: ::core::primitive::u16,
                        other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        timepoint:
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        call_hash: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 4)]
                    #[doc = "Poke the deposit reserved for an existing multisig operation."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be the original depositor of"]
                    #[doc = "the multisig operation."]
                    #[doc = ""]
                    #[doc = "The transaction fee is waived if the deposit amount has changed."]
                    #[doc = ""]
                    #[doc = "- `threshold`: The total number of approvals needed for this multisig."]
                    #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"]
                    #[doc = "  multisig."]
                    #[doc = "- `call_hash`: The hash of the call this deposit is reserved for."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if successful."]
                    poke_deposit {
                        threshold: ::core::primitive::u16,
                        other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        call_hash: [::core::primitive::u8; 32usize],
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Threshold must be 2 or greater."]
                    MinimumThreshold,
                    #[codec(index = 1)]
                    #[doc = "Call is already approved by this signatory."]
                    AlreadyApproved,
                    #[codec(index = 2)]
                    #[doc = "Call doesn't need any (more) approvals."]
                    NoApprovalsNeeded,
                    #[codec(index = 3)]
                    #[doc = "There are too few signatories in the list."]
                    TooFewSignatories,
                    #[codec(index = 4)]
                    #[doc = "There are too many signatories in the list."]
                    TooManySignatories,
                    #[codec(index = 5)]
                    #[doc = "The signatories were provided out of order; they should be ordered."]
                    SignatoriesOutOfOrder,
                    #[codec(index = 6)]
                    #[doc = "The sender was contained in the other signatories; it shouldn't be."]
                    SenderInSignatories,
                    #[codec(index = 7)]
                    #[doc = "Multisig operation not found in storage."]
                    NotFound,
                    #[codec(index = 8)]
                    #[doc = "Only the account that originally created the multisig is able to cancel it or update"]
                    #[doc = "its deposits."]
                    NotOwner,
                    #[codec(index = 9)]
                    #[doc = "No timepoint was given, yet the multisig operation is already underway."]
                    NoTimepoint,
                    #[codec(index = 10)]
                    #[doc = "A different timepoint was given to the multisig operation that is underway."]
                    WrongTimepoint,
                    #[codec(index = 11)]
                    #[doc = "A timepoint was given, yet no multisig operation is underway."]
                    UnexpectedTimepoint,
                    #[codec(index = 12)]
                    #[doc = "The maximum weight information provided was too low."]
                    MaxWeightTooLow,
                    #[codec(index = 13)]
                    #[doc = "The data to be stored is already stored."]
                    AlreadyStored,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A new multisig operation has begun."]
                    NewMultisig {
                        approving: ::subxt::ext::subxt_core::utils::AccountId32,
                        multisig: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 1)]
                    #[doc = "A multisig operation has been approved by someone."]
                    MultisigApproval {
                        approving: ::subxt::ext::subxt_core::utils::AccountId32,
                        timepoint:
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        multisig: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 2)]
                    #[doc = "A multisig operation has been executed."]
                    MultisigExecuted {
                        approving: ::subxt::ext::subxt_core::utils::AccountId32,
                        timepoint:
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        multisig: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: [::core::primitive::u8; 32usize],
                        result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                    #[codec(index = 3)]
                    #[doc = "A multisig operation has been cancelled."]
                    MultisigCancelled {
                        cancelling: ::subxt::ext::subxt_core::utils::AccountId32,
                        timepoint:
                            runtime_types::pallet_multisig::Timepoint<::core::primitive::u32>,
                        multisig: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 4)]
                    #[doc = "The deposit for a multisig operation has been updated/poked."]
                    DepositPoked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: [::core::primitive::u8; 32usize],
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Multisig<_0, _1, _2> {
                pub when: runtime_types::pallet_multisig::Timepoint<_0>,
                pub deposit: _1,
                pub depositor: _2,
                pub approvals: runtime_types::bounded_collections::bounded_vec::BoundedVec<_2>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Timepoint<_0> {
                pub height: _0,
                pub index: ::core::primitive::u32,
            }
        }
        pub mod pallet_nis {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Bid<_0, _1> {
                    pub amount: _0,
                    pub who: _1,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Place a bid."]
                    #[doc = ""]
                    #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."]
                    #[doc = ""]
                    #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"]
                    #[doc = "  consolidated, removed. Must be at least `MinBid`."]
                    #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"]
                    #[doc = "  thawed. Must be greater than 1 and no more than `QueueCount`."]
                    #[doc = ""]
                    #[doc = "Complexities:"]
                    #[doc = "- `Queues[duration].len()` (just take max)."]
                    place_bid {
                        #[codec(compact)]
                        amount: ::core::primitive::u128,
                        duration: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "Retract a previously placed bid."]
                    #[doc = ""]
                    #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"]
                    #[doc = "of `amount` for `duration`."]
                    #[doc = ""]
                    #[doc = "- `amount`: The amount of the previous bid."]
                    #[doc = "- `duration`: The duration of the previous bid."]
                    retract_bid {
                        #[codec(compact)]
                        amount: ::core::primitive::u128,
                        duration: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Ensure we have sufficient funding for all potential payouts."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be accepted by `FundOrigin`."]
                    fund_deficit,
                    #[codec(index = 3)]
                    #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                    #[doc = "the account of the owner."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"]
                    #[doc = "  well as any fungible counterpart."]
                    #[doc = "- `index`: The index of the receipt."]
                    #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"]
                    #[doc = "  `None`, then all of it should be."]
                    thaw_private {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        maybe_proportion: ::core::option::Option<
                            runtime_types::sp_arithmetic::per_things::Perquintill,
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"]
                    #[doc = "the account of the owner."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"]
                    #[doc = "  for receipt `index`."]
                    #[doc = "- `index`: The index of the receipt."]
                    thaw_communal {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "Make a private receipt communal and create fungible counterparts for its owner."]
                    communify {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."]
                    privatize {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The duration of the bid is less than one."]
                    DurationTooSmall,
                    #[codec(index = 1)]
                    #[doc = "The duration is the bid is greater than the number of queues."]
                    DurationTooBig,
                    #[codec(index = 2)]
                    #[doc = "The amount of the bid is less than the minimum allowed."]
                    AmountTooSmall,
                    #[codec(index = 3)]
                    #[doc = "The queue for the bid's duration is full and the amount bid is too low to get in"]
                    #[doc = "through replacing an existing bid."]
                    BidTooLow,
                    #[codec(index = 4)]
                    #[doc = "Receipt index is unknown."]
                    UnknownReceipt,
                    #[codec(index = 5)]
                    #[doc = "Not the owner of the receipt."]
                    NotOwner,
                    #[codec(index = 6)]
                    #[doc = "Bond not yet at expiry date."]
                    NotExpired,
                    #[codec(index = 7)]
                    #[doc = "The given bid for retraction is not found."]
                    UnknownBid,
                    #[codec(index = 8)]
                    #[doc = "The portion supplied is beyond the value of the receipt."]
                    PortionTooBig,
                    #[codec(index = 9)]
                    #[doc = "Not enough funds are held to pay out."]
                    Unfunded,
                    #[codec(index = 10)]
                    #[doc = "There are enough funds for what is required."]
                    AlreadyFunded,
                    #[codec(index = 11)]
                    #[doc = "The thaw throttle has been reached for this period."]
                    Throttled,
                    #[codec(index = 12)]
                    #[doc = "The operation would result in a receipt worth an insignificant value."]
                    MakesDust,
                    #[codec(index = 13)]
                    #[doc = "The receipt is already communal."]
                    AlreadyCommunal,
                    #[codec(index = 14)]
                    #[doc = "The receipt is already private."]
                    AlreadyPrivate,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A bid was successfully placed."]
                    BidPlaced {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                        duration: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A bid was successfully removed (before being accepted)."]
                    BidRetracted {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                        duration: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "A bid was dropped from a queue because of another, more substantial, bid was present."]
                    BidDropped {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                        duration: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "A bid was accepted. The balance may not be released until expiry."]
                    Issued {
                        index: ::core::primitive::u32,
                        expiry: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        proportion: runtime_types::sp_arithmetic::per_things::Perquintill,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "An receipt has been (at least partially) thawed."]
                    Thawed {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        proportion: runtime_types::sp_arithmetic::per_things::Perquintill,
                        amount: ::core::primitive::u128,
                        dropped: ::core::primitive::bool,
                    },
                    #[codec(index = 5)]
                    #[doc = "An automatic funding of the deficit was made."]
                    Funded { deficit: ::core::primitive::u128 },
                    #[codec(index = 6)]
                    #[doc = "A receipt was transferred."]
                    Transferred {
                        from: ::subxt::ext::subxt_core::utils::AccountId32,
                        to: ::subxt::ext::subxt_core::utils::AccountId32,
                        index: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum HoldReason {
                    #[codec(index = 0)]
                    NftReceipt,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ReceiptRecord<_0, _1, _2> {
                    pub proportion: runtime_types::sp_arithmetic::per_things::Perquintill,
                    pub owner: ::core::option::Option<(_0, _2)>,
                    pub expiry: _1,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SummaryRecord<_0, _1> {
                    pub proportion_owed: runtime_types::sp_arithmetic::per_things::Perquintill,
                    pub index: ::core::primitive::u32,
                    pub thawed: runtime_types::sp_arithmetic::per_things::Perquintill,
                    pub last_period: _0,
                    pub receipts_on_hold: _1,
                }
            }
        }
        pub mod pallet_offences {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Events type."]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "There is an offence reported of the given `kind` happened at the `session_index` and"]
                    #[doc = "(kind-specific) time slot. This event is not deposited for duplicate slashes."]
                    #[doc = "\\[kind, timeslot\\]."]
                    Offence {
                        kind: [::core::primitive::u8; 16usize],
                        timeslot: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                }
            }
        }
        pub mod pallet_parameters {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Set the value of a parameter."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"]
                    #[doc = "deleted by setting them to `None`."]
                    set_parameter {
                        key_value: runtime_types::rococo_runtime::RuntimeParameters,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A Parameter was set."]
                    #[doc = ""]
                    #[doc = "Is also emitted when the value was not changed."]
                    Updated {
                        key: runtime_types::rococo_runtime::RuntimeParametersKey,
                        old_value: ::core::option::Option<
                            runtime_types::rococo_runtime::RuntimeParametersValue,
                        >,
                        new_value: ::core::option::Option<
                            runtime_types::rococo_runtime::RuntimeParametersValue,
                        >,
                    },
                }
            }
        }
        pub mod pallet_preimage {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Register a preimage on-chain."]
                    #[doc = ""]
                    #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"]
                    #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."]
                    note_preimage {
                        bytes: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Clear an unrequested preimage from the runtime storage."]
                    #[doc = ""]
                    #[doc = "If `len` is provided, then it will be a much cheaper operation."]
                    #[doc = ""]
                    #[doc = "- `hash`: The hash of the preimage to be removed from the store."]
                    #[doc = "- `len`: The length of the preimage of `hash`."]
                    unnote_preimage {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 2)]
                    #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."]
                    #[doc = ""]
                    #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"]
                    #[doc = "a user may have paid, and take the control of the preimage out of their hands."]
                    request_preimage {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 3)]
                    #[doc = "Clear a previously made request for a preimage."]
                    #[doc = ""]
                    #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."]
                    unrequest_preimage {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 4)]
                    #[doc = "Ensure that the bulk of pre-images is upgraded."]
                    #[doc = ""]
                    #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."]
                    ensure_updated {
                        hashes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::H256,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Preimage is too large to store on-chain."]
                    TooBig,
                    #[codec(index = 1)]
                    #[doc = "Preimage has already been noted on-chain."]
                    AlreadyNoted,
                    #[codec(index = 2)]
                    #[doc = "The user is not authorized to perform this action."]
                    NotAuthorized,
                    #[codec(index = 3)]
                    #[doc = "The preimage cannot be removed since it has not yet been noted."]
                    NotNoted,
                    #[codec(index = 4)]
                    #[doc = "A preimage may not be removed when there are outstanding requests."]
                    Requested,
                    #[codec(index = 5)]
                    #[doc = "The preimage request cannot be removed since no outstanding requests exist."]
                    NotRequested,
                    #[codec(index = 6)]
                    #[doc = "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once."]
                    TooMany,
                    #[codec(index = 7)]
                    #[doc = "Too few hashes were requested to be upgraded (i.e. zero)."]
                    TooFew,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A preimage has been noted."]
                    Noted {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 1)]
                    #[doc = "A preimage has been requested."]
                    Requested {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 2)]
                    #[doc = "A preimage has ben cleared."]
                    Cleared {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum HoldReason {
                    #[codec(index = 0)]
                    Preimage,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum OldRequestStatus<_0, _1> {
                #[codec(index = 0)]
                Unrequested {
                    deposit: (_0, _1),
                    len: ::core::primitive::u32,
                },
                #[codec(index = 1)]
                Requested {
                    deposit: ::core::option::Option<(_0, _1)>,
                    count: ::core::primitive::u32,
                    len: ::core::option::Option<::core::primitive::u32>,
                },
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RequestStatus<_0, _1> {
                #[codec(index = 0)]
                Unrequested {
                    ticket: (_0, _1),
                    len: ::core::primitive::u32,
                },
                #[codec(index = 1)]
                Requested {
                    maybe_ticket: ::core::option::Option<(_0, _1)>,
                    count: ::core::primitive::u32,
                    maybe_len: ::core::option::Option<::core::primitive::u32>,
                },
            }
        }
        pub mod pallet_proxy {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"]
                    #[doc = "`add_proxy`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                    #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                    #[doc = "- `call`: The call to be made by the `real` account."]
                    proxy {
                        real: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        force_proxy_type:
                            ::core::option::Option<runtime_types::rococo_runtime::ProxyType>,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."]
                    #[doc = "- `proxy_type`: The permissions allowed for this proxy account."]
                    #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                    #[doc = "zero."]
                    add_proxy {
                        delegate: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        delay: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Unregister a proxy account for the sender."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."]
                    #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."]
                    remove_proxy {
                        delegate: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        delay: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Unregister all proxy accounts for the sender."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "WARNING: This may be called on accounts created by `create_pure`, however if done, then"]
                    #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"]
                    remove_proxies,
                    #[codec(index = 4)]
                    #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"]
                    #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."]
                    #[doc = ""]
                    #[doc = "Requires a `Signed` origin."]
                    #[doc = ""]
                    #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"]
                    #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"]
                    #[doc = "allow for maximum flexibility."]
                    #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"]
                    #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"]
                    #[doc = "want to use `0`."]
                    #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"]
                    #[doc = "zero."]
                    #[doc = ""]
                    #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"]
                    #[doc = "same sender, with the same parameters."]
                    #[doc = ""]
                    #[doc = "Fails if there are insufficient funds to pay for deposit."]
                    create_pure {
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        delay: ::core::primitive::u32,
                        index: ::core::primitive::u16,
                    },
                    #[codec(index = 5)]
                    #[doc = "Removes a previously spawned pure proxy."]
                    #[doc = ""]
                    #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"]
                    #[doc = "inaccessible."]
                    #[doc = ""]
                    #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"]
                    #[doc = "`create_pure` with corresponding parameters."]
                    #[doc = ""]
                    #[doc = "- `spawner`: The account that originally called `create_pure` to create this account."]
                    #[doc = "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`."]
                    #[doc = "- `proxy_type`: The proxy type originally passed to `create_pure`."]
                    #[doc = "- `height`: The height of the chain when the call to `create_pure` was processed."]
                    #[doc = "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed."]
                    #[doc = ""]
                    #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"]
                    #[doc = "account whose `create_pure` call has corresponding parameters."]
                    kill_pure {
                        spawner: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        index: ::core::primitive::u16,
                        #[codec(compact)]
                        height: ::core::primitive::u32,
                        #[codec(compact)]
                        ext_index: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "Publish the hash of a proxy-call that will be made in the future."]
                    #[doc = ""]
                    #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"]
                    #[doc = "if the delay associated with the proxy relationship is greater than zero."]
                    #[doc = ""]
                    #[doc = "No more than `MaxPending` announcements may be made at any one time."]
                    #[doc = ""]
                    #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"]
                    #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                    #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                    announce {
                        real: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 7)]
                    #[doc = "Remove a given announcement."]
                    #[doc = ""]
                    #[doc = "May be called by a proxy account to remove a call they previously announced and return"]
                    #[doc = "the deposit."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                    #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."]
                    remove_announcement {
                        real: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 8)]
                    #[doc = "Remove the given announcement of a delegate."]
                    #[doc = ""]
                    #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"]
                    #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `delegate`: The account that previously announced the call."]
                    #[doc = "- `call_hash`: The hash of the call to be made."]
                    reject_announcement {
                        delegate: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 9)]
                    #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"]
                    #[doc = "`add_proxy`."]
                    #[doc = ""]
                    #[doc = "Removes any corresponding announcement(s)."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `real`: The account that the proxy will make a call on behalf of."]
                    #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."]
                    #[doc = "- `call`: The call to be made by the `real` account."]
                    proxy_announced {
                        delegate: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        real: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        force_proxy_type:
                            ::core::option::Option<runtime_types::rococo_runtime::ProxyType>,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 10)]
                    #[doc = "Poke / Adjust deposits made for proxies and announcements based on current values."]
                    #[doc = "This can be used by accounts to possibly lower their locked amount."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "The transaction fee is waived if the deposit amount has changed."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if successful."]
                    poke_deposit,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "There are too many proxies registered or too many announcements pending."]
                    TooMany,
                    #[codec(index = 1)]
                    #[doc = "Proxy registration not found."]
                    NotFound,
                    #[codec(index = 2)]
                    #[doc = "Sender is not a proxy of the account to be proxied."]
                    NotProxy,
                    #[codec(index = 3)]
                    #[doc = "A call which is incompatible with the proxy type's filter was attempted."]
                    Unproxyable,
                    #[codec(index = 4)]
                    #[doc = "Account is already a proxy."]
                    Duplicate,
                    #[codec(index = 5)]
                    #[doc = "Call may not be made by proxy because it may escalate its privileges."]
                    NoPermission,
                    #[codec(index = 6)]
                    #[doc = "Announcement, if made at all, was made too recently."]
                    Unannounced,
                    #[codec(index = 7)]
                    #[doc = "Cannot add self as proxy."]
                    NoSelfProxy,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A proxy was executed correctly, with the given."]
                    ProxyExecuted {
                        result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                    #[codec(index = 1)]
                    #[doc = "A pure account has been created by new proxy with given"]
                    #[doc = "disambiguation index and proxy type."]
                    PureCreated {
                        pure: ::subxt::ext::subxt_core::utils::AccountId32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        disambiguation_index: ::core::primitive::u16,
                    },
                    #[codec(index = 2)]
                    #[doc = "A pure proxy was killed by its spawner."]
                    PureKilled {
                        pure: ::subxt::ext::subxt_core::utils::AccountId32,
                        spawner: ::subxt::ext::subxt_core::utils::AccountId32,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        disambiguation_index: ::core::primitive::u16,
                    },
                    #[codec(index = 3)]
                    #[doc = "An announcement was placed to make a call in the future."]
                    Announced {
                        real: ::subxt::ext::subxt_core::utils::AccountId32,
                        proxy: ::subxt::ext::subxt_core::utils::AccountId32,
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 4)]
                    #[doc = "A proxy was added."]
                    ProxyAdded {
                        delegator: ::subxt::ext::subxt_core::utils::AccountId32,
                        delegatee: ::subxt::ext::subxt_core::utils::AccountId32,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        delay: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A proxy was removed."]
                    ProxyRemoved {
                        delegator: ::subxt::ext::subxt_core::utils::AccountId32,
                        delegatee: ::subxt::ext::subxt_core::utils::AccountId32,
                        proxy_type: runtime_types::rococo_runtime::ProxyType,
                        delay: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "A deposit stored for proxies or announcements was poked / updated."]
                    DepositPoked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        kind: runtime_types::pallet_proxy::DepositKind,
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Announcement<_0, _1, _2> {
                pub real: _0,
                pub call_hash: _1,
                pub height: _2,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum DepositKind {
                #[codec(index = 0)]
                Proxies,
                #[codec(index = 1)]
                Announcements,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ProxyDefinition<_0, _1, _2> {
                pub delegate: _0,
                pub proxy_type: _1,
                pub delay: _2,
            }
        }
        pub mod pallet_ranked_collective {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Introduce a new member."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be the `AddOrigin`."]
                    #[doc = "- `who`: Account of non-member which will become a member."]
                    #[doc = ""]
                    #[doc = "Weight: `O(1)`"]
                    add_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Increment the rank of an existing member by one."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be the `PromoteOrigin`."]
                    #[doc = "- `who`: Account of existing member."]
                    #[doc = ""]
                    #[doc = "Weight: `O(1)`"]
                    promote_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 2)]
                    #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"]
                    #[doc = "then they are removed entirely."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be the `DemoteOrigin`."]
                    #[doc = "- `who`: Account of existing member of rank greater than zero."]
                    #[doc = ""]
                    #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."]
                    demote_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "Remove the member entirely."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be the `RemoveOrigin`."]
                    #[doc = "- `who`: Account of existing member of rank greater than zero."]
                    #[doc = "- `min_rank`: The rank of the member or greater."]
                    #[doc = ""]
                    #[doc = "Weight: `O(min_rank)`."]
                    remove_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        min_rank: ::core::primitive::u16,
                    },
                    #[codec(index = 4)]
                    #[doc = "Add an aye or nay vote for the sender to the given proposal."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be `Signed` by a member account."]
                    #[doc = "- `poll`: Index of a poll which is ongoing."]
                    #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."]
                    #[doc = ""]
                    #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"]
                    #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"]
                    #[doc = "fee."]
                    #[doc = ""]
                    #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."]
                    vote {
                        poll: ::core::primitive::u32,
                        aye: ::core::primitive::bool,
                    },
                    #[codec(index = 5)]
                    #[doc = "Remove votes from the given poll. It must have ended."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be `Signed` by any account."]
                    #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"]
                    #[doc = "  exist."]
                    #[doc = "- `max`: Maximum number of vote items from remove in this call."]
                    #[doc = ""]
                    #[doc = "Transaction fees are waived if the operation is successful."]
                    #[doc = ""]
                    #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."]
                    cleanup_poll {
                        poll_index: ::core::primitive::u32,
                        max: ::core::primitive::u32,
                    },
                    #[codec(index = 6)]
                    #[doc = "Exchanges a member with a new account and the same existing rank."]
                    #[doc = ""]
                    #[doc = "- `origin`: Must be the `ExchangeOrigin`."]
                    #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."]
                    #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."]
                    exchange_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        new_who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Account is already a member."]
                    AlreadyMember,
                    #[codec(index = 1)]
                    #[doc = "Account is not a member."]
                    NotMember,
                    #[codec(index = 2)]
                    #[doc = "The given poll index is unknown or has closed."]
                    NotPolling,
                    #[codec(index = 3)]
                    #[doc = "The given poll is still ongoing."]
                    Ongoing,
                    #[codec(index = 4)]
                    #[doc = "There are no further records to be removed."]
                    NoneRemaining,
                    #[codec(index = 5)]
                    #[doc = "Unexpected error in state."]
                    Corruption,
                    #[codec(index = 6)]
                    #[doc = "The member's rank is too low to vote."]
                    RankTooLow,
                    #[codec(index = 7)]
                    #[doc = "The information provided is incorrect."]
                    InvalidWitness,
                    #[codec(index = 8)]
                    #[doc = "The origin is not sufficiently privileged to do the operation."]
                    NoPermission,
                    #[codec(index = 9)]
                    #[doc = "The new member to exchange is the same as the old member"]
                    SameMember,
                    #[codec(index = 10)]
                    #[doc = "The max member count for the rank has been reached."]
                    TooManyMembers,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A member `who` has been added."]
                    MemberAdded {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 1)]
                    #[doc = "The member `who`se rank has been changed to the given `rank`."]
                    RankChanged {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        rank: ::core::primitive::u16,
                    },
                    #[codec(index = 2)]
                    #[doc = "The member `who` of given `rank` has been removed from the collective."]
                    MemberRemoved {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        rank: ::core::primitive::u16,
                    },
                    #[codec(index = 3)]
                    #[doc = "The member `who` has voted for the `poll` with the given `vote` leading to an updated"]
                    #[doc = "`tally`."]
                    Voted {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        poll: ::core::primitive::u32,
                        vote: runtime_types::pallet_ranked_collective::VoteRecord,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 4)]
                    #[doc = "The member `who` had their `AccountId` changed to `new_who`."]
                    MemberExchanged {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        new_who: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct MemberRecord {
                pub rank: ::core::primitive::u16,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Tally {
                pub bare_ayes: ::core::primitive::u32,
                pub ayes: ::core::primitive::u32,
                pub nays: ::core::primitive::u32,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VoteRecord {
                #[codec(index = 0)]
                Aye(::core::primitive::u32),
                #[codec(index = 1)]
                Nay(::core::primitive::u32),
            }
        }
        pub mod pallet_recovery {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Send a call through a recovered account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                    #[doc = "be able to make calls on behalf of the recovered account."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."]
                    #[doc = "- `call`: The call you want to make with the recovered account."]
                    as_recovered {
                        account: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Allow ROOT to bypass the recovery process and set a rescuer account"]
                    #[doc = "for a lost account directly."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _ROOT_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `lost`: The \"lost account\" to be recovered."]
                    #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."]
                    set_recovered {
                        lost: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        rescuer: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 2)]
                    #[doc = "Create a recovery configuration for your account. This makes your account recoverable."]
                    #[doc = ""]
                    #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"]
                    #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"]
                    #[doc = "in full when the user calls `remove_recovery`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"]
                    #[doc = "  ordered and contain no duplicate values."]
                    #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"]
                    #[doc = "  account can be recovered. Should be less than or equal to the length of the list of"]
                    #[doc = "  friends."]
                    #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"]
                    #[doc = "  needs to pass before the account can be recovered."]
                    create_recovery {
                        friends: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                        threshold: ::core::primitive::u16,
                        delay_period: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Initiate the process for recovering a recoverable account."]
                    #[doc = ""]
                    #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"]
                    #[doc = "recovery process. This deposit will always be repatriated to the account"]
                    #[doc = "trying to be recovered. See `close_recovery`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `account`: The lost account that you want to recover. This account needs to be"]
                    #[doc = "  recoverable (i.e. have a recovery configuration)."]
                    initiate_recovery {
                        account: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"]
                    #[doc = "process for that account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""]
                    #[doc = "for the recoverable account."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `lost`: The lost account that you want to recover."]
                    #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."]
                    #[doc = ""]
                    #[doc = "The combination of these two parameters must point to an active recovery"]
                    #[doc = "process."]
                    vouch_recovery {
                        lost: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        rescuer: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 5)]
                    #[doc = "Allow a successful rescuer to claim their recovered account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""]
                    #[doc = "who has successfully completed the account recovery process: collected"]
                    #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"]
                    #[doc = "  you."]
                    claim_recovery {
                        account: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 6)]
                    #[doc = "As the controller of a recoverable account, close an active recovery"]
                    #[doc = "process for your account."]
                    #[doc = ""]
                    #[doc = "Payment: By calling this function, the recoverable account will receive"]
                    #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                    #[doc = "recoverable account with an active recovery process for it."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `rescuer`: The account trying to rescue this recoverable account."]
                    close_recovery {
                        rescuer: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 7)]
                    #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."]
                    #[doc = ""]
                    #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"]
                    #[doc = "recovery attempts before calling this function else it will fail."]
                    #[doc = ""]
                    #[doc = "Payment: By calling this function the recoverable account will unreserve"]
                    #[doc = "their recovery configuration deposit."]
                    #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be a"]
                    #[doc = "recoverable account (i.e. has a recovery configuration)."]
                    remove_recovery,
                    #[codec(index = 8)]
                    #[doc = "Cancel the ability to use `as_recovered` for `account`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and registered to"]
                    #[doc = "be able to make calls on behalf of the recovered account."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `account`: The recovered account you are able to call on-behalf-of."]
                    cancel_recovered {
                        account: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 9)]
                    #[doc = "Poke deposits for recovery configurations and / or active recoveries."]
                    #[doc = ""]
                    #[doc = "This can be used by accounts to possibly lower their locked amount."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `maybe_account`: Optional recoverable account for which you have an active recovery"]
                    #[doc = "and want to adjust the deposit for the active recovery."]
                    #[doc = ""]
                    #[doc = "This function checks both recovery configuration deposit and active recovery deposits"]
                    #[doc = "of the caller:"]
                    #[doc = "- If the caller has created a recovery configuration, checks and adjusts its deposit"]
                    #[doc = "- If the caller has initiated any active recoveries, and provides the account in"]
                    #[doc = "`maybe_account`, checks and adjusts those deposits"]
                    #[doc = ""]
                    #[doc = "If any deposit is updated, the difference will be reserved/unreserved from the caller's"]
                    #[doc = "account."]
                    #[doc = ""]
                    #[doc = "The transaction is made free if any deposit is updated and paid otherwise."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if any deposit is updated."]
                    #[doc = "Multiple events may be emitted in case both types of deposits are updated."]
                    poke_deposit {
                        maybe_account: ::core::option::Option<
                            ::subxt::ext::subxt_core::utils::MultiAddress<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                                (),
                            >,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "User is not allowed to make a call on behalf of this account"]
                    NotAllowed,
                    #[codec(index = 1)]
                    #[doc = "Threshold must be greater than zero"]
                    ZeroThreshold,
                    #[codec(index = 2)]
                    #[doc = "Friends list must be greater than zero and threshold"]
                    NotEnoughFriends,
                    #[codec(index = 3)]
                    #[doc = "Friends list must be less than max friends"]
                    MaxFriends,
                    #[codec(index = 4)]
                    #[doc = "Friends list must be sorted and free of duplicates"]
                    NotSorted,
                    #[codec(index = 5)]
                    #[doc = "This account is not set up for recovery"]
                    NotRecoverable,
                    #[codec(index = 6)]
                    #[doc = "This account is already set up for recovery"]
                    AlreadyRecoverable,
                    #[codec(index = 7)]
                    #[doc = "A recovery process has already started for this account"]
                    AlreadyStarted,
                    #[codec(index = 8)]
                    #[doc = "A recovery process has not started for this rescuer"]
                    NotStarted,
                    #[codec(index = 9)]
                    #[doc = "This account is not a friend who can vouch"]
                    NotFriend,
                    #[codec(index = 10)]
                    #[doc = "The friend must wait until the delay period to vouch for this recovery"]
                    DelayPeriod,
                    #[codec(index = 11)]
                    #[doc = "This user has already vouched for this recovery"]
                    AlreadyVouched,
                    #[codec(index = 12)]
                    #[doc = "The threshold for recovering this account has not been met"]
                    Threshold,
                    #[codec(index = 13)]
                    #[doc = "There are still active recovery attempts that need to be closed"]
                    StillActive,
                    #[codec(index = 14)]
                    #[doc = "This account is already set up for recovery"]
                    AlreadyProxy,
                    #[codec(index = 15)]
                    #[doc = "Some internal state is broken."]
                    BadState,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Events type."]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A recovery process has been set up for an account."]
                    RecoveryCreated {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A recovery process has been initiated for lost account by rescuer account."]
                    RecoveryInitiated {
                        lost_account: ::subxt::ext::subxt_core::utils::AccountId32,
                        rescuer_account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 2)]
                    #[doc = "A recovery process for lost account by rescuer account has been vouched for by sender."]
                    RecoveryVouched {
                        lost_account: ::subxt::ext::subxt_core::utils::AccountId32,
                        rescuer_account: ::subxt::ext::subxt_core::utils::AccountId32,
                        sender: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 3)]
                    #[doc = "A recovery process for lost account by rescuer account has been closed."]
                    RecoveryClosed {
                        lost_account: ::subxt::ext::subxt_core::utils::AccountId32,
                        rescuer_account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 4)]
                    #[doc = "Lost account has been successfully recovered by rescuer account."]
                    AccountRecovered {
                        lost_account: ::subxt::ext::subxt_core::utils::AccountId32,
                        rescuer_account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A recovery process has been removed for an account."]
                    RecoveryRemoved {
                        lost_account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 6)]
                    #[doc = "A deposit has been updated."]
                    DepositPoked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        kind: runtime_types::pallet_recovery::DepositKind<
                            runtime_types::rococo_runtime::Runtime,
                        >,
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ActiveRecovery<_0, _1, _2> {
                pub created: _0,
                pub deposit: _1,
                pub friends: _2,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum DepositKind<_0> {
                #[codec(index = 0)]
                RecoveryConfig,
                #[codec(index = 1)]
                ActiveRecoveryFor(::subxt::ext::subxt_core::utils::AccountId32),
                __Ignore(::core::marker::PhantomData<_0>),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct RecoveryConfig<_0, _1, _2> {
                pub delay_period: _0,
                pub deposit: _1,
                pub friends: _2,
                pub threshold: ::core::primitive::u16,
            }
        }
        pub mod pallet_referenda {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Propose a referendum on a privileged action."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"]
                    #[doc = "  available."]
                    #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."]
                    #[doc = "- `proposal`: The proposal."]
                    #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."]
                    #[doc = ""]
                    #[doc = "Emits `Submitted`."]
                    submit {
                        proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::OriginCaller,
                        >,
                        proposal: runtime_types::frame_support::traits::preimages::Bounded<
                            runtime_types::rococo_runtime::RuntimeCall,
                            runtime_types::sp_runtime::traits::BlakeTwo256,
                        >,
                        enactment_moment:
                            runtime_types::frame_support::traits::schedule::DispatchTime<
                                ::core::primitive::u32,
                            >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Post the Decision Deposit for a referendum."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"]
                    #[doc = "  referendum's track's Decision Deposit."]
                    #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"]
                    #[doc = "  posted."]
                    #[doc = ""]
                    #[doc = "Emits `DecisionDepositPlaced`."]
                    place_decision_deposit { index: ::core::primitive::u32 },
                    #[codec(index = 2)]
                    #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `Signed` or `Root`."]
                    #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"]
                    #[doc = "  refunded."]
                    #[doc = ""]
                    #[doc = "Emits `DecisionDepositRefunded`."]
                    refund_decision_deposit { index: ::core::primitive::u32 },
                    #[codec(index = 3)]
                    #[doc = "Cancel an ongoing referendum."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be the `CancelOrigin`."]
                    #[doc = "- `index`: The index of the referendum to be cancelled."]
                    #[doc = ""]
                    #[doc = "Emits `Cancelled`."]
                    cancel { index: ::core::primitive::u32 },
                    #[codec(index = 4)]
                    #[doc = "Cancel an ongoing referendum and slash the deposits."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be the `KillOrigin`."]
                    #[doc = "- `index`: The index of the referendum to be cancelled."]
                    #[doc = ""]
                    #[doc = "Emits `Killed` and `DepositSlashed`."]
                    kill { index: ::core::primitive::u32 },
                    #[codec(index = 5)]
                    #[doc = "Advance a referendum onto its next logical state. Only used internally."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `Root`."]
                    #[doc = "- `index`: the referendum to be advanced."]
                    nudge_referendum { index: ::core::primitive::u32 },
                    #[codec(index = 6)]
                    #[doc = "Advance a track onto its next logical state. Only used internally."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `Root`."]
                    #[doc = "- `track`: the track to be advanced."]
                    #[doc = ""]
                    #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"]
                    #[doc = "`DecidingCount` is not yet updated. This means that we should either:"]
                    #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"]
                    #[doc = "- decrement `DecidingCount`."]
                    one_fewer_deciding { track: ::core::primitive::u16 },
                    #[codec(index = 7)]
                    #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."]
                    #[doc = ""]
                    #[doc = "- `origin`: must be `Signed` or `Root`."]
                    #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"]
                    #[doc = "  refunded."]
                    #[doc = ""]
                    #[doc = "Emits `SubmissionDepositRefunded`."]
                    refund_submission_deposit { index: ::core::primitive::u32 },
                    #[codec(index = 8)]
                    #[doc = "Set or clear metadata of a referendum."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"]
                    #[doc = "  metadata of a finished referendum."]
                    #[doc = "- `index`:  The index of a referendum to set or clear metadata for."]
                    #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."]
                    set_metadata {
                        index: ::core::primitive::u32,
                        maybe_hash: ::core::option::Option<::subxt::ext::subxt_core::utils::H256>,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Referendum is not ongoing."]
                    NotOngoing,
                    #[codec(index = 1)]
                    #[doc = "Referendum's decision deposit is already paid."]
                    HasDeposit,
                    #[codec(index = 2)]
                    #[doc = "The track identifier given was invalid."]
                    BadTrack,
                    #[codec(index = 3)]
                    #[doc = "There are already a full complement of referenda in progress for this track."]
                    Full,
                    #[codec(index = 4)]
                    #[doc = "The queue of the track is empty."]
                    QueueEmpty,
                    #[codec(index = 5)]
                    #[doc = "The referendum index provided is invalid in this context."]
                    BadReferendum,
                    #[codec(index = 6)]
                    #[doc = "There was nothing to do in the advancement."]
                    NothingToDo,
                    #[codec(index = 7)]
                    #[doc = "No track exists for the proposal origin."]
                    NoTrack,
                    #[codec(index = 8)]
                    #[doc = "Any deposit cannot be refunded until after the decision is over."]
                    Unfinished,
                    #[codec(index = 9)]
                    #[doc = "The deposit refunder is not the depositor."]
                    NoPermission,
                    #[codec(index = 10)]
                    #[doc = "The deposit cannot be refunded since none was made."]
                    NoDeposit,
                    #[codec(index = 11)]
                    #[doc = "The referendum status is invalid for this operation."]
                    BadStatus,
                    #[codec(index = 12)]
                    #[doc = "The preimage does not exist."]
                    PreimageNotExist,
                    #[codec(index = 13)]
                    #[doc = "The preimage is stored with a different length than the one provided."]
                    PreimageStoredWithDifferentLength,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event1 {
                    #[codec(index = 0)]
                    #[doc = "A referendum has been submitted."]
                    Submitted {
                        index: ::core::primitive::u32,
                        track: ::core::primitive::u16,
                        proposal: runtime_types::frame_support::traits::preimages::Bounded<
                            runtime_types::rococo_runtime::RuntimeCall,
                            runtime_types::sp_runtime::traits::BlakeTwo256,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "The decision deposit has been placed."]
                    DecisionDepositPlaced {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "The decision deposit has been refunded."]
                    DecisionDepositRefunded {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "A deposit has been slashed."]
                    DepositSlashed {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "A referendum has moved into the deciding phase."]
                    DecisionStarted {
                        index: ::core::primitive::u32,
                        track: ::core::primitive::u16,
                        proposal: runtime_types::frame_support::traits::preimages::Bounded<
                            runtime_types::rococo_runtime::RuntimeCall,
                            runtime_types::sp_runtime::traits::BlakeTwo256,
                        >,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 5)]
                    ConfirmStarted { index: ::core::primitive::u32 },
                    #[codec(index = 6)]
                    ConfirmAborted { index: ::core::primitive::u32 },
                    #[codec(index = 7)]
                    #[doc = "A referendum has ended its confirmation phase and is ready for approval."]
                    Confirmed {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 8)]
                    #[doc = "A referendum has been approved and its proposal has been scheduled."]
                    Approved { index: ::core::primitive::u32 },
                    #[codec(index = 9)]
                    #[doc = "A proposal has been rejected by referendum."]
                    Rejected {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 10)]
                    #[doc = "A referendum has been timed out without being decided."]
                    TimedOut {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 11)]
                    #[doc = "A referendum has been cancelled."]
                    Cancelled {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 12)]
                    #[doc = "A referendum has been killed."]
                    Killed {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_conviction_voting::types::Tally<
                            ::core::primitive::u128,
                        >,
                    },
                    #[codec(index = 13)]
                    #[doc = "The submission deposit has been refunded."]
                    SubmissionDepositRefunded {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 14)]
                    #[doc = "Metadata for a referendum has been set."]
                    MetadataSet {
                        index: ::core::primitive::u32,
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 15)]
                    #[doc = "Metadata for a referendum has been cleared."]
                    MetadataCleared {
                        index: ::core::primitive::u32,
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event2 {
                    #[codec(index = 0)]
                    #[doc = "A referendum has been submitted."]
                    Submitted {
                        index: ::core::primitive::u32,
                        track: ::core::primitive::u16,
                        proposal: runtime_types::frame_support::traits::preimages::Bounded<
                            runtime_types::rococo_runtime::RuntimeCall,
                            runtime_types::sp_runtime::traits::BlakeTwo256,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "The decision deposit has been placed."]
                    DecisionDepositPlaced {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "The decision deposit has been refunded."]
                    DecisionDepositRefunded {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "A deposit has been slashed."]
                    DepositSlashed {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "A referendum has moved into the deciding phase."]
                    DecisionStarted {
                        index: ::core::primitive::u32,
                        track: ::core::primitive::u16,
                        proposal: runtime_types::frame_support::traits::preimages::Bounded<
                            runtime_types::rococo_runtime::RuntimeCall,
                            runtime_types::sp_runtime::traits::BlakeTwo256,
                        >,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 5)]
                    ConfirmStarted { index: ::core::primitive::u32 },
                    #[codec(index = 6)]
                    ConfirmAborted { index: ::core::primitive::u32 },
                    #[codec(index = 7)]
                    #[doc = "A referendum has ended its confirmation phase and is ready for approval."]
                    Confirmed {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 8)]
                    #[doc = "A referendum has been approved and its proposal has been scheduled."]
                    Approved { index: ::core::primitive::u32 },
                    #[codec(index = 9)]
                    #[doc = "A proposal has been rejected by referendum."]
                    Rejected {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 10)]
                    #[doc = "A referendum has been timed out without being decided."]
                    TimedOut {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 11)]
                    #[doc = "A referendum has been cancelled."]
                    Cancelled {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 12)]
                    #[doc = "A referendum has been killed."]
                    Killed {
                        index: ::core::primitive::u32,
                        tally: runtime_types::pallet_ranked_collective::Tally,
                    },
                    #[codec(index = 13)]
                    #[doc = "The submission deposit has been refunded."]
                    SubmissionDepositRefunded {
                        index: ::core::primitive::u32,
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 14)]
                    #[doc = "Metadata for a referendum has been set."]
                    MetadataSet {
                        index: ::core::primitive::u32,
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 15)]
                    #[doc = "Metadata for a referendum has been cleared."]
                    MetadataCleared {
                        index: ::core::primitive::u32,
                        hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                }
            }
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Curve {
                    #[codec(index = 0)]
                    LinearDecreasing {
                        length: runtime_types::sp_arithmetic::per_things::Perbill,
                        floor: runtime_types::sp_arithmetic::per_things::Perbill,
                        ceil: runtime_types::sp_arithmetic::per_things::Perbill,
                    },
                    #[codec(index = 1)]
                    SteppedDecreasing {
                        begin: runtime_types::sp_arithmetic::per_things::Perbill,
                        end: runtime_types::sp_arithmetic::per_things::Perbill,
                        step: runtime_types::sp_arithmetic::per_things::Perbill,
                        period: runtime_types::sp_arithmetic::per_things::Perbill,
                    },
                    #[codec(index = 2)]
                    Reciprocal {
                        factor: runtime_types::sp_arithmetic::fixed_point::FixedI64,
                        x_offset: runtime_types::sp_arithmetic::fixed_point::FixedI64,
                        y_offset: runtime_types::sp_arithmetic::fixed_point::FixedI64,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DecidingStatus<_0> {
                    pub since: _0,
                    pub confirming: ::core::option::Option<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Deposit<_0, _1> {
                    pub who: _0,
                    pub amount: _1,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum ReferendumInfo<_0, _1, _2, _3, _4, _5, _6, _7> {
                    #[codec(index = 0)]
                    Ongoing(
                        runtime_types::pallet_referenda::types::ReferendumStatus<
                            _0,
                            _1,
                            _2,
                            _3,
                            _4,
                            _5,
                            _6,
                            _7,
                        >,
                    ),
                    #[codec(index = 1)]
                    Approved(
                        _2,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                    ),
                    #[codec(index = 2)]
                    Rejected(
                        _2,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                    ),
                    #[codec(index = 3)]
                    Cancelled(
                        _2,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                    ),
                    #[codec(index = 4)]
                    TimedOut(
                        _2,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                        ::core::option::Option<
                            runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                        >,
                    ),
                    #[codec(index = 5)]
                    Killed(_2),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ReferendumStatus<_0, _1, _2, _3, _4, _5, _6, _7> {
                    pub track: _0,
                    pub origin: _1,
                    pub proposal: _3,
                    pub enactment: runtime_types::frame_support::traits::schedule::DispatchTime<_2>,
                    pub submitted: _2,
                    pub submission_deposit: runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                    pub decision_deposit: ::core::option::Option<
                        runtime_types::pallet_referenda::types::Deposit<_6, _4>,
                    >,
                    pub deciding: ::core::option::Option<
                        runtime_types::pallet_referenda::types::DecidingStatus<_2>,
                    >,
                    pub tally: _5,
                    pub in_queue: ::core::primitive::bool,
                    pub alarm: ::core::option::Option<(_2, _7)>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct TrackDetails<_0, _1, _2> {
                    pub name: _2,
                    pub max_deciding: ::core::primitive::u32,
                    pub decision_deposit: _0,
                    pub prepare_period: _1,
                    pub decision_period: _1,
                    pub confirm_period: _1,
                    pub min_enactment_period: _1,
                    pub min_approval: runtime_types::pallet_referenda::types::Curve,
                    pub min_support: runtime_types::pallet_referenda::types::Curve,
                }
            }
        }
        pub mod pallet_root_testing {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "A dispatch that will fill the block weight up to the given ratio."]
                    fill_block {
                        ratio: runtime_types::sp_arithmetic::per_things::Perbill,
                    },
                    #[codec(index = 1)]
                    trigger_defensive,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "Event dispatched when the trigger_defensive extrinsic is called."]
                    DefensiveTestCall,
                }
            }
        }
        pub mod pallet_scheduler {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Anonymously schedule a task."]
                    schedule {
                        when: ::core::primitive::u32,
                        maybe_periodic: ::core::option::Option<(
                            ::core::primitive::u32,
                            ::core::primitive::u32,
                        )>,
                        priority: ::core::primitive::u8,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Cancel an anonymously scheduled task."]
                    cancel {
                        when: ::core::primitive::u32,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Schedule a named task."]
                    schedule_named {
                        id: [::core::primitive::u8; 32usize],
                        when: ::core::primitive::u32,
                        maybe_periodic: ::core::option::Option<(
                            ::core::primitive::u32,
                            ::core::primitive::u32,
                        )>,
                        priority: ::core::primitive::u8,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "Cancel a named scheduled task."]
                    cancel_named {
                        id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 4)]
                    #[doc = "Anonymously schedule a task after a delay."]
                    schedule_after {
                        after: ::core::primitive::u32,
                        maybe_periodic: ::core::option::Option<(
                            ::core::primitive::u32,
                            ::core::primitive::u32,
                        )>,
                        priority: ::core::primitive::u8,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 5)]
                    #[doc = "Schedule a named task after a delay."]
                    schedule_named_after {
                        id: [::core::primitive::u8; 32usize],
                        after: ::core::primitive::u32,
                        maybe_periodic: ::core::option::Option<(
                            ::core::primitive::u32,
                            ::core::primitive::u32,
                        )>,
                        priority: ::core::primitive::u8,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 6)]
                    #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"]
                    #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"]
                    #[doc = "succeeds."]
                    #[doc = ""]
                    #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                    #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                    #[doc = "normally while the task is retrying."]
                    #[doc = ""]
                    #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                    #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                    #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                    #[doc = "original `total_retries`."]
                    set_retry {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        retries: ::core::primitive::u8,
                        period: ::core::primitive::u32,
                    },
                    #[codec(index = 7)]
                    #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"]
                    #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"]
                    #[doc = "it succeeds."]
                    #[doc = ""]
                    #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"]
                    #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"]
                    #[doc = "normally while the task is retrying."]
                    #[doc = ""]
                    #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"]
                    #[doc = "clones of the original task. Their retry configuration will be derived from the"]
                    #[doc = "original task's configuration, but will have a lower value for `remaining` than the"]
                    #[doc = "original `total_retries`."]
                    set_retry_named {
                        id: [::core::primitive::u8; 32usize],
                        retries: ::core::primitive::u8,
                        period: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    #[doc = "Removes the retry configuration of a task."]
                    cancel_retry {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                    },
                    #[codec(index = 9)]
                    #[doc = "Cancel the retry configuration of a named task."]
                    cancel_retry_named {
                        id: [::core::primitive::u8; 32usize],
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Failed to schedule a call"]
                    FailedToSchedule,
                    #[codec(index = 1)]
                    #[doc = "Cannot find the scheduled call."]
                    NotFound,
                    #[codec(index = 2)]
                    #[doc = "Given target block number is in the past."]
                    TargetBlockNumberInPast,
                    #[codec(index = 3)]
                    #[doc = "Reschedule failed because it does not change scheduled time."]
                    RescheduleNoChange,
                    #[codec(index = 4)]
                    #[doc = "Attempt to use a non-named function on a named task."]
                    Named,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Events type."]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "Scheduled some task."]
                    Scheduled {
                        when: ::core::primitive::u32,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "Canceled some task."]
                    Canceled {
                        when: ::core::primitive::u32,
                        index: ::core::primitive::u32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Dispatched some task."]
                    Dispatched {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                        result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                    #[codec(index = 3)]
                    #[doc = "Set a retry configuration for some task."]
                    RetrySet {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                        period: ::core::primitive::u32,
                        retries: ::core::primitive::u8,
                    },
                    #[codec(index = 4)]
                    #[doc = "Cancel a retry configuration for some task."]
                    RetryCancelled {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                    },
                    #[codec(index = 5)]
                    #[doc = "The call for the provided hash was not found so the task has been aborted."]
                    CallUnavailable {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                    },
                    #[codec(index = 6)]
                    #[doc = "The given task was unable to be renewed since the agenda is full at that block."]
                    PeriodicFailed {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                    },
                    #[codec(index = 7)]
                    #[doc = "The given task was unable to be retried since the agenda is full at that block or there"]
                    #[doc = "was not enough weight to reschedule it."]
                    RetryFailed {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                    },
                    #[codec(index = 8)]
                    #[doc = "The given task can never be executed since it is overweight."]
                    PermanentlyOverweight {
                        task: (::core::primitive::u32, ::core::primitive::u32),
                        id: ::core::option::Option<[::core::primitive::u8; 32usize]>,
                    },
                    #[codec(index = 9)]
                    #[doc = "Agenda is incomplete from `when`."]
                    AgendaIncomplete { when: ::core::primitive::u32 },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct RetryConfig<_0> {
                pub total_retries: ::core::primitive::u8,
                pub remaining: ::core::primitive::u8,
                pub period: _0,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Scheduled<_0, _1, _2, _3, _4> {
                pub maybe_id: ::core::option::Option<_0>,
                pub priority: ::core::primitive::u8,
                pub call: _1,
                pub maybe_periodic: ::core::option::Option<(_2, _2)>,
                pub origin: _3,
                #[codec(skip)]
                pub __ignore: ::core::marker::PhantomData<_4>,
            }
        }
        pub mod pallet_session {
            use super::runtime_types;
            pub mod historical {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "The merkle root of the validators of the said session were stored"]
                        RootStored { index: ::core::primitive::u32 },
                        #[codec(index = 1)]
                        #[doc = "The merkle roots of up to this session index were pruned"]
                        RootsPruned { up_to: ::core::primitive::u32 },
                    }
                }
            }
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Sets the session key(s) of the function caller to `keys`."]
                    #[doc = "Allows an account to set its session key prior to becoming a validator."]
                    #[doc = "This doesn't take effect until the next session."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this function must be signed."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"]
                    #[doc = "  fixed."]
                    set_keys {
                        keys: runtime_types::rococo_runtime::SessionKeys,
                        proof: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 1)]
                    #[doc = "Removes any session key(s) of the function caller."]
                    #[doc = ""]
                    #[doc = "This doesn't take effect until the next session."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this function must be Signed and the account must be either be"]
                    #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"]
                    #[doc = "means being a controller account) or directly convertible into a validator ID (which"]
                    #[doc = "usually means being a stash account)."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"]
                    #[doc = "  `T::Keys::key_ids()` which is fixed."]
                    purge_keys,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Error for the session pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Invalid ownership proof."]
                    InvalidProof,
                    #[codec(index = 1)]
                    #[doc = "No associated validator ID for account."]
                    NoAssociatedValidatorId,
                    #[codec(index = 2)]
                    #[doc = "Registered duplicate key."]
                    DuplicatedKey,
                    #[codec(index = 3)]
                    #[doc = "No keys are associated with this account."]
                    NoKeys,
                    #[codec(index = 4)]
                    #[doc = "Key setting account is not live, so it's impossible to associate keys."]
                    NoAccount,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "New session has happened. Note that the argument is the session index, not the"]
                    #[doc = "block number as the type might suggest."]
                    NewSession {
                        session_index: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "The `NewSession` event in the current block also implies a new validator set to be"]
                    #[doc = "queued."]
                    NewQueued,
                    #[codec(index = 2)]
                    #[doc = "Validator has been disabled."]
                    ValidatorDisabled {
                        validator: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Validator has been re-enabled."]
                    ValidatorReenabled {
                        validator: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum HoldReason {
                    #[codec(index = 0)]
                    Keys,
                }
            }
        }
        pub mod pallet_society {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "A user outside of the society can make a bid for entry."]
                    #[doc = ""]
                    #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"]
                    #[doc = "when the bid becomes a member, or if the bid calls `unbid`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."]
                    bid { value: ::core::primitive::u128 },
                    #[codec(index = 1)]
                    #[doc = "A bidder can remove their bid for entry into society."]
                    #[doc = "By doing so, they will have their candidate deposit returned or"]
                    #[doc = "they will unvouch their voucher."]
                    #[doc = ""]
                    #[doc = "Payment: The bid deposit is unreserved if the user made a bid."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."]
                    unbid,
                    #[codec(index = 2)]
                    #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."]
                    #[doc = ""]
                    #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"]
                    #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"]
                    #[doc = "the suspension judgement origin, the member will be banned from vouching again."]
                    #[doc = ""]
                    #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"]
                    #[doc = "be paid as a portion of the reward the member will receive for joining the society."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `who`: The user who you would like to vouch for."]
                    #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"]
                    #[doc = "a member in the society."]
                    #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"]
                    #[doc = "the society. Tips larger than `value` will be saturated upon payout."]
                    vouch {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        value: ::core::primitive::u128,
                        tip: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"]
                    #[doc = "only a bidder (and not a candidate)."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."]
                    unvouch,
                    #[codec(index = 4)]
                    #[doc = "As a member, vote on a candidate."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `candidate`: The candidate that the member would like to bid on."]
                    #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"]
                    #[doc = "  rejected (`false`)."]
                    vote {
                        candidate: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        approve: ::core::primitive::bool,
                    },
                    #[codec(index = 5)]
                    #[doc = "As a member, vote on the defender."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a member."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `approve`: A boolean which says if the candidate should be"]
                    #[doc = "approved (`true`) or rejected (`false`)."]
                    defender_vote { approve: ::core::primitive::bool },
                    #[codec(index = 6)]
                    #[doc = "Transfer the first matured payout for the sender and remove it from the records."]
                    #[doc = ""]
                    #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"]
                    #[doc = "payouts."]
                    #[doc = ""]
                    #[doc = "Payment: The member will receive a payment equal to their first matured"]
                    #[doc = "payout to their free balance."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and a member with"]
                    #[doc = "payouts remaining."]
                    payout,
                    #[codec(index = 7)]
                    #[doc = "Repay the payment previously given to the member with the signed origin, remove any"]
                    #[doc = "pending payments, and elevate them from rank 0 to rank 1."]
                    waive_repay { amount: ::core::primitive::u128 },
                    #[codec(index = 8)]
                    #[doc = "Found the society."]
                    #[doc = ""]
                    #[doc = "This is done as a discrete action in order to allow for the"]
                    #[doc = "pallet to be included into a running chain and can only be done once."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `founder` - The first member and head of the newly founded society."]
                    #[doc = "- `max_members` - The initial max number of members for the society."]
                    #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                    #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                    #[doc = "  suspended and may only be reinstated by the founder."]
                    #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                    #[doc = "- `rules` - The rules of this society concerning membership."]
                    #[doc = ""]
                    #[doc = "Complexity: O(1)"]
                    found_society {
                        founder: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        max_members: ::core::primitive::u32,
                        max_intake: ::core::primitive::u32,
                        max_strikes: ::core::primitive::u32,
                        candidate_deposit: ::core::primitive::u128,
                        rules: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    },
                    #[codec(index = 9)]
                    #[doc = "Dissolve the society and remove all members."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"]
                    #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"]
                    #[doc = "member."]
                    dissolve,
                    #[codec(index = 10)]
                    #[doc = "Allow suspension judgement origin to make judgement on a suspended member."]
                    #[doc = ""]
                    #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"]
                    #[doc = "any of the existing storage items for that member."]
                    #[doc = ""]
                    #[doc = "If a suspended member is rejected, remove all associated storage items, including"]
                    #[doc = "their payouts, and remove any vouched bids they currently have."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be Signed from the Founder."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `who` - The suspended member to be judged."]
                    #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"]
                    #[doc = "  (`true`) or rejects (`false`) a suspended member."]
                    judge_suspended_member {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        forgive: ::core::primitive::bool,
                    },
                    #[codec(index = 11)]
                    #[doc = "Change the maximum number of members in society and the maximum number of new candidates"]
                    #[doc = "in a single intake period."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be Signed by the Founder."]
                    #[doc = ""]
                    #[doc = "Parameters:"]
                    #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"]
                    #[doc = "  than the current number of members."]
                    #[doc = "- `max_intake` - The maximum number of candidates per intake period."]
                    #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"]
                    #[doc = "  suspended and may only be reinstated by the founder."]
                    #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."]
                    set_parameters {
                        max_members: ::core::primitive::u32,
                        max_intake: ::core::primitive::u32,
                        max_strikes: ::core::primitive::u32,
                        candidate_deposit: ::core::primitive::u128,
                    },
                    #[codec(index = 12)]
                    #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"]
                    #[doc = "candidate."]
                    punish_skeptic,
                    #[codec(index = 13)]
                    #[doc = "Transform an approved candidate into a member. Callable only by the"]
                    #[doc = "the candidate, and only after the period for voting has ended."]
                    claim_membership,
                    #[codec(index = 14)]
                    #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"]
                    #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"]
                    #[doc = "clearly rejected."]
                    bestow_membership {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 15)]
                    #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"]
                    #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"]
                    #[doc = "have a clear approval."]
                    #[doc = ""]
                    #[doc = "Any bid deposit is lost and voucher is banned."]
                    kick_candidate {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 16)]
                    #[doc = "Remove the candidate's application from the society. Callable only by the candidate."]
                    #[doc = ""]
                    #[doc = "Any bid deposit is lost and voucher is banned."]
                    resign_candidacy,
                    #[codec(index = 17)]
                    #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"]
                    #[doc = "signed origin but only at the end of the subsequent round and only for"]
                    #[doc = "a candidate with more rejections than approvals."]
                    #[doc = ""]
                    #[doc = "The bid deposit is lost and the voucher is banned."]
                    drop_candidate {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 18)]
                    #[doc = "Remove up to `max` stale votes for the given `candidate`."]
                    #[doc = ""]
                    #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."]
                    cleanup_candidacy {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                        max: ::core::primitive::u32,
                    },
                    #[codec(index = 19)]
                    #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."]
                    #[doc = ""]
                    #[doc = "May be called by any Signed origin, but only after the challenge round is ended."]
                    cleanup_challenge {
                        challenge_round: ::core::primitive::u32,
                        max: ::core::primitive::u32,
                    },
                    #[codec(index = 20)]
                    #[doc = "Poke the deposit reserved when bidding."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and must be the bidder."]
                    #[doc = ""]
                    #[doc = "The transaction fee is waived if the deposit is changed after poking/reconsideration."]
                    #[doc = ""]
                    #[doc = "Emits `DepositPoked` if successful."]
                    poke_deposit,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "User is not a member."]
                    NotMember,
                    #[codec(index = 1)]
                    #[doc = "User is already a member."]
                    AlreadyMember,
                    #[codec(index = 2)]
                    #[doc = "User is suspended."]
                    Suspended,
                    #[codec(index = 3)]
                    #[doc = "User is not suspended."]
                    NotSuspended,
                    #[codec(index = 4)]
                    #[doc = "Nothing to payout."]
                    NoPayout,
                    #[codec(index = 5)]
                    #[doc = "Society already founded."]
                    AlreadyFounded,
                    #[codec(index = 6)]
                    #[doc = "Not enough in pot to accept candidate."]
                    InsufficientPot,
                    #[codec(index = 7)]
                    #[doc = "Member is already vouching or banned from vouching again."]
                    AlreadyVouching,
                    #[codec(index = 8)]
                    #[doc = "Member is not vouching."]
                    NotVouchingOnBidder,
                    #[codec(index = 9)]
                    #[doc = "Cannot remove the head of the chain."]
                    Head,
                    #[codec(index = 10)]
                    #[doc = "Cannot remove the founder."]
                    Founder,
                    #[codec(index = 11)]
                    #[doc = "User has already made a bid."]
                    AlreadyBid,
                    #[codec(index = 12)]
                    #[doc = "User is already a candidate."]
                    AlreadyCandidate,
                    #[codec(index = 13)]
                    #[doc = "User is not a candidate."]
                    NotCandidate,
                    #[codec(index = 14)]
                    #[doc = "Too many members in the society."]
                    MaxMembers,
                    #[codec(index = 15)]
                    #[doc = "The caller is not the founder."]
                    NotFounder,
                    #[codec(index = 16)]
                    #[doc = "The caller is not the head."]
                    NotHead,
                    #[codec(index = 17)]
                    #[doc = "The membership cannot be claimed as the candidate was not clearly approved."]
                    NotApproved,
                    #[codec(index = 18)]
                    #[doc = "The candidate cannot be kicked as the candidate was not clearly rejected."]
                    NotRejected,
                    #[codec(index = 19)]
                    #[doc = "The candidacy cannot be dropped as the candidate was clearly approved."]
                    Approved,
                    #[codec(index = 20)]
                    #[doc = "The candidacy cannot be bestowed as the candidate was clearly rejected."]
                    Rejected,
                    #[codec(index = 21)]
                    #[doc = "The candidacy cannot be concluded as the voting is still in progress."]
                    InProgress,
                    #[codec(index = 22)]
                    #[doc = "The candidacy cannot be pruned until a full additional intake period has passed."]
                    TooEarly,
                    #[codec(index = 23)]
                    #[doc = "The skeptic already voted."]
                    Voted,
                    #[codec(index = 24)]
                    #[doc = "The skeptic need not vote on candidates from expired rounds."]
                    Expired,
                    #[codec(index = 25)]
                    #[doc = "User is not a bidder."]
                    NotBidder,
                    #[codec(index = 26)]
                    #[doc = "There is no defender currently."]
                    NoDefender,
                    #[codec(index = 27)]
                    #[doc = "Group doesn't exist."]
                    NotGroup,
                    #[codec(index = 28)]
                    #[doc = "The member is already elevated to this rank."]
                    AlreadyElevated,
                    #[codec(index = 29)]
                    #[doc = "The skeptic has already been punished for this offence."]
                    AlreadyPunished,
                    #[codec(index = 30)]
                    #[doc = "Funds are insufficient to pay off society debts."]
                    InsufficientFunds,
                    #[codec(index = 31)]
                    #[doc = "The candidate/defender has no stale votes to remove."]
                    NoVotes,
                    #[codec(index = 32)]
                    #[doc = "There is no deposit associated with a bid."]
                    NoDeposit,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "The society is founded by the given identity."]
                    Founded {
                        founder: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 1)]
                    #[doc = "A membership bid just happened. The given account is the candidate's ID and their offer"]
                    #[doc = "is the second."]
                    Bid {
                        candidate_id: ::subxt::ext::subxt_core::utils::AccountId32,
                        offer: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "A membership bid just happened by vouching. The given account is the candidate's ID and"]
                    #[doc = "their offer is the second. The vouching party is the third."]
                    Vouch {
                        candidate_id: ::subxt::ext::subxt_core::utils::AccountId32,
                        offer: ::core::primitive::u128,
                        vouching: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 3)]
                    #[doc = "A candidate was dropped (due to an excess of bids in the system)."]
                    AutoUnbid {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 4)]
                    #[doc = "A candidate was dropped (by their request)."]
                    Unbid {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 5)]
                    #[doc = "A candidate was dropped (by request of who vouched for them)."]
                    Unvouch {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 6)]
                    #[doc = "A group of candidates have been inducted. The batch's primary is the first value, the"]
                    #[doc = "batch in full is the second."]
                    Inducted {
                        primary: ::subxt::ext::subxt_core::utils::AccountId32,
                        candidates: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                        >,
                    },
                    #[codec(index = 7)]
                    #[doc = "A suspended member has been judged."]
                    SuspendedMemberJudgement {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        judged: ::core::primitive::bool,
                    },
                    #[codec(index = 8)]
                    #[doc = "A candidate has been suspended"]
                    CandidateSuspended {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 9)]
                    #[doc = "A member has been suspended"]
                    MemberSuspended {
                        member: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 10)]
                    #[doc = "A member has been challenged"]
                    Challenged {
                        member: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 11)]
                    #[doc = "A vote has been placed"]
                    Vote {
                        candidate: ::subxt::ext::subxt_core::utils::AccountId32,
                        voter: ::subxt::ext::subxt_core::utils::AccountId32,
                        vote: ::core::primitive::bool,
                    },
                    #[codec(index = 12)]
                    #[doc = "A vote has been placed for a defending member"]
                    DefenderVote {
                        voter: ::subxt::ext::subxt_core::utils::AccountId32,
                        vote: ::core::primitive::bool,
                    },
                    #[codec(index = 13)]
                    #[doc = "A new set of \\[params\\] has been set for the group."]
                    NewParams {
                        params: runtime_types::pallet_society::GroupParams<::core::primitive::u128>,
                    },
                    #[codec(index = 14)]
                    #[doc = "Society is unfounded."]
                    Unfounded {
                        founder: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 15)]
                    #[doc = "Some funds were deposited into the society account."]
                    Deposit { value: ::core::primitive::u128 },
                    #[codec(index = 16)]
                    #[doc = "A \\[member\\] got elevated to \\[rank\\]."]
                    Elevated {
                        member: ::subxt::ext::subxt_core::utils::AccountId32,
                        rank: ::core::primitive::u32,
                    },
                    #[codec(index = 17)]
                    #[doc = "A deposit was poked / adjusted."]
                    DepositPoked {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        old_deposit: ::core::primitive::u128,
                        new_deposit: ::core::primitive::u128,
                    },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Bid<_0, _1> {
                pub who: _0,
                pub kind: runtime_types::pallet_society::BidKind<_0, _1>,
                pub value: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum BidKind<_0, _1> {
                #[codec(index = 0)]
                Deposit(_1),
                #[codec(index = 1)]
                Vouch(_0, _1),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Candidacy<_0, _1> {
                pub round: ::core::primitive::u32,
                pub kind: runtime_types::pallet_society::BidKind<_0, _1>,
                pub bid: _1,
                pub tally: runtime_types::pallet_society::Tally,
                pub skeptic_struck: ::core::primitive::bool,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct GroupParams<_0> {
                pub max_members: ::core::primitive::u32,
                pub max_intake: ::core::primitive::u32,
                pub max_strikes: ::core::primitive::u32,
                pub candidate_deposit: _0,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct IntakeRecord<_0, _1> {
                pub who: _0,
                pub bid: _1,
                pub round: ::core::primitive::u32,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct MemberRecord {
                pub rank: ::core::primitive::u32,
                pub strikes: ::core::primitive::u32,
                pub vouching: ::core::option::Option<runtime_types::pallet_society::VouchingStatus>,
                pub index: ::core::primitive::u32,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct PayoutRecord<_0, _1> {
                pub paid: _0,
                pub payouts: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Tally {
                pub approvals: ::core::primitive::u32,
                pub rejections: ::core::primitive::u32,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Vote {
                pub approve: ::core::primitive::bool,
                pub weight: ::core::primitive::u32,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VouchingStatus {
                #[codec(index = 0)]
                Vouching,
                #[codec(index = 1)]
                Banned,
            }
        }
        pub mod pallet_state_trie_migration {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Control the automatic migration."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."]
                    control_auto_migration {
                        maybe_config: ::core::option::Option<
                            runtime_types::pallet_state_trie_migration::pallet::MigrationLimits,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Continue the migration for the given `limits`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin of this call can be any signed account."]
                    #[doc = ""]
                    #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"]
                    #[doc = "Upon successful execution, the transaction fee is returned."]
                    #[doc = ""]
                    #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"]
                    #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"]
                    #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"]
                    #[doc = "`real_size_upper` bytes of read data."]
                    #[doc = ""]
                    #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"]
                    #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"]
                    #[doc = "from caller, saying that they believed `witness_task` was the last state of the"]
                    #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"]
                    #[doc = "holds. In case `witness_task` does not match, the transaction fails."]
                    #[doc = ""]
                    #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"]
                    #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"]
                    #[doc = "`size` limit can always be overwritten."]
                    continue_migrate {
                        limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits,
                        real_size_upper: ::core::primitive::u32,
                        witness_task:
                            runtime_types::pallet_state_trie_migration::pallet::MigrationTask,
                    },
                    #[codec(index = 2)]
                    #[doc = "Migrate the list of top keys by iterating each of them one by one."]
                    #[doc = ""]
                    #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                    #[doc = "should only be used in case any keys are leftover due to a bug."]
                    migrate_custom_top {
                        keys: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                        witness_size: ::core::primitive::u32,
                    },
                    #[codec(index = 3)]
                    #[doc = "Migrate the list of child keys by iterating each of them one by one."]
                    #[doc = ""]
                    #[doc = "All of the given child keys must be present under one `child_root`."]
                    #[doc = ""]
                    #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"]
                    #[doc = "should only be used in case any keys are leftover due to a bug."]
                    migrate_custom_child {
                        root: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        child_keys: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                        total_size: ::core::primitive::u32,
                    },
                    #[codec(index = 4)]
                    #[doc = "Set the maximum limit of the signed migration."]
                    set_signed_max_limits {
                        limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits,
                    },
                    #[codec(index = 5)]
                    #[doc = "Forcefully set the progress the running migration."]
                    #[doc = ""]
                    #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"]
                    #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"]
                    #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"]
                    #[doc = "used, so probably it is already migrated."]
                    #[doc = ""]
                    #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"]
                    #[doc = "process."]
                    force_set_progress {
                        progress_top: runtime_types::pallet_state_trie_migration::pallet::Progress,
                        progress_child:
                            runtime_types::pallet_state_trie_migration::pallet::Progress,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Max signed limits not respected."]
                    MaxSignedLimits,
                    #[codec(index = 1)]
                    #[doc = "A key was longer than the configured maximum."]
                    #[doc = ""]
                    #[doc = "This means that the migration halted at the current [`Progress`] and"]
                    #[doc = "can be resumed with a larger [`crate::Config::MaxKeyLen`] value."]
                    #[doc = "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work."]
                    #[doc = "The value should only be increased to avoid a storage migration for the currently"]
                    #[doc = "stored [`crate::Progress::LastKey`]."]
                    KeyTooLong,
                    #[codec(index = 2)]
                    #[doc = "submitter does not have enough funds."]
                    NotEnoughFunds,
                    #[codec(index = 3)]
                    #[doc = "Bad witness data provided."]
                    BadWitness,
                    #[codec(index = 4)]
                    #[doc = "Signed migration is not allowed because the maximum limit is not set yet."]
                    SignedMigrationNotAllowed,
                    #[codec(index = 5)]
                    #[doc = "Bad child root provided."]
                    BadChildRoot,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Inner events of this pallet."]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "Given number of `(top, child)` keys were migrated respectively, with the given"]
                    #[doc = "`compute`."]
                    Migrated {
                        top: ::core::primitive::u32,
                        child: ::core::primitive::u32,
                        compute:
                            runtime_types::pallet_state_trie_migration::pallet::MigrationCompute,
                    },
                    #[codec(index = 1)]
                    #[doc = "Some account got slashed by the given amount."]
                    Slashed {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        amount: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "The auto migration task finished."]
                    AutoMigrationFinished,
                    #[codec(index = 3)]
                    #[doc = "Migration got halted due to an error or miss-configuration."]
                    Halted {
                        error: runtime_types::pallet_state_trie_migration::pallet::Error,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum HoldReason {
                    #[codec(index = 0)]
                    SlashForMigrate,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum MigrationCompute {
                    #[codec(index = 0)]
                    Signed,
                    #[codec(index = 1)]
                    Auto,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MigrationLimits {
                    pub size: ::core::primitive::u32,
                    pub item: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MigrationTask {
                    pub progress_top: runtime_types::pallet_state_trie_migration::pallet::Progress,
                    pub progress_child:
                        runtime_types::pallet_state_trie_migration::pallet::Progress,
                    pub size: ::core::primitive::u32,
                    pub top_items: ::core::primitive::u32,
                    pub child_items: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Progress {
                    #[codec(index = 0)]
                    ToStart,
                    #[codec(index = 1)]
                    LastKey(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    ),
                    #[codec(index = 2)]
                    Complete,
                }
            }
        }
        pub mod pallet_sudo {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                    sudo {
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
                    #[doc = "This function does not check the weight of the call, and instead allows the"]
                    #[doc = "Sudo user to specify the weight of the call."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    sudo_unchecked_weight {
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                        weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 2)]
                    #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"]
                    #[doc = "key."]
                    set_key {
                        new: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"]
                    #[doc = "a given account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    sudo_as {
                        who: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Permanently removes the sudo key."]
                    #[doc = ""]
                    #[doc = "**This cannot be un-done.**"]
                    remove_key,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Error for the Sudo pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Sender must be the Sudo account."]
                    RequireSudo,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A sudo call just took place."]
                    Sudid {
                        sudo_result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                    #[codec(index = 1)]
                    #[doc = "The sudo key has been updated."]
                    KeyChanged {
                        old: ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>,
                        new: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 2)]
                    #[doc = "The key was permanently removed."]
                    KeyRemoved,
                    #[codec(index = 3)]
                    #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."]
                    SudoAsDone {
                        sudo_result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                }
            }
        }
        pub mod pallet_timestamp {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Set the current time."]
                    #[doc = ""]
                    #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"]
                    #[doc = "phase, if this call hasn't been invoked by that time."]
                    #[doc = ""]
                    #[doc = "The timestamp should be greater than the previous one by the amount specified by"]
                    #[doc = "[`Config::MinimumPeriod`]."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _None_."]
                    #[doc = ""]
                    #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"]
                    #[doc = "that changing the complexity of this call could result exhausting the resources in a"]
                    #[doc = "block to execute any other calls."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"]
                    #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"]
                    #[doc = "  `on_finalize`)"]
                    #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."]
                    set {
                        #[codec(compact)]
                        now: ::core::primitive::u64,
                    },
                }
            }
        }
        pub mod pallet_transaction_payment {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,"]
                    #[doc = "has been paid by `who`."]
                    TransactionFeePaid {
                        who: ::subxt::ext::subxt_core::utils::AccountId32,
                        actual_fee: ::core::primitive::u128,
                        tip: ::core::primitive::u128,
                    },
                }
            }
            pub mod types {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct FeeDetails<_0> {
                    pub inclusion_fee: ::core::option::Option<
                        runtime_types::pallet_transaction_payment::types::InclusionFee<_0>,
                    >,
                    pub tip: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InclusionFee<_0> {
                    pub base_fee: _0,
                    pub len_fee: _0,
                    pub adjusted_weight_fee: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct RuntimeDispatchInfo<_0, _1> {
                    pub weight: _1,
                    pub class: runtime_types::frame_support::dispatch::DispatchClass,
                    pub partial_fee: _0,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ChargeTransactionPayment(#[codec(compact)] pub ::core::primitive::u128);
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Releases {
                #[codec(index = 0)]
                V1Ancient,
                #[codec(index = 1)]
                V2,
            }
        }
        pub mod pallet_treasury {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 3)]
                    #[doc = "Propose and approve a spend of treasury funds."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."]
                    #[doc = ""]
                    #[doc = "### Details"]
                    #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"]
                    #[doc = "beneficiary."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                    #[doc = "- `beneficiary`: The destination account for the transfer."]
                    #[doc = ""]
                    #[doc = "## Events"]
                    #[doc = ""]
                    #[doc = "Emits [`Event::SpendApproved`] if successful."]
                    spend_local {
                        #[codec(compact)]
                        amount: ::core::primitive::u128,
                        beneficiary: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Force a previously approved proposal to be removed from the approval queue."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be [`Config::RejectOrigin`]."]
                    #[doc = ""]
                    #[doc = "## Details"]
                    #[doc = ""]
                    #[doc = "The original deposit will no longer be returned."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `proposal_id`: The index of a proposal"]
                    #[doc = ""]
                    #[doc = "### Complexity"]
                    #[doc = "- O(A) where `A` is the number of approvals"]
                    #[doc = ""]
                    #[doc = "### Errors"]
                    #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"]
                    #[doc = "  approval queue, i.e., the proposal has not been approved. This could also mean the"]
                    #[doc = "  proposal does not exist altogether, thus there is no way it would have been approved"]
                    #[doc = "  in the first place."]
                    remove_approval {
                        #[codec(compact)]
                        proposal_id: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "Propose and approve a spend of treasury funds."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"]
                    #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"]
                    #[doc = "for assertion using the [`Config::BalanceConverter`]."]
                    #[doc = ""]
                    #[doc = "## Details"]
                    #[doc = ""]
                    #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"]
                    #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"]
                    #[doc = "the [`Config::PayoutPeriod`]."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."]
                    #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."]
                    #[doc = "- `beneficiary`: The beneficiary of the spend."]
                    #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"]
                    #[doc = "  the past if the resulting spend has not yet expired according to the"]
                    #[doc = "  [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"]
                    #[doc = "  approval."]
                    #[doc = ""]
                    #[doc = "## Events"]
                    #[doc = ""]
                    #[doc = "Emits [`Event::AssetSpendApproved`] if successful."]
                    spend {
                        asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        >,
                        #[codec(compact)]
                        amount: ::core::primitive::u128,
                        beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::xcm::VersionedLocation,
                        >,
                        valid_from: ::core::option::Option<::core::primitive::u32>,
                    },
                    #[codec(index = 6)]
                    #[doc = "Claim a spend."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be signed"]
                    #[doc = ""]
                    #[doc = "## Details"]
                    #[doc = ""]
                    #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"]
                    #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."]
                    #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"]
                    #[doc = "dispatchable before retrying with the current function."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `index`: The spend index."]
                    #[doc = ""]
                    #[doc = "## Events"]
                    #[doc = ""]
                    #[doc = "Emits [`Event::Paid`] if successful."]
                    payout { index: ::core::primitive::u32 },
                    #[codec(index = 7)]
                    #[doc = "Check the status of the spend and remove it from the storage if processed."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be signed."]
                    #[doc = ""]
                    #[doc = "## Details"]
                    #[doc = ""]
                    #[doc = "The status check is a prerequisite for retrying a failed payout."]
                    #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"]
                    #[doc = "function. In such instances, transaction fees are refunded."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `index`: The spend index."]
                    #[doc = ""]
                    #[doc = "## Events"]
                    #[doc = ""]
                    #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."]
                    #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."]
                    check_status { index: ::core::primitive::u32 },
                    #[codec(index = 8)]
                    #[doc = "Void previously approved spend."]
                    #[doc = ""]
                    #[doc = "## Dispatch Origin"]
                    #[doc = ""]
                    #[doc = "Must be [`Config::RejectOrigin`]."]
                    #[doc = ""]
                    #[doc = "## Details"]
                    #[doc = ""]
                    #[doc = "A spend void is only possible if the payout has not been attempted yet."]
                    #[doc = ""]
                    #[doc = "### Parameters"]
                    #[doc = "- `index`: The spend index."]
                    #[doc = ""]
                    #[doc = "## Events"]
                    #[doc = ""]
                    #[doc = "Emits [`Event::AssetSpendVoided`] if successful."]
                    void_spend { index: ::core::primitive::u32 },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Error for the treasury pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "No proposal, bounty or spend at that index."]
                    InvalidIndex,
                    #[codec(index = 1)]
                    #[doc = "Too many approvals in the queue."]
                    TooManyApprovals,
                    #[codec(index = 2)]
                    #[doc = "The spend origin is valid but the amount it is allowed to spend is lower than the"]
                    #[doc = "amount to be spent."]
                    InsufficientPermission,
                    #[codec(index = 3)]
                    #[doc = "Proposal has not been approved."]
                    ProposalNotApproved,
                    #[codec(index = 4)]
                    #[doc = "The balance of the asset kind is not convertible to the balance of the native asset."]
                    FailedToConvertBalance,
                    #[codec(index = 5)]
                    #[doc = "The spend has expired and cannot be claimed."]
                    SpendExpired,
                    #[codec(index = 6)]
                    #[doc = "The spend is not yet eligible for payout."]
                    EarlyPayout,
                    #[codec(index = 7)]
                    #[doc = "The payment has already been attempted."]
                    AlreadyAttempted,
                    #[codec(index = 8)]
                    #[doc = "There was some issue with the mechanism of payment."]
                    PayoutError,
                    #[codec(index = 9)]
                    #[doc = "The payout was not yet attempted/claimed."]
                    NotAttempted,
                    #[codec(index = 10)]
                    #[doc = "The payment has neither failed nor succeeded yet."]
                    Inconclusive,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "We have ended a spend period and will now allocate funds."]
                    Spending {
                        budget_remaining: ::core::primitive::u128,
                    },
                    #[codec(index = 1)]
                    #[doc = "Some funds have been allocated."]
                    Awarded {
                        proposal_index: ::core::primitive::u32,
                        award: ::core::primitive::u128,
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 2)]
                    #[doc = "Some of our funds have been burnt."]
                    Burnt {
                        burnt_funds: ::core::primitive::u128,
                    },
                    #[codec(index = 3)]
                    #[doc = "Spending has finished; this is the amount that rolls over until next spend."]
                    Rollover {
                        rollover_balance: ::core::primitive::u128,
                    },
                    #[codec(index = 4)]
                    #[doc = "Some funds have been deposited."]
                    Deposit { value: ::core::primitive::u128 },
                    #[codec(index = 5)]
                    #[doc = "A new spend proposal has been approved."]
                    SpendApproved {
                        proposal_index: ::core::primitive::u32,
                        amount: ::core::primitive::u128,
                        beneficiary: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                    #[codec(index = 6)]
                    #[doc = "The inactive funds of the pallet have been updated."]
                    UpdatedInactive {
                        reactivated: ::core::primitive::u128,
                        deactivated: ::core::primitive::u128,
                    },
                    #[codec(index = 7)]
                    #[doc = "A new asset spend proposal has been approved."]
                    AssetSpendApproved {
                        index: ::core::primitive::u32,
                        asset_kind:
                            runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset,
                        amount: ::core::primitive::u128,
                        beneficiary: runtime_types::xcm::VersionedLocation,
                        valid_from: ::core::primitive::u32,
                        expire_at: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    #[doc = "An approved spend was voided."]
                    AssetSpendVoided { index: ::core::primitive::u32 },
                    #[codec(index = 9)]
                    #[doc = "A payment happened."]
                    Paid {
                        index: ::core::primitive::u32,
                        payment_id: ::core::primitive::u64,
                    },
                    #[codec(index = 10)]
                    #[doc = "A payment failed and can be retried."]
                    PaymentFailed {
                        index: ::core::primitive::u32,
                        payment_id: ::core::primitive::u64,
                    },
                    #[codec(index = 11)]
                    #[doc = "A spend was processed and removed from the storage. It might have been successfully"]
                    #[doc = "paid or it may have expired."]
                    SpendProcessed { index: ::core::primitive::u32 },
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum PaymentState<_0> {
                #[codec(index = 0)]
                Pending,
                #[codec(index = 1)]
                Attempted { id: _0 },
                #[codec(index = 2)]
                Failed,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Proposal<_0, _1> {
                pub proposer: _0,
                pub value: _1,
                pub beneficiary: _0,
                pub bond: _1,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct SpendStatus<_0, _1, _2, _3, _4> {
                pub asset_kind: _0,
                pub amount: _1,
                pub beneficiary: _2,
                pub valid_from: _3,
                pub expire_at: _3,
                pub status: runtime_types::pallet_treasury::PaymentState<_4>,
            }
        }
        pub mod pallet_utility {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Send a batch of dispatch calls."]
                    #[doc = ""]
                    #[doc = "May be called from any origin except `None`."]
                    #[doc = ""]
                    #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                    #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                    #[doc = ""]
                    #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                    #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(C) where C is the number of calls to be batched."]
                    #[doc = ""]
                    #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"]
                    #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"]
                    #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"]
                    #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"]
                    #[doc = "event is deposited."]
                    batch {
                        calls: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 1)]
                    #[doc = "Send a call through an indexed pseudonym of the sender."]
                    #[doc = ""]
                    #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"]
                    #[doc = "use the same filter as the origin of this call."]
                    #[doc = ""]
                    #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."]
                    #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"]
                    #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"]
                    #[doc = "in the Multisig pallet instead."]
                    #[doc = ""]
                    #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    as_derivative {
                        index: ::core::primitive::u16,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 2)]
                    #[doc = "Send a batch of dispatch calls and atomically execute them."]
                    #[doc = "The whole transaction will rollback and fail if any of the calls failed."]
                    #[doc = ""]
                    #[doc = "May be called from any origin except `None`."]
                    #[doc = ""]
                    #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                    #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                    #[doc = ""]
                    #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"]
                    #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(C) where C is the number of calls to be batched."]
                    batch_all {
                        calls: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "Dispatches a function call with a provided origin."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(1)."]
                    dispatch_as {
                        as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::OriginCaller,
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Send a batch of dispatch calls."]
                    #[doc = "Unlike `batch`, it allows errors and won't interrupt."]
                    #[doc = ""]
                    #[doc = "May be called from any origin except `None`."]
                    #[doc = ""]
                    #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"]
                    #[doc = "  exceed the constant: `batched_calls_limit` (available in constant metadata)."]
                    #[doc = ""]
                    #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"]
                    #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- O(C) where C is the number of calls to be batched."]
                    force_batch {
                        calls: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 5)]
                    #[doc = "Dispatch a function call with a specified weight."]
                    #[doc = ""]
                    #[doc = "This function does not check the weight of the call, and instead allows the"]
                    #[doc = "Root origin to specify the weight of the call."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    with_weight {
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                        weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 6)]
                    #[doc = "Dispatch a fallback call in the event the main call fails to execute."]
                    #[doc = "May be called from any origin except `None`."]
                    #[doc = ""]
                    #[doc = "This function first attempts to dispatch the `main` call."]
                    #[doc = "If the `main` call fails, the `fallback` is attemted."]
                    #[doc = "if the fallback is successfully dispatched, the weights of both calls"]
                    #[doc = "are accumulated and an event containing the main call error is deposited."]
                    #[doc = ""]
                    #[doc = "In the event of a fallback failure the whole call fails"]
                    #[doc = "with the weights returned."]
                    #[doc = ""]
                    #[doc = "- `main`: The main call to be dispatched. This is the primary action to execute."]
                    #[doc = "- `fallback`: The fallback call to be dispatched in case the `main` call fails."]
                    #[doc = ""]
                    #[doc = "## Dispatch Logic"]
                    #[doc = "- If the origin is `root`, both the main and fallback calls are executed without"]
                    #[doc = "  applying any origin filters."]
                    #[doc = "- If the origin is not `root`, the origin filter is applied to both the `main` and"]
                    #[doc = "  `fallback` calls."]
                    #[doc = ""]
                    #[doc = "## Use Case"]
                    #[doc = "- Some use cases might involve submitting a `batch` type call in either main, fallback"]
                    #[doc = "  or both."]
                    if_else {
                        main: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                        fallback: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                    #[codec(index = 7)]
                    #[doc = "Dispatches a function call with a provided origin."]
                    #[doc = ""]
                    #[doc = "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    dispatch_as_fallible {
                        as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::OriginCaller,
                        >,
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "Too many calls batched."]
                    TooManyCalls,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "Batch of dispatches did not complete fully. Index of first failing dispatch given, as"]
                    #[doc = "well as the error."]
                    BatchInterrupted {
                        index: ::core::primitive::u32,
                        error: runtime_types::sp_runtime::DispatchError,
                    },
                    #[codec(index = 1)]
                    #[doc = "Batch of dispatches completed fully with no error."]
                    BatchCompleted,
                    #[codec(index = 2)]
                    #[doc = "Batch of dispatches completed but has errors."]
                    BatchCompletedWithErrors,
                    #[codec(index = 3)]
                    #[doc = "A single item within a Batch of dispatches has completed with no error."]
                    ItemCompleted,
                    #[codec(index = 4)]
                    #[doc = "A single item within a Batch of dispatches has completed with error."]
                    ItemFailed {
                        error: runtime_types::sp_runtime::DispatchError,
                    },
                    #[codec(index = 5)]
                    #[doc = "A call was dispatched."]
                    DispatchedAs {
                        result:
                            ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>,
                    },
                    #[codec(index = 6)]
                    #[doc = "Main call was dispatched."]
                    IfElseMainSuccess,
                    #[codec(index = 7)]
                    #[doc = "The fallback call was dispatched."]
                    IfElseFallbackCalled {
                        main_error: runtime_types::sp_runtime::DispatchError,
                    },
                }
            }
        }
        pub mod pallet_vesting {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    #[doc = "Unlock any vested funds of the sender account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"]
                    #[doc = "locked under this pallet."]
                    #[doc = ""]
                    #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    vest,
                    #[codec(index = 1)]
                    #[doc = "Unlock any vested funds of a `target` account."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"]
                    #[doc = "locked under this pallet."]
                    #[doc = ""]
                    #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    vest_other {
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                    },
                    #[codec(index = 2)]
                    #[doc = "Create a vested transfer."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `target`: The account receiving the vested funds."]
                    #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                    #[doc = ""]
                    #[doc = "Emits `VestingCreated`."]
                    #[doc = ""]
                    #[doc = "NOTE: This will unlock all schedules through the current block."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    vested_transfer {
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        schedule: runtime_types::pallet_vesting::vesting_info::VestingInfo<
                            ::core::primitive::u128,
                            ::core::primitive::u32,
                        >,
                    },
                    #[codec(index = 3)]
                    #[doc = "Force a vested transfer."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    #[doc = ""]
                    #[doc = "- `source`: The account whose funds should be transferred."]
                    #[doc = "- `target`: The account that should be transferred the vested funds."]
                    #[doc = "- `schedule`: The vesting schedule attached to the transfer."]
                    #[doc = ""]
                    #[doc = "Emits `VestingCreated`."]
                    #[doc = ""]
                    #[doc = "NOTE: This will unlock all schedules through the current block."]
                    #[doc = ""]
                    #[doc = "## Complexity"]
                    #[doc = "- `O(1)`."]
                    force_vested_transfer {
                        source: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        schedule: runtime_types::pallet_vesting::vesting_info::VestingInfo<
                            ::core::primitive::u128,
                            ::core::primitive::u32,
                        >,
                    },
                    #[codec(index = 4)]
                    #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"]
                    #[doc = "the highest possible start and end blocks. If both schedules have already started the"]
                    #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"]
                    #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"]
                    #[doc = "unmodified."]
                    #[doc = ""]
                    #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."]
                    #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."]
                    #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"]
                    #[doc = "and both will be removed."]
                    #[doc = ""]
                    #[doc = "Merged schedule attributes:"]
                    #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"]
                    #[doc = "  current_block)`."]
                    #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."]
                    #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Signed_."]
                    #[doc = ""]
                    #[doc = "- `schedule1_index`: index of the first schedule to merge."]
                    #[doc = "- `schedule2_index`: index of the second schedule to merge."]
                    merge_schedules {
                        schedule1_index: ::core::primitive::u32,
                        schedule2_index: ::core::primitive::u32,
                    },
                    #[codec(index = 5)]
                    #[doc = "Force remove a vesting schedule"]
                    #[doc = ""]
                    #[doc = "The dispatch origin for this call must be _Root_."]
                    #[doc = ""]
                    #[doc = "- `target`: An account that has a vesting schedule"]
                    #[doc = "- `schedule_index`: The vesting schedule index that should be removed"]
                    force_remove_vesting_schedule {
                        target: ::subxt::ext::subxt_core::utils::MultiAddress<
                            ::subxt::ext::subxt_core::utils::AccountId32,
                            (),
                        >,
                        schedule_index: ::core::primitive::u32,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Error for the vesting pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The account given is not vesting."]
                    NotVesting,
                    #[codec(index = 1)]
                    #[doc = "The account already has `MaxVestingSchedules` count of schedules and thus"]
                    #[doc = "cannot add another one. Consider merging existing schedules in order to add another."]
                    AtMaxVestingSchedules,
                    #[codec(index = 2)]
                    #[doc = "Amount being transferred is too low to create a vesting schedule."]
                    AmountLow,
                    #[codec(index = 3)]
                    #[doc = "An index was out of bounds of the vesting schedules."]
                    ScheduleIndexOutOfBounds,
                    #[codec(index = 4)]
                    #[doc = "Failed to create a new schedule because some parameter was invalid."]
                    InvalidScheduleParams,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "A vesting schedule has been created."]
                    VestingCreated {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                        schedule_index: ::core::primitive::u32,
                    },
                    #[codec(index = 1)]
                    #[doc = "The amount vested has been updated. This could indicate a change in funds available."]
                    #[doc = "The balance given is the amount which is left unvested (and thus locked)."]
                    VestingUpdated {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                        unvested: ::core::primitive::u128,
                    },
                    #[codec(index = 2)]
                    #[doc = "An \\[account\\] has become fully vested."]
                    VestingCompleted {
                        account: ::subxt::ext::subxt_core::utils::AccountId32,
                    },
                }
            }
            pub mod vesting_info {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct VestingInfo<_0, _1> {
                    pub locked: _0,
                    pub per_block: _0,
                    pub starting_block: _1,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Releases {
                #[codec(index = 0)]
                V0,
                #[codec(index = 1)]
                V1,
            }
        }
        pub mod pallet_whitelist {
            use super::runtime_types;
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    #[codec(index = 0)]
                    whitelist_call {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 1)]
                    remove_whitelisted_call {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 2)]
                    dispatch_whitelisted_call {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                        call_encoded_len: ::core::primitive::u32,
                        call_weight_witness: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 3)]
                    dispatch_whitelisted_call_with_preimage {
                        call: ::subxt::ext::subxt_core::alloc::boxed::Box<
                            runtime_types::rococo_runtime::RuntimeCall,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The preimage of the call hash could not be loaded."]
                    UnavailablePreImage,
                    #[codec(index = 1)]
                    #[doc = "The call could not be decoded."]
                    UndecodableCall,
                    #[codec(index = 2)]
                    #[doc = "The weight of the decoded call was higher than the witness."]
                    InvalidCallWeightWitness,
                    #[codec(index = 3)]
                    #[doc = "The call was not whitelisted."]
                    CallIsNotWhitelisted,
                    #[codec(index = 4)]
                    #[doc = "The call was already whitelisted; No-Op."]
                    CallAlreadyWhitelisted,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    CallWhitelisted {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 1)]
                    WhitelistedCallRemoved {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                    },
                    #[codec(index = 2)]
                    WhitelistedCallDispatched {
                        call_hash: ::subxt::ext::subxt_core::utils::H256,
                        result: ::core::result::Result<
                            runtime_types::frame_support::dispatch::PostDispatchInfo,
                            runtime_types::sp_runtime::DispatchErrorWithPostInfo<
                                runtime_types::frame_support::dispatch::PostDispatchInfo,
                            >,
                        >,
                    },
                }
            }
        }
        pub mod pallet_xcm {
            use super::runtime_types;
            pub mod errors {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum ExecutionError {
                    #[codec(index = 0)]
                    Overflow,
                    #[codec(index = 1)]
                    Unimplemented,
                    #[codec(index = 2)]
                    UntrustedReserveLocation,
                    #[codec(index = 3)]
                    UntrustedTeleportLocation,
                    #[codec(index = 4)]
                    LocationFull,
                    #[codec(index = 5)]
                    LocationNotInvertible,
                    #[codec(index = 6)]
                    BadOrigin,
                    #[codec(index = 7)]
                    InvalidLocation,
                    #[codec(index = 8)]
                    AssetNotFound,
                    #[codec(index = 9)]
                    FailedToTransactAsset,
                    #[codec(index = 10)]
                    NotWithdrawable,
                    #[codec(index = 11)]
                    LocationCannotHold,
                    #[codec(index = 12)]
                    ExceedsMaxMessageSize,
                    #[codec(index = 13)]
                    DestinationUnsupported,
                    #[codec(index = 14)]
                    Transport,
                    #[codec(index = 15)]
                    Unroutable,
                    #[codec(index = 16)]
                    UnknownClaim,
                    #[codec(index = 17)]
                    FailedToDecode,
                    #[codec(index = 18)]
                    MaxWeightInvalid,
                    #[codec(index = 19)]
                    NotHoldingFees,
                    #[codec(index = 20)]
                    TooExpensive,
                    #[codec(index = 21)]
                    Trap,
                    #[codec(index = 22)]
                    ExpectationFalse,
                    #[codec(index = 23)]
                    PalletNotFound,
                    #[codec(index = 24)]
                    NameMismatch,
                    #[codec(index = 25)]
                    VersionIncompatible,
                    #[codec(index = 26)]
                    HoldingWouldOverflow,
                    #[codec(index = 27)]
                    ExportError,
                    #[codec(index = 28)]
                    ReanchorFailed,
                    #[codec(index = 29)]
                    NoDeal,
                    #[codec(index = 30)]
                    FeesNotMet,
                    #[codec(index = 31)]
                    LockError,
                    #[codec(index = 32)]
                    NoPermission,
                    #[codec(index = 33)]
                    Unanchored,
                    #[codec(index = 34)]
                    NotDepositable,
                    #[codec(index = 35)]
                    TooManyAssets,
                    #[codec(index = 36)]
                    UnhandledXcmVersion,
                    #[codec(index = 37)]
                    WeightLimitReached,
                    #[codec(index = 38)]
                    Barrier,
                    #[codec(index = 39)]
                    WeightNotComputable,
                    #[codec(index = 40)]
                    ExceedsStackLimit,
                }
            }
            pub mod pallet {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                pub enum Call {
                    # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = "  relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = "  generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = "  fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = "   assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = "   deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = "   to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = "  relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = "  generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = "  fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v5 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = "  notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = "   assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = "   deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = "   reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = "   to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = "  relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = "  generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = "  fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = "  relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = "  generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = "  fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = "   forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = "   `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = "   to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = "   to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = "   from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = "   and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = "   assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = "  Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = "  from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = "  generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = "  fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = "   chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = "   assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = "   `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = "   deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = "   chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = "   XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = "   the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = "   mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = "  This is usually as simple as:"] # [doc = "  `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = "  but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = "  Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = "  relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = "  parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = "  fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = "  transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 14)] # [doc = "Authorize another `aliaser` location to alias into the local `origin` making this call."] # [doc = "The `aliaser` is only authorized until the provided `expiry` block number."] # [doc = "The call can also be used for a previously authorized alias in order to update its"] # [doc = "`expiry` block number."] # [doc = ""] # [doc = "Usually useful to allow your local account to be aliased into from a remote location"] # [doc = "also under your control (like your account on another chain)."] # [doc = ""] # [doc = "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in"] # [doc = "their/your name. Once authorized using this call, the `aliaser` can freely impersonate"] # [doc = "`origin` in XCM programs executed on the local chain."] add_authorized_alias { aliaser : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , expires : :: core :: option :: Option < :: core :: primitive :: u64 > , } , # [codec (index = 15)] # [doc = "Remove a previously authorized `aliaser` from the list of locations that can alias into"] # [doc = "the local `origin` making this call."] remove_authorized_alias { aliaser : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 16)] # [doc = "Remove all previously authorized `aliaser`s that can alias into the local `origin`"] # [doc = "making this call."] remove_all_authorized_aliases , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Error` enum of this pallet."]
                pub enum Error {
                    #[codec(index = 0)]
                    #[doc = "The desired destination was unreachable, generally because there is a no way of routing"]
                    #[doc = "to it."]
                    Unreachable,
                    #[codec(index = 1)]
                    #[doc = "There was some other issue (i.e. not to do with routing) in sending the message."]
                    #[doc = "Perhaps a lack of space for buffering the message."]
                    SendFailure,
                    #[codec(index = 2)]
                    #[doc = "The message execution fails the filter."]
                    Filtered,
                    #[codec(index = 3)]
                    #[doc = "The message's weight could not be determined."]
                    UnweighableMessage,
                    #[codec(index = 4)]
                    #[doc = "The destination `Location` provided cannot be inverted."]
                    DestinationNotInvertible,
                    #[codec(index = 5)]
                    #[doc = "The assets to be sent are empty."]
                    Empty,
                    #[codec(index = 6)]
                    #[doc = "Could not re-anchor the assets to declare the fees for the destination chain."]
                    CannotReanchor,
                    #[codec(index = 7)]
                    #[doc = "Too many assets have been attempted for transfer."]
                    TooManyAssets,
                    #[codec(index = 8)]
                    #[doc = "Origin is invalid for sending."]
                    InvalidOrigin,
                    #[codec(index = 9)]
                    #[doc = "The version of the `Versioned` value used is not able to be interpreted."]
                    BadVersion,
                    #[codec(index = 10)]
                    #[doc = "The given location could not be used (e.g. because it cannot be expressed in the"]
                    #[doc = "desired version of XCM)."]
                    BadLocation,
                    #[codec(index = 11)]
                    #[doc = "The referenced subscription could not be found."]
                    NoSubscription,
                    #[codec(index = 12)]
                    #[doc = "The location is invalid since it already has a subscription from us."]
                    AlreadySubscribed,
                    #[codec(index = 13)]
                    #[doc = "Could not check-out the assets for teleportation to the destination chain."]
                    CannotCheckOutTeleport,
                    #[codec(index = 14)]
                    #[doc = "The owner does not own (all) of the asset that they wish to do the operation on."]
                    LowBalance,
                    #[codec(index = 15)]
                    #[doc = "The asset owner has too many locks on the asset."]
                    TooManyLocks,
                    #[codec(index = 16)]
                    #[doc = "The given account is not an identifiable sovereign account for any location."]
                    AccountNotSovereign,
                    #[codec(index = 17)]
                    #[doc = "The operation required fees to be paid which the initiator could not meet."]
                    FeesNotMet,
                    #[codec(index = 18)]
                    #[doc = "A remote lock with the corresponding data could not be found."]
                    LockNotFound,
                    #[codec(index = 19)]
                    #[doc = "The unlock operation cannot succeed because there are still consumers of the lock."]
                    InUse,
                    #[codec(index = 21)]
                    #[doc = "Invalid asset, reserve chain could not be determined for it."]
                    InvalidAssetUnknownReserve,
                    #[codec(index = 22)]
                    #[doc = "Invalid asset, do not support remote asset reserves with different fees reserves."]
                    InvalidAssetUnsupportedReserve,
                    #[codec(index = 23)]
                    #[doc = "Too many assets with different reserve locations have been attempted for transfer."]
                    TooManyReserves,
                    #[codec(index = 24)]
                    #[doc = "Local XCM execution incomplete."]
                    LocalExecutionIncomplete,
                    #[codec(index = 25)]
                    #[doc = "Too many locations authorized to alias origin."]
                    TooManyAuthorizedAliases,
                    #[codec(index = 26)]
                    #[doc = "Expiry block number is in the past."]
                    ExpiresInPast,
                    #[codec(index = 27)]
                    #[doc = "The alias to remove authorization for was not found."]
                    AliasNotFound,
                    #[codec(index = 28)]
                    #[doc = "Local XCM execution incomplete with the actual XCM error and the index of the"]
                    #[doc = "instruction that caused the error."]
                    LocalExecutionIncompleteWithError {
                        index: ::core::primitive::u8,
                        error: runtime_types::pallet_xcm::errors::ExecutionError,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                #[doc = "The `Event` enum of this pallet"]
                pub enum Event {
                    #[codec(index = 0)]
                    #[doc = "Execution of an XCM message was attempted."]
                    Attempted {
                        outcome: runtime_types::staging_xcm::v5::traits::Outcome,
                    },
                    #[codec(index = 1)]
                    #[doc = "An XCM message was sent."]
                    Sent {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        message: runtime_types::staging_xcm::v5::Xcm,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 2)]
                    #[doc = "An XCM message failed to send."]
                    SendFailed {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        error: runtime_types::xcm::v3::traits::SendError,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 3)]
                    #[doc = "An XCM message failed to process."]
                    ProcessXcmError {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        error: runtime_types::xcm::v5::traits::Error,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 4)]
                    #[doc = "Query response received which does not match a registered query. This may be because a"]
                    #[doc = "matching query was never registered, it may be because it is a duplicate response, or"]
                    #[doc = "because the query timed out."]
                    UnexpectedResponse {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                    },
                    #[codec(index = 5)]
                    #[doc = "Query response has been received and is ready for taking with `take_response`. There is"]
                    #[doc = "no registered notification call."]
                    ResponseReady {
                        query_id: ::core::primitive::u64,
                        response: runtime_types::staging_xcm::v5::Response,
                    },
                    #[codec(index = 6)]
                    #[doc = "Query response has been received and query is removed. The registered notification has"]
                    #[doc = "been dispatched and executed successfully."]
                    Notified {
                        query_id: ::core::primitive::u64,
                        pallet_index: ::core::primitive::u8,
                        call_index: ::core::primitive::u8,
                    },
                    #[codec(index = 7)]
                    #[doc = "Query response has been received and query is removed. The registered notification"]
                    #[doc = "could not be dispatched because the dispatch weight is greater than the maximum weight"]
                    #[doc = "originally budgeted by this runtime for the query result."]
                    NotifyOverweight {
                        query_id: ::core::primitive::u64,
                        pallet_index: ::core::primitive::u8,
                        call_index: ::core::primitive::u8,
                        actual_weight: runtime_types::sp_weights::weight_v2::Weight,
                        max_budgeted_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 8)]
                    #[doc = "Query response has been received and query is removed. There was a general error with"]
                    #[doc = "dispatching the notification call."]
                    NotifyDispatchError {
                        query_id: ::core::primitive::u64,
                        pallet_index: ::core::primitive::u8,
                        call_index: ::core::primitive::u8,
                    },
                    #[codec(index = 9)]
                    #[doc = "Query response has been received and query is removed. The dispatch was unable to be"]
                    #[doc = "decoded into a `Call`; this might be due to dispatch function having a signature which"]
                    #[doc = "is not `(origin, QueryId, Response)`."]
                    NotifyDecodeFailed {
                        query_id: ::core::primitive::u64,
                        pallet_index: ::core::primitive::u8,
                        call_index: ::core::primitive::u8,
                    },
                    #[codec(index = 10)]
                    #[doc = "Expected query response has been received but the origin location of the response does"]
                    #[doc = "not match that expected. The query remains registered for a later, valid, response to"]
                    #[doc = "be received and acted upon."]
                    InvalidResponder {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                        expected_location: ::core::option::Option<
                            runtime_types::staging_xcm::v5::location::Location,
                        >,
                    },
                    #[codec(index = 11)]
                    #[doc = "Expected query response has been received but the expected origin location placed in"]
                    #[doc = "storage by this runtime previously cannot be decoded. The query remains registered."]
                    #[doc = ""]
                    #[doc = "This is unexpected (since a location placed in storage in a previously executing"]
                    #[doc = "runtime should be readable prior to query timeout) and dangerous since the possibly"]
                    #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"]
                    #[doc = "needed."]
                    InvalidResponderVersion {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                    },
                    #[codec(index = 12)]
                    #[doc = "Received query response has been read and removed."]
                    ResponseTaken { query_id: ::core::primitive::u64 },
                    #[codec(index = 13)]
                    #[doc = "Some assets have been placed in an asset trap."]
                    AssetsTrapped {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        assets: runtime_types::xcm::VersionedAssets,
                    },
                    #[codec(index = 14)]
                    #[doc = "An XCM version change notification message has been attempted to be sent."]
                    #[doc = ""]
                    #[doc = "The cost of sending it (borne by the chain) is included."]
                    VersionChangeNotified {
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        result: ::core::primitive::u32,
                        cost: runtime_types::staging_xcm::v5::asset::Assets,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 15)]
                    #[doc = "The supported version of a location has been changed. This might be through an"]
                    #[doc = "automatic notification or a manual intervention."]
                    SupportedVersionChanged {
                        location: runtime_types::staging_xcm::v5::location::Location,
                        version: ::core::primitive::u32,
                    },
                    #[codec(index = 16)]
                    #[doc = "A given location which had a version change subscription was dropped owing to an error"]
                    #[doc = "sending the notification to it."]
                    NotifyTargetSendFail {
                        location: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                        error: runtime_types::xcm::v5::traits::Error,
                    },
                    #[codec(index = 17)]
                    #[doc = "A given location which had a version change subscription was dropped owing to an error"]
                    #[doc = "migrating the location to our new XCM format."]
                    NotifyTargetMigrationFail {
                        location: runtime_types::xcm::VersionedLocation,
                        query_id: ::core::primitive::u64,
                    },
                    #[codec(index = 18)]
                    #[doc = "Expected query response has been received but the expected querier location placed in"]
                    #[doc = "storage by this runtime previously cannot be decoded. The query remains registered."]
                    #[doc = ""]
                    #[doc = "This is unexpected (since a location placed in storage in a previously executing"]
                    #[doc = "runtime should be readable prior to query timeout) and dangerous since the possibly"]
                    #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"]
                    #[doc = "needed."]
                    InvalidQuerierVersion {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                    },
                    #[codec(index = 19)]
                    #[doc = "Expected query response has been received but the querier location of the response does"]
                    #[doc = "not match the expected. The query remains registered for a later, valid, response to"]
                    #[doc = "be received and acted upon."]
                    InvalidQuerier {
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        query_id: ::core::primitive::u64,
                        expected_querier: runtime_types::staging_xcm::v5::location::Location,
                        maybe_actual_querier: ::core::option::Option<
                            runtime_types::staging_xcm::v5::location::Location,
                        >,
                    },
                    #[codec(index = 20)]
                    #[doc = "A remote has requested XCM version change notification from us and we have honored it."]
                    #[doc = "A version information message is sent to them and its cost is included."]
                    VersionNotifyStarted {
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        cost: runtime_types::staging_xcm::v5::asset::Assets,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 21)]
                    #[doc = "We have requested that a remote chain send us XCM version change notifications."]
                    VersionNotifyRequested {
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        cost: runtime_types::staging_xcm::v5::asset::Assets,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 22)]
                    #[doc = "We have requested that a remote chain stops sending us XCM version change"]
                    #[doc = "notifications."]
                    VersionNotifyUnrequested {
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        cost: runtime_types::staging_xcm::v5::asset::Assets,
                        message_id: [::core::primitive::u8; 32usize],
                    },
                    #[codec(index = 23)]
                    #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."]
                    FeesPaid {
                        paying: runtime_types::staging_xcm::v5::location::Location,
                        fees: runtime_types::staging_xcm::v5::asset::Assets,
                    },
                    #[codec(index = 24)]
                    #[doc = "Some assets have been claimed from an asset trap"]
                    AssetsClaimed {
                        hash: ::subxt::ext::subxt_core::utils::H256,
                        origin: runtime_types::staging_xcm::v5::location::Location,
                        assets: runtime_types::xcm::VersionedAssets,
                    },
                    #[codec(index = 25)]
                    #[doc = "A XCM version migration finished."]
                    VersionMigrationFinished { version: ::core::primitive::u32 },
                    #[codec(index = 26)]
                    #[doc = "An `aliaser` location was authorized by `target` to alias it, authorization valid until"]
                    #[doc = "`expiry` block number."]
                    AliasAuthorized {
                        aliaser: runtime_types::staging_xcm::v5::location::Location,
                        target: runtime_types::staging_xcm::v5::location::Location,
                        expiry: ::core::option::Option<::core::primitive::u64>,
                    },
                    #[codec(index = 27)]
                    #[doc = "`target` removed alias authorization for `aliaser`."]
                    AliasAuthorizationRemoved {
                        aliaser: runtime_types::staging_xcm::v5::location::Location,
                        target: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 28)]
                    #[doc = "`target` removed all alias authorizations."]
                    AliasesAuthorizationsRemoved {
                        target: runtime_types::staging_xcm::v5::location::Location,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum HoldReason {
                    #[codec(index = 0)]
                    AuthorizeAlias,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct MaxAuthorizedAliases;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Origin {
                    #[codec(index = 0)]
                    Xcm(runtime_types::staging_xcm::v5::location::Location),
                    #[codec(index = 1)]
                    Response(runtime_types::staging_xcm::v5::location::Location),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum QueryStatus<_0> {
                    #[codec(index = 0)]
                    Pending {
                        responder: runtime_types::xcm::VersionedLocation,
                        maybe_match_querier:
                            ::core::option::Option<runtime_types::xcm::VersionedLocation>,
                        maybe_notify:
                            ::core::option::Option<(::core::primitive::u8, ::core::primitive::u8)>,
                        timeout: _0,
                    },
                    #[codec(index = 1)]
                    VersionNotifier {
                        origin: runtime_types::xcm::VersionedLocation,
                        is_active: ::core::primitive::bool,
                    },
                    #[codec(index = 2)]
                    Ready {
                        response: runtime_types::xcm::VersionedResponse,
                        at: _0,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct RemoteLockedFungibleRecord<_0> {
                    pub amount: ::core::primitive::u128,
                    pub owner: runtime_types::xcm::VersionedLocation,
                    pub locker: runtime_types::xcm::VersionedLocation,
                    pub consumers: runtime_types::bounded_collections::bounded_vec::BoundedVec<(
                        _0,
                        ::core::primitive::u128,
                    )>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum VersionMigrationStage {
                    #[codec(index = 0)]
                    MigrateSupportedVersion,
                    #[codec(index = 1)]
                    MigrateVersionNotifiers,
                    #[codec(index = 2)]
                    NotifyCurrentTargets(
                        ::core::option::Option<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                    ),
                    #[codec(index = 3)]
                    MigrateAndNotifyOldTargets,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AuthorizedAliasesEntry<_0, _1> {
                pub aliasers: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                    runtime_types::xcm_runtime_apis::authorized_aliases::OriginAliaser,
                >,
                pub ticket: _0,
                #[codec(skip)]
                pub __ignore: ::core::marker::PhantomData<_1>,
            }
        }
        pub mod polkadot_core_primitives {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct CandidateHash(pub ::subxt::ext::subxt_core::utils::H256);
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct InboundDownwardMessage<_0> {
                pub sent_at: _0,
                pub msg: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct InboundHrmpMessage<_0> {
                pub sent_at: _0,
                pub data: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct OutboundHrmpMessage<_0> {
                pub recipient: _0,
                pub data: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            }
        }
        pub mod polkadot_parachain_primitives {
            use super::runtime_types;
            pub mod primitives {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct HeadData(
                    pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                );
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct HrmpChannelId {
                    pub sender: runtime_types::polkadot_parachain_primitives::primitives::Id,
                    pub recipient: runtime_types::polkadot_parachain_primitives::primitives::Id,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Id(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCode(
                    pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                );
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidationCodeHash(pub ::subxt::ext::subxt_core::utils::H256);
            }
        }
        pub mod polkadot_primitives {
            use super::runtime_types;
            pub mod v8 {
                use super::runtime_types;
                pub mod assignment_app {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Public(pub [::core::primitive::u8; 32usize]);
                }
                pub mod async_backing {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct AsyncBackingParams {
                        pub max_candidate_depth: ::core::primitive::u32,
                        pub allowed_ancestry_len: ::core::primitive::u32,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v8 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v8 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v8 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct InboundHrmpLimitations<_0> {
                        pub valid_watermarks: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct OutboundHrmpChannelLimitations {
                        pub bytes_remaining: ::core::primitive::u32,
                        pub messages_remaining: ::core::primitive::u32,
                    }
                }
                pub mod collator_app {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Public(pub [::core::primitive::u8; 32usize]);
                }
                pub mod executor_params {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ExecutorParam {
                        #[codec(index = 1)]
                        MaxMemoryPages(::core::primitive::u32),
                        #[codec(index = 2)]
                        StackLogicalMax(::core::primitive::u32),
                        #[codec(index = 3)]
                        StackNativeMax(::core::primitive::u32),
                        #[codec(index = 4)]
                        PrecheckingMaxMemory(::core::primitive::u64),
                        #[codec(index = 5)]
                        PvfPrepTimeout(
                            runtime_types::polkadot_primitives::v8::PvfPrepKind,
                            ::core::primitive::u64,
                        ),
                        #[codec(index = 6)]
                        PvfExecTimeout(
                            runtime_types::polkadot_primitives::v8::PvfExecKind,
                            ::core::primitive::u64,
                        ),
                        #[codec(index = 7)]
                        WasmExtBulkMemory,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct ExecutorParams(
                        pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::v8::executor_params::ExecutorParam,
                        >,
                    );
                }
                pub mod signed {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct UncheckedSigned<_0, _1> {
                        pub payload: _0,
                        pub validator_index: runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        pub signature:
                            runtime_types::polkadot_primitives::v8::validator_app::Signature,
                        #[codec(skip)]
                        pub __ignore: ::core::marker::PhantomData<_1>,
                    }
                }
                pub mod slashing {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct DisputeProof {
                        pub time_slot:
                            runtime_types::polkadot_primitives::v8::slashing::DisputesTimeSlot,
                        pub kind:
                            runtime_types::polkadot_primitives::v8::slashing::SlashingOffenceKind,
                        pub validator_index: runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        pub validator_id:
                            runtime_types::polkadot_primitives::v8::validator_app::Public,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct DisputesTimeSlot {
                        pub session_index: ::core::primitive::u32,
                        pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct OpaqueKeyOwnershipProof(
                        pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    );
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct PendingSlashes {
                        pub keys: ::subxt::ext::subxt_core::utils::KeyedVec<
                            runtime_types::polkadot_primitives::v8::ValidatorIndex,
                            runtime_types::polkadot_primitives::v8::validator_app::Public,
                        >,
                        pub kind:
                            runtime_types::polkadot_primitives::v8::slashing::SlashingOffenceKind,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum SlashingOffenceKind {
                        #[codec(index = 0)]
                        ForInvalid,
                        #[codec(index = 1)]
                        AgainstValid,
                    }
                }
                pub mod validator_app {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Public(pub [::core::primitive::u8; 32usize]);
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Signature(pub [::core::primitive::u8; 64usize]);
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ApprovalVotingParams {
                    pub max_approval_coalesce_count: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AvailabilityBitfield(
                    pub  ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                );
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidateCommitments<_0> {
                    pub upward_messages:
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        >,
                    pub horizontal_messages:
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::polkadot_core_primitives::OutboundHrmpMessage<
                                runtime_types::polkadot_parachain_primitives::primitives::Id,
                            >,
                        >,
                    pub new_validation_code: ::core::option::Option<
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode,
                    >,
                    pub head_data:
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                    pub processed_downward_messages: ::core::primitive::u32,
                    pub hrmp_watermark: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CoreIndex(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DisputeState<_0> {
                    pub validators_for: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub validators_against: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub start: _0,
                    pub concluded_at: ::core::option::Option<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum DisputeStatement {
                    #[codec(index = 0)]
                    Valid(runtime_types::polkadot_primitives::v8::ValidDisputeStatementKind),
                    #[codec(index = 1)]
                    Invalid(runtime_types::polkadot_primitives::v8::InvalidDisputeStatementKind),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DisputeStatementSet {
                    pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash,
                    pub session: ::core::primitive::u32,
                    pub statements: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::polkadot_primitives::v8::DisputeStatement,
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        runtime_types::polkadot_primitives::v8::validator_app::Signature,
                    )>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GroupIndex(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct GroupRotationInfo<_0> {
                    pub session_start_block: _0,
                    pub group_rotation_frequency: _0,
                    pub now: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct IndexedVec<_0, _1>(
                    pub ::subxt::ext::subxt_core::alloc::vec::Vec<_1>,
                    #[codec(skip)] pub ::core::marker::PhantomData<_0>,
                );
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum InvalidDisputeStatementKind {
                    #[codec(index = 0)]
                    Explicit,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum OccupiedCoreAssumption {
                    #[codec(index = 0)]
                    Included,
                    #[codec(index = 1)]
                    TimedOut,
                    #[codec(index = 2)]
                    Free,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PersistedValidationData<_0, _1> {
                    pub parent_head:
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                    pub relay_parent_number: _1,
                    pub relay_parent_storage_root: _0,
                    pub max_pov_size: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PvfCheckStatement { pub accept : :: core :: primitive :: bool , pub subject : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub session_index : :: core :: primitive :: u32 , pub validator_index : runtime_types :: polkadot_primitives :: v8 :: ValidatorIndex , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum PvfExecKind {
                    #[codec(index = 0)]
                    Backing,
                    #[codec(index = 1)]
                    Approval,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum PvfPrepKind {
                    #[codec(index = 0)]
                    Precheck,
                    #[codec(index = 1)]
                    Prepare,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ScheduledCore {
                    pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                    pub collator: ::core::option::Option<
                        runtime_types::polkadot_primitives::v8::collator_app::Public,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SchedulerParams<_0> {
                    pub group_rotation_frequency: _0,
                    pub paras_availability_period: _0,
                    pub max_validators_per_core: ::core::option::Option<_0>,
                    pub lookahead: ::core::primitive::u32,
                    pub num_cores: ::core::primitive::u32,
                    pub max_availability_timeouts: ::core::primitive::u32,
                    pub on_demand_queue_max_size: ::core::primitive::u32,
                    pub on_demand_target_queue_utilization:
                        runtime_types::sp_arithmetic::per_things::Perbill,
                    pub on_demand_fee_variability:
                        runtime_types::sp_arithmetic::per_things::Perbill,
                    pub on_demand_base_fee: ::core::primitive::u128,
                    pub ttl: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SessionInfo {
                    pub active_validator_indices: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                    >,
                    pub random_seed: [::core::primitive::u8; 32usize],
                    pub dispute_period: ::core::primitive::u32,
                    pub validators: runtime_types::polkadot_primitives::v8::IndexedVec<
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        runtime_types::polkadot_primitives::v8::validator_app::Public,
                    >,
                    pub discovery_keys: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::sp_authority_discovery::app::Public,
                    >,
                    pub assignment_keys: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::assignment_app::Public,
                    >,
                    pub validator_groups: runtime_types::polkadot_primitives::v8::IndexedVec<
                        runtime_types::polkadot_primitives::v8::GroupIndex,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        >,
                    >,
                    pub n_cores: ::core::primitive::u32,
                    pub zeroth_delay_tranche_width: ::core::primitive::u32,
                    pub relay_vrf_modulo_samples: ::core::primitive::u32,
                    pub n_delay_tranches: ::core::primitive::u32,
                    pub no_show_slots: ::core::primitive::u32,
                    pub needed_approvals: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum UpgradeGoAhead {
                    #[codec(index = 0)]
                    Abort,
                    #[codec(index = 1)]
                    GoAhead,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum UpgradeRestriction {
                    #[codec(index = 0)]
                    Present,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum ValidDisputeStatementKind {
                    #[codec(index = 0)]
                    Explicit,
                    #[codec(index = 1)]
                    BackingSeconded(::subxt::ext::subxt_core::utils::H256),
                    #[codec(index = 2)]
                    BackingValid(::subxt::ext::subxt_core::utils::H256),
                    #[codec(index = 3)]
                    ApprovalChecking,
                    #[codec(index = 4)]
                    ApprovalCheckingMultipleCandidates(
                        ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::polkadot_core_primitives::CandidateHash,
                        >,
                    ),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidatorIndex(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum ValidityAttestation {
                    #[codec(index = 1)]
                    Implicit(runtime_types::polkadot_primitives::v8::validator_app::Signature),
                    #[codec(index = 2)]
                    Explicit(runtime_types::polkadot_primitives::v8::validator_app::Signature),
                }
            }
            pub mod vstaging {
                use super::runtime_types;
                pub mod async_backing {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct BackingState < _0 , _1 > { pub constraints : runtime_types :: polkadot_primitives :: v8 :: async_backing :: Constraints < _1 > , pub pending_availability : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: vstaging :: async_backing :: CandidatePendingAvailability < _0 , _1 > > , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CandidatePendingAvailability<_0, _1> {
                        pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash,
                        pub descriptor:
                            runtime_types::polkadot_primitives::vstaging::CandidateDescriptorV2<_0>,
                        pub commitments:
                            runtime_types::polkadot_primitives::v8::CandidateCommitments<_1>,
                        pub relay_parent_number: _1,
                        pub max_pov_size: ::core::primitive::u32,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub max_head_data_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v8 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v8 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v8 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BackedCandidate<_0> {
                    pub candidate:
                        runtime_types::polkadot_primitives::vstaging::CommittedCandidateReceiptV2<
                            _0,
                        >,
                    pub validity_votes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::ValidityAttestation,
                    >,
                    pub validator_indices: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidateDescriptorV2 < _0 > { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub relay_parent : _0 , pub version : runtime_types :: polkadot_primitives :: vstaging :: InternalVersion , pub core_index : :: core :: primitive :: u16 , pub session_index : :: core :: primitive :: u32 , pub reserved1 : [:: core :: primitive :: u8 ; 25usize] , pub persisted_validation_data_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub pov_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub erasure_root : :: subxt :: ext :: subxt_core :: utils :: H256 , pub reserved2 : [:: core :: primitive :: u8 ; 64usize] , pub para_head : :: subxt :: ext :: subxt_core :: utils :: H256 , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum CandidateEvent<_0> {
                    #[codec(index = 0)]
                    CandidateBacked(
                        runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<_0>,
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                        runtime_types::polkadot_primitives::v8::CoreIndex,
                        runtime_types::polkadot_primitives::v8::GroupIndex,
                    ),
                    #[codec(index = 1)]
                    CandidateIncluded(
                        runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<_0>,
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                        runtime_types::polkadot_primitives::v8::CoreIndex,
                        runtime_types::polkadot_primitives::v8::GroupIndex,
                    ),
                    #[codec(index = 2)]
                    CandidateTimedOut(
                        runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<_0>,
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                        runtime_types::polkadot_primitives::v8::CoreIndex,
                    ),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidateReceiptV2<_0> {
                    pub descriptor:
                        runtime_types::polkadot_primitives::vstaging::CandidateDescriptorV2<_0>,
                    pub commitments_hash: ::subxt::ext::subxt_core::utils::H256,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CommittedCandidateReceiptV2<_0> {
                    pub descriptor:
                        runtime_types::polkadot_primitives::vstaging::CandidateDescriptorV2<_0>,
                    pub commitments: runtime_types::polkadot_primitives::v8::CandidateCommitments<
                        ::core::primitive::u32,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum CoreState<_0, _1> {
                    #[codec(index = 0)]
                    Occupied(runtime_types::polkadot_primitives::vstaging::OccupiedCore<_0, _1>),
                    #[codec(index = 1)]
                    Scheduled(runtime_types::polkadot_primitives::v8::ScheduledCore),
                    #[codec(index = 2)]
                    Free,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum DisputeOffenceKind {
                    #[codec(index = 0)]
                    ForInvalidBacked,
                    #[codec(index = 1)]
                    AgainstValid,
                    #[codec(index = 2)]
                    ForInvalidApproved,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DisputeProof {
                    pub time_slot:
                        runtime_types::polkadot_primitives::v8::slashing::DisputesTimeSlot,
                    pub kind: runtime_types::polkadot_primitives::vstaging::DisputeOffenceKind,
                    pub validator_index: runtime_types::polkadot_primitives::v8::ValidatorIndex,
                    pub validator_id: runtime_types::polkadot_primitives::v8::validator_app::Public,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InherentData<_0> {
                    pub bitfields: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::signed::UncheckedSigned<
                            runtime_types::polkadot_primitives::v8::AvailabilityBitfield,
                            runtime_types::polkadot_primitives::v8::AvailabilityBitfield,
                        >,
                    >,
                    pub backed_candidates: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::vstaging::BackedCandidate<
                            ::subxt::ext::subxt_core::utils::H256,
                        >,
                    >,
                    pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::DisputeStatementSet,
                    >,
                    pub parent_header: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct InternalVersion(pub ::core::primitive::u8);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OccupiedCore<_0, _1> {
                    pub next_up_on_available: ::core::option::Option<
                        runtime_types::polkadot_primitives::v8::ScheduledCore,
                    >,
                    pub occupied_since: _1,
                    pub time_out_at: _1,
                    pub next_up_on_time_out: ::core::option::Option<
                        runtime_types::polkadot_primitives::v8::ScheduledCore,
                    >,
                    pub availability: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub group_responsible: runtime_types::polkadot_primitives::v8::GroupIndex,
                    pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash,
                    pub candidate_descriptor:
                        runtime_types::polkadot_primitives::vstaging::CandidateDescriptorV2<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PendingSlashes {
                    pub keys: ::subxt::ext::subxt_core::utils::KeyedVec<
                        runtime_types::polkadot_primitives::v8::ValidatorIndex,
                        runtime_types::polkadot_primitives::v8::validator_app::Public,
                    >,
                    pub kind: runtime_types::polkadot_primitives::vstaging::DisputeOffenceKind,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ScrapedOnChainVotes<_0> {
                    pub session: ::core::primitive::u32,
                    pub backing_validators_per_candidate:
                        ::subxt::ext::subxt_core::alloc::vec::Vec<(
                            runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<_0>,
                            ::subxt::ext::subxt_core::alloc::vec::Vec<(
                                runtime_types::polkadot_primitives::v8::ValidatorIndex,
                                runtime_types::polkadot_primitives::v8::ValidityAttestation,
                            )>,
                        )>,
                    pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::DisputeStatementSet,
                    >,
                }
            }
        }
        pub mod polkadot_runtime_common {
            use super::runtime_types;
            pub mod assigned_slots {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 0)] # [doc = "Assign a permanent parachain slot and immediately create a lease for it."] assign_perm_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 1)] # [doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] # [doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] # [doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] assign_temp_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , lease_period_start : runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart , } , # [codec (index = 2)] # [doc = "Unassign a permanent or temporary parachain slot"] unassign_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Sets the storage value [`MaxPermanentSlots`]."] set_max_permanent_slots { slots : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Sets the storage value [`MaxTemporarySlots`]."] set_max_temporary_slots { slots : :: core :: primitive :: u32 , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The specified parachain is not registered."]
                        ParaDoesntExist,
                        #[codec(index = 1)]
                        #[doc = "Not a parathread (on-demand parachain)."]
                        NotParathread,
                        #[codec(index = 2)]
                        #[doc = "Cannot upgrade on-demand parachain to lease holding"]
                        #[doc = "parachain."]
                        CannotUpgrade,
                        #[codec(index = 3)]
                        #[doc = "Cannot downgrade lease holding parachain to"]
                        #[doc = "on-demand."]
                        CannotDowngrade,
                        #[codec(index = 4)]
                        #[doc = "Permanent or Temporary slot already assigned."]
                        SlotAlreadyAssigned,
                        #[codec(index = 5)]
                        #[doc = "Permanent or Temporary slot has not been assigned."]
                        SlotNotAssigned,
                        #[codec(index = 6)]
                        #[doc = "An ongoing lease already exists."]
                        OngoingLeaseExists,
                        #[codec(index = 7)]
                        MaxPermanentSlotsExceeded,
                        #[codec(index = 8)]
                        MaxTemporarySlotsExceeded,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "A parachain was assigned a permanent parachain slot"]
                        PermanentSlotAssigned(
                            runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ),
                        #[codec(index = 1)]
                        #[doc = "A parachain was assigned a temporary parachain slot"]
                        TemporarySlotAssigned(
                            runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ),
                        #[codec(index = 2)]
                        #[doc = "The maximum number of permanent slots has been changed"]
                        MaxPermanentSlotsChanged { slots: ::core::primitive::u32 },
                        #[codec(index = 3)]
                        #[doc = "The maximum number of temporary slots has been changed"]
                        MaxTemporarySlotsChanged { slots: ::core::primitive::u32 },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ParachainTemporarySlot<_0, _1> {
                    pub manager: _0,
                    pub period_begin: _1,
                    pub period_count: _1,
                    pub last_lease: ::core::option::Option<_1>,
                    pub lease_count: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum SlotLeasePeriodStart {
                    #[codec(index = 0)]
                    Current,
                    #[codec(index = 1)]
                    Next,
                }
            }
            pub mod auctions {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Create a new auction."]
                        #[doc = ""]
                        #[doc = "This can only happen when there isn't already an auction in progress and may only be"]
                        #[doc = "called by the root origin. Accepts the `duration` of this auction and the"]
                        #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."]
                        new_auction {
                            #[codec(compact)]
                            duration: ::core::primitive::u32,
                            #[codec(compact)]
                            lease_period_index: ::core::primitive::u32,
                        },
                        #[codec(index = 1)]
                        #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"]
                        #[doc = "parachain."]
                        #[doc = ""]
                        #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"]
                        #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."]
                        #[doc = ""]
                        #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"]
                        #[doc = "funded by) the same account."]
                        #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"]
                        #[doc = "value of `AuctionCounter`."]
                        #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"]
                        #[doc = "absolute lease period index value, not an auction-specific offset."]
                        #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"]
                        #[doc = "absolute lease period index value, not an auction-specific offset."]
                        #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"]
                        #[doc = "bid win. This amount is held throughout the range."]
                        bid {
                            #[codec(compact)]
                            para: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            #[codec(compact)]
                            auction_index: ::core::primitive::u32,
                            #[codec(compact)]
                            first_slot: ::core::primitive::u32,
                            #[codec(compact)]
                            last_slot: ::core::primitive::u32,
                            #[codec(compact)]
                            amount: ::core::primitive::u128,
                        },
                        #[codec(index = 2)]
                        #[doc = "Cancel an in-progress auction."]
                        #[doc = ""]
                        #[doc = "Can only be called by Root origin."]
                        cancel_auction,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "This auction is already in progress."]
                        AuctionInProgress,
                        #[codec(index = 1)]
                        #[doc = "The lease period is in the past."]
                        LeasePeriodInPast,
                        #[codec(index = 2)]
                        #[doc = "Para is not registered"]
                        ParaNotRegistered,
                        #[codec(index = 3)]
                        #[doc = "Not a current auction."]
                        NotCurrentAuction,
                        #[codec(index = 4)]
                        #[doc = "Not an auction."]
                        NotAuction,
                        #[codec(index = 5)]
                        #[doc = "Auction has already ended."]
                        AuctionEnded,
                        #[codec(index = 6)]
                        #[doc = "The para is already leased out for part of this range."]
                        AlreadyLeasedOut,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "An auction started. Provides its index and the block number where it will begin to"]
                        #[doc = "close and the first lease period of the quadruplet that is auctioned."]
                        AuctionStarted {
                            auction_index: ::core::primitive::u32,
                            lease_period: ::core::primitive::u32,
                            ending: ::core::primitive::u32,
                        },
                        #[codec(index = 1)]
                        #[doc = "An auction ended. All funds become unreserved."]
                        AuctionClosed {
                            auction_index: ::core::primitive::u32,
                        },
                        #[codec(index = 2)]
                        #[doc = "Funds were reserved for a winning bid. First balance is the extra amount reserved."]
                        #[doc = "Second is the total."]
                        Reserved {
                            bidder: ::subxt::ext::subxt_core::utils::AccountId32,
                            extra_reserved: ::core::primitive::u128,
                            total_amount: ::core::primitive::u128,
                        },
                        #[codec(index = 3)]
                        #[doc = "Funds were unreserved since bidder is no longer active. `[bidder, amount]`"]
                        Unreserved {
                            bidder: ::subxt::ext::subxt_core::utils::AccountId32,
                            amount: ::core::primitive::u128,
                        },
                        #[codec(index = 4)]
                        #[doc = "Someone attempted to lease the same slot twice for a parachain. The amount is held in"]
                        #[doc = "reserve but no parachain slot has been leased."]
                        ReserveConfiscated {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            leaser: ::subxt::ext::subxt_core::utils::AccountId32,
                            amount: ::core::primitive::u128,
                        },
                        #[codec(index = 5)]
                        #[doc = "A new bid has been accepted as the current winner."]
                        BidAccepted {
                            bidder: ::subxt::ext::subxt_core::utils::AccountId32,
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            amount: ::core::primitive::u128,
                            first_slot: ::core::primitive::u32,
                            last_slot: ::core::primitive::u32,
                        },
                        #[codec(index = 6)]
                        #[doc = "The winning offset was chosen for an auction. This will map into the `Winning` storage"]
                        #[doc = "map."]
                        WinningOffset {
                            auction_index: ::core::primitive::u32,
                            block_number: ::core::primitive::u32,
                        },
                    }
                }
            }
            pub mod claims {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Make a claim to collect your DOTs."]
                        #[doc = ""]
                        #[doc = "The dispatch origin for this call must be _None_."]
                        #[doc = ""]
                        #[doc = "Unsigned Validation:"]
                        #[doc = "A call to claim is deemed valid if the signature provided matches"]
                        #[doc = "the expected signed message of:"]
                        #[doc = ""]
                        #[doc = "> Ethereum Signed Message:"]
                        #[doc = "> (configured prefix string)(address)"]
                        #[doc = ""]
                        #[doc = "and `address` matches the `dest` account."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `dest`: The destination account to payout the claim."]
                        #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                        #[doc = "  described above."]
                        #[doc = ""]
                        #[doc = "<weight>"]
                        #[doc = "The weight of this call is invariant over the input parameters."]
                        #[doc = "Weight includes logic to validate unsigned `claim` call."]
                        #[doc = ""]
                        #[doc = "Total Complexity: O(1)"]
                        #[doc = "</weight>"]
                        claim {
                            dest: ::subxt::ext::subxt_core::utils::AccountId32,
                            ethereum_signature:
                                runtime_types::polkadot_runtime_common::claims::EcdsaSignature,
                        },
                        #[codec(index = 1)]
                        #[doc = "Mint a new claim to collect DOTs."]
                        #[doc = ""]
                        #[doc = "The dispatch origin for this call must be _Root_."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `who`: The Ethereum address allowed to collect this claim."]
                        #[doc = "- `value`: The number of DOTs that will be claimed."]
                        #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."]
                        #[doc = ""]
                        #[doc = "<weight>"]
                        #[doc = "The weight of this call is invariant over the input parameters."]
                        #[doc = "We assume worst case that both vesting and statement is being inserted."]
                        #[doc = ""]
                        #[doc = "Total Complexity: O(1)"]
                        #[doc = "</weight>"]
                        mint_claim {
                            who: runtime_types::polkadot_runtime_common::claims::EthereumAddress,
                            value: ::core::primitive::u128,
                            vesting_schedule: ::core::option::Option<(
                                ::core::primitive::u128,
                                ::core::primitive::u128,
                                ::core::primitive::u32,
                            )>,
                            statement: ::core::option::Option<
                                runtime_types::polkadot_runtime_common::claims::StatementKind,
                            >,
                        },
                        #[codec(index = 2)]
                        #[doc = "Make a claim to collect your DOTs by signing a statement."]
                        #[doc = ""]
                        #[doc = "The dispatch origin for this call must be _None_."]
                        #[doc = ""]
                        #[doc = "Unsigned Validation:"]
                        #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"]
                        #[doc = "the expected signed message of:"]
                        #[doc = ""]
                        #[doc = "> Ethereum Signed Message:"]
                        #[doc = "> (configured prefix string)(address)(statement)"]
                        #[doc = ""]
                        #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"]
                        #[doc = "expected according to your purchase arrangement."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `dest`: The destination account to payout the claim."]
                        #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"]
                        #[doc = "  described above."]
                        #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                        #[doc = "  signature."]
                        #[doc = ""]
                        #[doc = "<weight>"]
                        #[doc = "The weight of this call is invariant over the input parameters."]
                        #[doc = "Weight includes logic to validate unsigned `claim_attest` call."]
                        #[doc = ""]
                        #[doc = "Total Complexity: O(1)"]
                        #[doc = "</weight>"]
                        claim_attest {
                            dest: ::subxt::ext::subxt_core::utils::AccountId32,
                            ethereum_signature:
                                runtime_types::polkadot_runtime_common::claims::EcdsaSignature,
                            statement:
                                ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        },
                        #[codec(index = 3)]
                        #[doc = "Attest to a statement, needed to finalize the claims process."]
                        #[doc = ""]
                        #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"]
                        #[doc = "`TransactionExtension`."]
                        #[doc = ""]
                        #[doc = "Unsigned Validation:"]
                        #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"]
                        #[doc = "and provides a `statement` which is expected for the account."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `statement`: The identity of the statement which is being attested to in the"]
                        #[doc = "  signature."]
                        #[doc = ""]
                        #[doc = "<weight>"]
                        #[doc = "The weight of this call is invariant over the input parameters."]
                        #[doc = "Weight includes logic to do pre-validation on `attest` call."]
                        #[doc = ""]
                        #[doc = "Total Complexity: O(1)"]
                        #[doc = "</weight>"]
                        attest {
                            statement:
                                ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        },
                        #[codec(index = 4)]
                        move_claim {
                            old: runtime_types::polkadot_runtime_common::claims::EthereumAddress,
                            new: runtime_types::polkadot_runtime_common::claims::EthereumAddress,
                            maybe_preclaim: ::core::option::Option<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "Invalid Ethereum signature."]
                        InvalidEthereumSignature,
                        #[codec(index = 1)]
                        #[doc = "Ethereum address has no claim."]
                        SignerHasNoClaim,
                        #[codec(index = 2)]
                        #[doc = "Account ID sending transaction has no claim."]
                        SenderHasNoClaim,
                        #[codec(index = 3)]
                        #[doc = "There's not enough in the pot to pay out some unvested amount. Generally implies a"]
                        #[doc = "logic error."]
                        PotUnderflow,
                        #[codec(index = 4)]
                        #[doc = "A needed statement was not included."]
                        InvalidStatement,
                        #[codec(index = 5)]
                        #[doc = "The account already has a vested balance."]
                        VestedBalanceExists,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "Someone claimed some DOTs."]
                        Claimed {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            ethereum_address:
                                runtime_types::polkadot_runtime_common::claims::EthereumAddress,
                            amount: ::core::primitive::u128,
                        },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct EcdsaSignature(pub [::core::primitive::u8; 65usize]);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct EthereumAddress(pub [::core::primitive::u8; 20usize]);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum StatementKind {
                    #[codec(index = 0)]
                    Regular,
                    #[codec(index = 1)]
                    Saft,
                }
            }
            pub mod crowdloan {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"]
                        #[doc = "range."]
                        #[doc = ""]
                        #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"]
                        #[doc = "by the parachain manager."]
                        create {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            #[codec(compact)]
                            cap: ::core::primitive::u128,
                            #[codec(compact)]
                            first_period: ::core::primitive::u32,
                            #[codec(compact)]
                            last_period: ::core::primitive::u32,
                            #[codec(compact)]
                            end: ::core::primitive::u32,
                            verifier:
                                ::core::option::Option<runtime_types::sp_runtime::MultiSigner>,
                        },
                        #[codec(index = 1)]
                        #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"]
                        #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."]
                        contribute {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            #[codec(compact)]
                            value: ::core::primitive::u128,
                            signature:
                                ::core::option::Option<runtime_types::sp_runtime::MultiSignature>,
                        },
                        #[codec(index = 2)]
                        #[doc = "Withdraw full balance of a specific contributor."]
                        #[doc = ""]
                        #[doc = "Origin must be signed, but can come from anyone."]
                        #[doc = ""]
                        #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"]
                        #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"]
                        #[doc = "- it must not already be in retirement;"]
                        #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"]
                        #[doc = "- and either:"]
                        #[doc = "  - the block number must be at least `end`; or"]
                        #[doc = "  - the current lease period must be greater than the fund's `last_period`."]
                        #[doc = ""]
                        #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"]
                        #[doc = "block number."]
                        #[doc = ""]
                        #[doc = "- `who`: The account whose contribution should be withdrawn."]
                        #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."]
                        withdraw {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 3)]
                        #[doc = "Automatically refund contributors of an ended crowdloan."]
                        #[doc = "Due to weight restrictions, this function may need to be called multiple"]
                        #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."]
                        #[doc = ""]
                        #[doc = "Origin must be signed, but can come from anyone."]
                        refund {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 4)]
                        #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."]
                        dissolve {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 5)]
                        #[doc = "Edit the configuration for an in-progress crowdloan."]
                        #[doc = ""]
                        #[doc = "Can only be called by Root origin."]
                        edit {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            #[codec(compact)]
                            cap: ::core::primitive::u128,
                            #[codec(compact)]
                            first_period: ::core::primitive::u32,
                            #[codec(compact)]
                            last_period: ::core::primitive::u32,
                            #[codec(compact)]
                            end: ::core::primitive::u32,
                            verifier:
                                ::core::option::Option<runtime_types::sp_runtime::MultiSigner>,
                        },
                        #[codec(index = 6)]
                        #[doc = "Add an optional memo to an existing crowdloan contribution."]
                        #[doc = ""]
                        #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."]
                        add_memo {
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            memo: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        },
                        #[codec(index = 7)]
                        #[doc = "Poke the fund into `NewRaise`"]
                        #[doc = ""]
                        #[doc = "Origin must be Signed, and the fund has non-zero raise."]
                        poke {
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 8)]
                        #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"]
                        #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"]
                        #[doc = "ended and the funds are unused."]
                        contribute_all {
                            #[codec(compact)]
                            index: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            signature:
                                ::core::option::Option<runtime_types::sp_runtime::MultiSignature>,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The current lease period is more than the first lease period."]
                        FirstPeriodInPast,
                        #[codec(index = 1)]
                        #[doc = "The first lease period needs to at least be less than 3 `max_value`."]
                        FirstPeriodTooFarInFuture,
                        #[codec(index = 2)]
                        #[doc = "Last lease period must be greater than first lease period."]
                        LastPeriodBeforeFirstPeriod,
                        #[codec(index = 3)]
                        #[doc = "The last lease period cannot be more than 3 periods after the first period."]
                        LastPeriodTooFarInFuture,
                        #[codec(index = 4)]
                        #[doc = "The campaign ends before the current block number. The end must be in the future."]
                        CannotEndInPast,
                        #[codec(index = 5)]
                        #[doc = "The end date for this crowdloan is not sensible."]
                        EndTooFarInFuture,
                        #[codec(index = 6)]
                        #[doc = "There was an overflow."]
                        Overflow,
                        #[codec(index = 7)]
                        #[doc = "The contribution was below the minimum, `MinContribution`."]
                        ContributionTooSmall,
                        #[codec(index = 8)]
                        #[doc = "Invalid fund index."]
                        InvalidParaId,
                        #[codec(index = 9)]
                        #[doc = "Contributions exceed maximum amount."]
                        CapExceeded,
                        #[codec(index = 10)]
                        #[doc = "The contribution period has already ended."]
                        ContributionPeriodOver,
                        #[codec(index = 11)]
                        #[doc = "The origin of this call is invalid."]
                        InvalidOrigin,
                        #[codec(index = 12)]
                        #[doc = "This crowdloan does not correspond to a parachain."]
                        NotParachain,
                        #[codec(index = 13)]
                        #[doc = "This parachain lease is still active and retirement cannot yet begin."]
                        LeaseActive,
                        #[codec(index = 14)]
                        #[doc = "This parachain's bid or lease is still active and withdraw cannot yet begin."]
                        BidOrLeaseActive,
                        #[codec(index = 15)]
                        #[doc = "The crowdloan has not yet ended."]
                        FundNotEnded,
                        #[codec(index = 16)]
                        #[doc = "There are no contributions stored in this crowdloan."]
                        NoContributions,
                        #[codec(index = 17)]
                        #[doc = "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement"]
                        #[doc = "period."]
                        NotReadyToDissolve,
                        #[codec(index = 18)]
                        #[doc = "Invalid signature."]
                        InvalidSignature,
                        #[codec(index = 19)]
                        #[doc = "The provided memo is too large."]
                        MemoTooLarge,
                        #[codec(index = 20)]
                        #[doc = "The fund is already in `NewRaise`"]
                        AlreadyInNewRaise,
                        #[codec(index = 21)]
                        #[doc = "No contributions allowed during the VRF delay"]
                        VrfDelayInProgress,
                        #[codec(index = 22)]
                        #[doc = "A lease period has not started yet, due to an offset in the starting block."]
                        NoLeasePeriod,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "Create a new crowdloaning campaign."]
                        Created {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 1)]
                        #[doc = "Contributed to a crowd sale."]
                        Contributed {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            fund_index:
                                runtime_types::polkadot_parachain_primitives::primitives::Id,
                            amount: ::core::primitive::u128,
                        },
                        #[codec(index = 2)]
                        #[doc = "Withdrew full balance of a contributor."]
                        Withdrew {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            fund_index:
                                runtime_types::polkadot_parachain_primitives::primitives::Id,
                            amount: ::core::primitive::u128,
                        },
                        #[codec(index = 3)]
                        #[doc = "The loans in a fund have been partially dissolved, i.e. there are some left"]
                        #[doc = "over child keys that still need to be killed."]
                        PartiallyRefunded {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 4)]
                        #[doc = "All loans in a fund have been refunded."]
                        AllRefunded {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 5)]
                        #[doc = "Fund is dissolved."]
                        Dissolved {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 6)]
                        #[doc = "The result of trying to submit a new bid to the Slots pallet."]
                        HandleBidResult {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            result: ::core::result::Result<
                                (),
                                runtime_types::sp_runtime::DispatchError,
                            >,
                        },
                        #[codec(index = 7)]
                        #[doc = "The configuration to a crowdloan has been edited."]
                        Edited {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 8)]
                        #[doc = "A memo has been updated."]
                        MemoUpdated {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            memo: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        },
                        #[codec(index = 9)]
                        #[doc = "A parachain has been moved to `NewRaise`"]
                        AddedToNewRaise {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct FundInfo<_0, _1, _2, _3> {
                    pub depositor: _0,
                    pub verifier: ::core::option::Option<runtime_types::sp_runtime::MultiSigner>,
                    pub deposit: _1,
                    pub raised: _1,
                    pub end: _2,
                    pub cap: _1,
                    pub last_contribution:
                        runtime_types::polkadot_runtime_common::crowdloan::LastContribution<_2>,
                    pub first_period: _3,
                    pub last_period: _3,
                    pub fund_index: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum LastContribution<_0> {
                    #[codec(index = 0)]
                    Never,
                    #[codec(index = 1)]
                    PreEnding(::core::primitive::u32),
                    #[codec(index = 2)]
                    Ending(_0),
                }
            }
            pub mod identity_migrator {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"]
                        #[doc = "deposits held and removing storage items associated with `who`."]
                        reap_identity {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                        #[codec(index = 1)]
                        #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"]
                        #[doc = "Instruction."]
                        poke_deposit {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "The identity and all sub accounts were reaped for `who`."]
                        IdentityReaped {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                        #[codec(index = 1)]
                        #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"]
                        #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."]
                        DepositUpdated {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            identity: ::core::primitive::u128,
                            subs: ::core::primitive::u128,
                        },
                    }
                }
            }
            pub mod impls {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum VersionedLocatableAsset {
                    #[codec(index = 3)]
                    V3 {
                        location: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        asset_id: runtime_types::xcm::v3::multiasset::AssetId,
                    },
                    #[codec(index = 4)]
                    V4 {
                        location: runtime_types::staging_xcm::v4::location::Location,
                        asset_id: runtime_types::staging_xcm::v4::asset::AssetId,
                    },
                    #[codec(index = 5)]
                    V5 {
                        location: runtime_types::staging_xcm::v5::location::Location,
                        asset_id: runtime_types::staging_xcm::v5::asset::AssetId,
                    },
                }
            }
            pub mod paras_registrar {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 0)] # [doc = "Register head data and validation code for a reserved Para Id."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin."] # [doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] # [doc = "- `genesis_head`: The genesis head data of the parachain/thread."] # [doc = "- `validation_code`: The initial validation code of the parachain/thread."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The account with the originating signature must reserve a deposit."] # [doc = ""] # [doc = "The deposit is required to cover the costs associated with storing the genesis head"] # [doc = "data and the validation code."] # [doc = "This accounts for the potential to store validation code of a size up to the"] # [doc = "`max_code_size`, as defined in the configuration pallet"] # [doc = ""] # [doc = "Anything already reserved previously for this para ID is accounted for."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Registered` event is emitted in case of success."] register { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Force the registration of a Para Id on the relay chain."] # [doc = ""] # [doc = "This function must be called by a Root origin."] # [doc = ""] # [doc = "The deposit taken can be specified for this registration. Any `ParaId`"] # [doc = "can be registered, including sub-1000 IDs which are System Parachains."] force_register { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , deposit : :: core :: primitive :: u128 , id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 2)] # [doc = "Deregister a Para Id, freeing all data and returning any deposit."] # [doc = ""] # [doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] # [doc = "on-demand parachain."] deregister { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] # [doc = "holding."] # [doc = ""] # [doc = "The origin must be Root, the `para` owner, or the `para` itself."] # [doc = ""] # [doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] # [doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] # [doc = ""] # [doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] # [doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] # [doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] # [doc = "parachain), auction information and the auction deposit are switched."] swap { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , other : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 4)] # [doc = "Remove a manager lock from a para. This will allow the manager of a"] # [doc = "previously locked para to deregister or swap a para without using governance."] # [doc = ""] # [doc = "Can only be called by the Root origin or the parachain."] remove_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Reserve a Para Id on the relay chain."] # [doc = ""] # [doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] # [doc = "The origin account is able to register head data and validation code using `register` to"] # [doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] # [doc = "be upgraded to a lease holding parachain."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] # [doc = "  para ID."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] # [doc = "use."] reserve , # [codec (index = 6)] # [doc = "Add a manager lock from a para. This will prevent the manager of a"] # [doc = "para to deregister or swap a para."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] add_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 7)] # [doc = "Schedule a parachain upgrade."] # [doc = ""] # [doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] # [doc = "validators have reported on the validity of the code, the code will either be enacted"] # [doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] # [doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] # [doc = "new code. The parachain itself will not be informed explicitly that the validation code"] # [doc = "has changed."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 8)] # [doc = "Set the parachain's current head."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The ID is not registered."]
                        NotRegistered,
                        #[codec(index = 1)]
                        #[doc = "The ID is already registered."]
                        AlreadyRegistered,
                        #[codec(index = 2)]
                        #[doc = "The caller is not the owner of this Id."]
                        NotOwner,
                        #[codec(index = 3)]
                        #[doc = "Invalid para code size."]
                        CodeTooLarge,
                        #[codec(index = 4)]
                        #[doc = "Invalid para head data size."]
                        HeadDataTooLarge,
                        #[codec(index = 5)]
                        #[doc = "Para is not a Parachain."]
                        NotParachain,
                        #[codec(index = 6)]
                        #[doc = "Para is not a Parathread (on-demand parachain)."]
                        NotParathread,
                        #[codec(index = 7)]
                        #[doc = "Cannot deregister para"]
                        CannotDeregister,
                        #[codec(index = 8)]
                        #[doc = "Cannot schedule downgrade of lease holding parachain to on-demand parachain"]
                        CannotDowngrade,
                        #[codec(index = 9)]
                        #[doc = "Cannot schedule upgrade of on-demand parachain to lease holding parachain"]
                        CannotUpgrade,
                        #[codec(index = 10)]
                        #[doc = "Para is locked from manipulation by the manager. Must use parachain or relay chain"]
                        #[doc = "governance."]
                        ParaLocked,
                        #[codec(index = 11)]
                        #[doc = "The ID given for registration has not been reserved."]
                        NotReserved,
                        #[codec(index = 12)]
                        #[doc = "The validation code is invalid."]
                        InvalidCode,
                        #[codec(index = 13)]
                        #[doc = "Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras"]
                        #[doc = "are correct for the swap to work."]
                        CannotSwap,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        Registered {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            manager: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                        #[codec(index = 1)]
                        Deregistered {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 2)]
                        Reserved {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                        #[codec(index = 3)]
                        Swapped {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            other_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ParaInfo<_0, _1> {
                    pub manager: _0,
                    pub deposit: _1,
                    pub locked: ::core::option::Option<::core::primitive::bool>,
                }
            }
            pub mod paras_sudo_wrapper {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Schedule a para to be initialized at the start of the next session."]
                        #[doc = ""]
                        #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"]
                        #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"]
                        #[doc = "running coretime chain required."]
                        sudo_schedule_para_initialize {
                            id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            genesis:
                                runtime_types::polkadot_runtime_parachains::paras::ParaGenesisArgs,
                        },
                        #[codec(index = 1)]
                        #[doc = "Schedule a para to be cleaned up at the start of the next session."]
                        sudo_schedule_para_cleanup {
                            id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 2)]
                        #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"]
                        sudo_schedule_parathread_upgrade {
                            id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 3)]
                        #[doc = "Downgrade a lease holding parachain to an on-demand parachain"]
                        sudo_schedule_parachain_downgrade {
                            id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 4)]
                        #[doc = "Send a downward XCM to the given para."]
                        #[doc = ""]
                        #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"]
                        #[doc = "size `config.max_downward_message_size`."]
                        sudo_queue_downward_xcm {
                            id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            xcm: ::subxt::ext::subxt_core::alloc::boxed::Box<
                                runtime_types::xcm::VersionedXcm,
                            >,
                        },
                        #[codec(index = 5)]
                        #[doc = "Forcefully establish a channel from the sender to the recipient."]
                        #[doc = ""]
                        #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"]
                        #[doc = "`Hrmp::hrmp_accept_open_channel`."]
                        sudo_establish_hrmp_channel {
                            sender: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            recipient: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            max_capacity: ::core::primitive::u32,
                            max_message_size: ::core::primitive::u32,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The specified parachain is not registered."]
                        ParaDoesntExist,
                        #[codec(index = 1)]
                        #[doc = "The specified parachain is already registered."]
                        ParaAlreadyExists,
                        #[codec(index = 2)]
                        #[doc = "A DMP message couldn't be sent because it exceeds the maximum size allowed for a"]
                        #[doc = "downward message."]
                        ExceedsMaxMessageSize,
                        #[codec(index = 3)]
                        #[doc = "A DMP message couldn't be sent because the destination is unreachable."]
                        Unroutable,
                        #[codec(index = 4)]
                        #[doc = "Could not schedule para cleanup."]
                        CouldntCleanup,
                        #[codec(index = 5)]
                        #[doc = "Not a parathread (on-demand parachain)."]
                        NotParathread,
                        #[codec(index = 6)]
                        #[doc = "Not a lease holding parachain."]
                        NotParachain,
                        #[codec(index = 7)]
                        #[doc = "Cannot upgrade on-demand parachain to lease holding parachain."]
                        CannotUpgrade,
                        #[codec(index = 8)]
                        #[doc = "Cannot downgrade lease holding parachain to on-demand."]
                        CannotDowngrade,
                        #[codec(index = 9)]
                        #[doc = "There are more cores than supported by the runtime."]
                        TooManyCores,
                    }
                }
            }
            pub mod slots {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"]
                        #[doc = "happen independently of any other on-chain mechanism to use it."]
                        #[doc = ""]
                        #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                        force_lease {
                            para: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            leaser: ::subxt::ext::subxt_core::utils::AccountId32,
                            amount: ::core::primitive::u128,
                            period_begin: ::core::primitive::u32,
                            period_count: ::core::primitive::u32,
                        },
                        #[codec(index = 1)]
                        #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."]
                        #[doc = ""]
                        #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."]
                        clear_all_leases {
                            para: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 2)]
                        #[doc = "Try to onboard a parachain that has a lease for the current lease period."]
                        #[doc = ""]
                        #[doc = "This function can be useful if there was some state issue with a para that should"]
                        #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"]
                        #[doc = "let them onboard from here."]
                        #[doc = ""]
                        #[doc = "Origin must be signed, but can be called by anyone."]
                        trigger_onboard {
                            para: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The parachain ID is not onboarding."]
                        ParaNotOnboarding,
                        #[codec(index = 1)]
                        #[doc = "There was an error with the lease."]
                        LeaseError,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "A new `[lease_period]` is beginning."]
                        NewLeasePeriod {
                            lease_period: ::core::primitive::u32,
                        },
                        #[codec(index = 1)]
                        #[doc = "A para has won the right to a continuous set of lease periods as a parachain."]
                        #[doc = "First balance is any extra amount reserved on top of the para's existing deposit."]
                        #[doc = "Second balance is the total amount reserved."]
                        Leased {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            leaser: ::subxt::ext::subxt_core::utils::AccountId32,
                            period_begin: ::core::primitive::u32,
                            period_count: ::core::primitive::u32,
                            extra_reserved: ::core::primitive::u128,
                            total_amount: ::core::primitive::u128,
                        },
                    }
                }
            }
        }
        pub mod polkadot_runtime_parachains {
            use super::runtime_types;
            pub mod assigner_coretime {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        AssignmentsEmpty,
                        #[codec(index = 1)]
                        #[doc = "assign_core is only allowed to append new assignments at the end of already existing"]
                        #[doc = "ones or update the last entry."]
                        DisallowedInsert,
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AssignmentState {
                    pub ratio:
                        runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600,
                    pub remaining:
                        runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CoreDescriptor < _0 > { pub queue : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: QueueDescriptor < _0 > > , pub current_work : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: WorkState < _0 > > , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PartsOf57600(pub ::core::primitive::u16);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueueDescriptor<_0> {
                    pub first: _0,
                    pub last: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Schedule<_0> {
                    pub assignments: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::pallet_broker::coretime_interface::CoreAssignment,
                        runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600,
                    )>,
                    pub end_hint: ::core::option::Option<_0>,
                    pub next_schedule: ::core::option::Option<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct WorkState < _0 > { pub assignments : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: AssignmentState ,) > , pub end_hint : :: core :: option :: Option < _0 > , pub pos : :: core :: primitive :: u16 , pub step : runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 , }
            }
            pub mod configuration {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 0)] # [doc = "Set the validation upgrade cooldown."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Set the validation upgrade delay."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Set the acceptance period for an included candidate."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Set the max validation code size for incoming upgrades."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Set the max POV block size for incoming upgrades."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set the max head data size for paras."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "Set the number of coretime execution cores."] # [doc = ""] # [doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] # [doc = "this, if you really know what you are doing!"] set_coretime_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Set the parachain validator-group rotation frequency"] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Set the availability period for paras."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "Set the maximum number of validators to assign to any core."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "Set the maximum number of validators to use in parachain consensus."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Set the dispute period, in number of sessions to keep for disputes."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "Set the dispute post conclusion acceptance period."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "Set the no show slots, in number of number of consensus slots."] # [doc = "Must be at least 1."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "Set the total number of delay tranches."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "Set the zeroth delay tranche width."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "Set the number of validators needed to approve a block."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "Sets the maximum items that can present in a upward dispatch queue at once."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] # [doc = "once."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "Set the critical downward message size."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "Sets the maximum size of an upward message that can be sent by a candidate."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "Sets the maximum number of messages that a candidate can contain."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "Sets the number of sessions after which an HRMP open channel request expires."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] # [doc = "channel."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] # [doc = "upgrade taking place."] # [doc = ""] # [doc = "See the field documentation for information and constraints for the new value."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "Setting this to true will disable consistency checks for the configuration setters."] # [doc = "Use with caution."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "Set the asynchronous backing parameters."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v8 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "Set PVF executor parameters."] set_executor_params { new : runtime_types :: polkadot_primitives :: v8 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "Set the on demand (parathreads) base fee."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "Set the on demand (parathreads) queue max size."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 52)] # [doc = "Set the minimum backing votes threshold."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , # [codec (index = 53)] # [doc = "Set/Unset a node feature."] set_node_feature { index : :: core :: primitive :: u8 , value : :: core :: primitive :: bool , } , # [codec (index = 54)] # [doc = "Set approval-voting-params."] set_approval_voting_params { new : runtime_types :: polkadot_primitives :: v8 :: ApprovalVotingParams , } , # [codec (index = 55)] # [doc = "Set scheduler-params."] set_scheduler_params { new : runtime_types :: polkadot_primitives :: v8 :: SchedulerParams < :: core :: primitive :: u32 > , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The new value for a configuration parameter is invalid."]
                        InvalidNewValue,
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct HostConfiguration<_0> {
                    pub max_code_size: ::core::primitive::u32,
                    pub max_head_data_size: ::core::primitive::u32,
                    pub max_upward_queue_count: ::core::primitive::u32,
                    pub max_upward_queue_size: ::core::primitive::u32,
                    pub max_upward_message_size: ::core::primitive::u32,
                    pub max_upward_message_num_per_candidate: ::core::primitive::u32,
                    pub hrmp_max_message_num_per_candidate: ::core::primitive::u32,
                    pub validation_upgrade_cooldown: _0,
                    pub validation_upgrade_delay: _0,
                    pub async_backing_params:
                        runtime_types::polkadot_primitives::v8::async_backing::AsyncBackingParams,
                    pub max_pov_size: ::core::primitive::u32,
                    pub max_downward_message_size: ::core::primitive::u32,
                    pub hrmp_max_parachain_outbound_channels: ::core::primitive::u32,
                    pub hrmp_sender_deposit: ::core::primitive::u128,
                    pub hrmp_recipient_deposit: ::core::primitive::u128,
                    pub hrmp_channel_max_capacity: ::core::primitive::u32,
                    pub hrmp_channel_max_total_size: ::core::primitive::u32,
                    pub hrmp_max_parachain_inbound_channels: ::core::primitive::u32,
                    pub hrmp_channel_max_message_size: ::core::primitive::u32,
                    pub executor_params:
                        runtime_types::polkadot_primitives::v8::executor_params::ExecutorParams,
                    pub code_retention_period: _0,
                    pub max_validators: ::core::option::Option<_0>,
                    pub dispute_period: ::core::primitive::u32,
                    pub dispute_post_conclusion_acceptance_period: _0,
                    pub no_show_slots: ::core::primitive::u32,
                    pub n_delay_tranches: ::core::primitive::u32,
                    pub zeroth_delay_tranche_width: ::core::primitive::u32,
                    pub needed_approvals: ::core::primitive::u32,
                    pub relay_vrf_modulo_samples: ::core::primitive::u32,
                    pub pvf_voting_ttl: ::core::primitive::u32,
                    pub minimum_validation_upgrade_delay: _0,
                    pub minimum_backing_votes: ::core::primitive::u32,
                    pub node_features: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub approval_voting_params:
                        runtime_types::polkadot_primitives::v8::ApprovalVotingParams,
                    pub scheduler_params:
                        runtime_types::polkadot_primitives::v8::SchedulerParams<_0>,
                }
            }
            pub mod coretime {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 1)] # [doc = "Request the configuration to be updated with the specified number of cores. Warning:"] # [doc = "Since this only schedules a configuration update, it takes two sessions to come into"] # [doc = "effect."] # [doc = ""] # [doc = "- `origin`: Root or the Coretime Chain"] # [doc = "- `count`: total number of cores"] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 2)] # [doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"] # [doc = "last claimed until and up to the block specified. The claimed amount value is sent back"] # [doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"] # [doc = "teleported to the Coretime chain."] request_revenue_at { when : :: core :: primitive :: u32 , } , # [codec (index = 3)] credit_account { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 4)] # [doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] # [doc = "to be used."] # [doc = ""] # [doc = "Parameters:"] # [doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] # [doc = "-`core`: The core that should be scheduled."] # [doc = "-`begin`: The starting blockheight of the instruction."] # [doc = "-`assignment`: How the blockspace should be utilised."] # [doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 ,) > , end_hint : :: core :: option :: Option < :: core :: primitive :: u32 > , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The paraid making the call is not the coretime brokerage system parachain."]
                        NotBroker,
                        #[codec(index = 1)]
                        #[doc = "Requested revenue information `when` parameter was in the future from the current"]
                        #[doc = "block height."]
                        RequestedFutureRevenue,
                        #[codec(index = 2)]
                        #[doc = "Failed to transfer assets to the coretime chain"]
                        AssetTransferFailed,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "The broker chain has asked for revenue information for a specific block."]
                        RevenueInfoRequested { when: ::core::primitive::u32 },
                        #[codec(index = 1)]
                        #[doc = "A core has received a new assignment from the broker chain."]
                        CoreAssigned {
                            core: runtime_types::polkadot_primitives::v8::CoreIndex,
                        },
                    }
                }
            }
            pub mod disputes {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        force_unfreeze,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "Duplicate dispute statement sets provided."]
                        DuplicateDisputeStatementSets,
                        #[codec(index = 1)]
                        #[doc = "Ancient dispute statement provided."]
                        AncientDisputeStatement,
                        #[codec(index = 2)]
                        #[doc = "Validator index on statement is out of bounds for session."]
                        ValidatorIndexOutOfBounds,
                        #[codec(index = 3)]
                        #[doc = "Invalid signature on statement."]
                        InvalidSignature,
                        #[codec(index = 4)]
                        #[doc = "Validator vote submitted more than once to dispute."]
                        DuplicateStatement,
                        #[codec(index = 5)]
                        #[doc = "A dispute where there are only votes on one side."]
                        SingleSidedDispute,
                        #[codec(index = 6)]
                        #[doc = "A dispute vote from a malicious backer."]
                        MaliciousBacker,
                        #[codec(index = 7)]
                        #[doc = "No backing votes were provides along dispute statements."]
                        MissingBackingVotes,
                        #[codec(index = 8)]
                        #[doc = "Unconfirmed dispute statement sets provided."]
                        UnconfirmedDispute,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "A dispute has been initiated. \\[candidate hash, dispute location\\]"]
                        DisputeInitiated(
                            runtime_types::polkadot_core_primitives::CandidateHash,
                            runtime_types::polkadot_runtime_parachains::disputes::DisputeLocation,
                        ),
                        #[codec(index = 1)]
                        #[doc = "A dispute has concluded for or against a candidate."]
                        #[doc = "`\\[para id, candidate hash, dispute result\\]`"]
                        DisputeConcluded(
                            runtime_types::polkadot_core_primitives::CandidateHash,
                            runtime_types::polkadot_runtime_parachains::disputes::DisputeResult,
                        ),
                        #[codec(index = 2)]
                        #[doc = "A dispute has concluded with supermajority against a candidate."]
                        #[doc = "Block authors should no longer build on top of this head and should"]
                        #[doc = "instead revert the block at the given height. This should be the"]
                        #[doc = "number of the child of the last known valid block in the chain."]
                        Revert(::core::primitive::u32),
                    }
                }
                pub mod slashing {
                    use super::runtime_types;
                    pub mod pallet {
                        use super::runtime_types;
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                        pub enum Call {
                            #[codec(index = 0)]
                            report_dispute_lost_unsigned {
                                dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box<
                                    runtime_types::polkadot_primitives::vstaging::DisputeProof,
                                >,
                                key_owner_proof: runtime_types::sp_session::MembershipProof,
                            },
                        }
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        #[doc = "The `Error` enum of this pallet."]
                        pub enum Error {
                            #[codec(index = 0)]
                            #[doc = "The key ownership proof is invalid."]
                            InvalidKeyOwnershipProof,
                            #[codec(index = 1)]
                            #[doc = "The session index is too old or invalid."]
                            InvalidSessionIndex,
                            #[codec(index = 2)]
                            #[doc = "The candidate hash is invalid."]
                            InvalidCandidateHash,
                            #[codec(index = 3)]
                            #[doc = "There is no pending slash for the given validator index and time"]
                            #[doc = "slot."]
                            InvalidValidatorIndex,
                            #[codec(index = 4)]
                            #[doc = "The validator index does not match the validator id."]
                            ValidatorIndexIdMismatch,
                            #[codec(index = 5)]
                            #[doc = "The given slashing report is valid but already previously reported."]
                            DuplicateSlashingReport,
                        }
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum DisputeLocation {
                    #[codec(index = 0)]
                    Local,
                    #[codec(index = 1)]
                    Remote,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum DisputeResult {
                    #[codec(index = 0)]
                    Valid,
                    #[codec(index = 1)]
                    Invalid,
                }
            }
            pub mod hrmp {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 0)] # [doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] # [doc = "parameters."] # [doc = ""] # [doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] # [doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] # [doc = ""] # [doc = "These numbers are a subject to the relay-chain configuration limits."] # [doc = ""] # [doc = "The channel can be opened only after the recipient confirms it and only on a session"] # [doc = "change."] hrmp_init_open_channel { recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Accept a pending open channel request from the given sender."] # [doc = ""] # [doc = "The channel will be opened only on the next session boundary."] hrmp_accept_open_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 2)] # [doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] # [doc = "recipient in the channel being closed."] # [doc = ""] # [doc = "The closure can only happen on a session change."] hrmp_close_channel { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 3)] # [doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] # [doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] # [doc = "immediately for a specific parachain."] # [doc = ""] # [doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_clean_hrmp { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , num_inbound : :: core :: primitive :: u32 , num_outbound : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Force process HRMP open channel requests."] # [doc = ""] # [doc = "If there are pending HRMP open channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of opening channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_open { channels : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Force process HRMP close channel requests."] # [doc = ""] # [doc = "If there are pending HRMP close channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of closing channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_close { channels : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] # [doc = "or the recipient for that request. The origin must be either of those."] # [doc = ""] # [doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] # [doc = "already accepted."] # [doc = ""] # [doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] # [doc = "witness data."] hrmp_cancel_open_request { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , open_requests : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] # [doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] # [doc = "configured limits."] # [doc = ""] # [doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] # [doc = "governed by the system, e.g. a system parachain."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_open_hrmp_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , max_capacity : :: core :: primitive :: u32 , max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Establish an HRMP channel between two system chains. If the channel does not already"] # [doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] # [doc = "deposits for channels between system chains, and automatically sets the message number"] # [doc = "and size limits to the maximum allowed by the network's configuration."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A system chain, `ParaId`."] # [doc = "- `recipient`: A system chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] # [doc = "the channel does not exist yet, there is no fee."] establish_system_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] # [doc = "with system chains do not require a deposit."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A chain, `ParaId`."] # [doc = "- `recipient`: A chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function."] poke_channel_deposits { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 10)] # [doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `target_system_chain`: A system chain, `ParaId`."] # [doc = ""] # [doc = "The origin needs to be the parachain origin."] establish_channel_with_system { target_system_chain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The sender tried to open a channel to themselves."]
                        OpenHrmpChannelToSelf,
                        #[codec(index = 1)]
                        #[doc = "The recipient is not a valid para."]
                        OpenHrmpChannelInvalidRecipient,
                        #[codec(index = 2)]
                        #[doc = "The requested capacity is zero."]
                        OpenHrmpChannelZeroCapacity,
                        #[codec(index = 3)]
                        #[doc = "The requested capacity exceeds the global limit."]
                        OpenHrmpChannelCapacityExceedsLimit,
                        #[codec(index = 4)]
                        #[doc = "The requested maximum message size is 0."]
                        OpenHrmpChannelZeroMessageSize,
                        #[codec(index = 5)]
                        #[doc = "The open request requested the message size that exceeds the global limit."]
                        OpenHrmpChannelMessageSizeExceedsLimit,
                        #[codec(index = 6)]
                        #[doc = "The channel already exists"]
                        OpenHrmpChannelAlreadyExists,
                        #[codec(index = 7)]
                        #[doc = "There is already a request to open the same channel."]
                        OpenHrmpChannelAlreadyRequested,
                        #[codec(index = 8)]
                        #[doc = "The sender already has the maximum number of allowed outbound channels."]
                        OpenHrmpChannelLimitExceeded,
                        #[codec(index = 9)]
                        #[doc = "The channel from the sender to the origin doesn't exist."]
                        AcceptHrmpChannelDoesntExist,
                        #[codec(index = 10)]
                        #[doc = "The channel is already confirmed."]
                        AcceptHrmpChannelAlreadyConfirmed,
                        #[codec(index = 11)]
                        #[doc = "The recipient already has the maximum number of allowed inbound channels."]
                        AcceptHrmpChannelLimitExceeded,
                        #[codec(index = 12)]
                        #[doc = "The origin tries to close a channel where it is neither the sender nor the recipient."]
                        CloseHrmpChannelUnauthorized,
                        #[codec(index = 13)]
                        #[doc = "The channel to be closed doesn't exist."]
                        CloseHrmpChannelDoesntExist,
                        #[codec(index = 14)]
                        #[doc = "The channel close request is already requested."]
                        CloseHrmpChannelAlreadyUnderway,
                        #[codec(index = 15)]
                        #[doc = "Canceling is requested by neither the sender nor recipient of the open channel request."]
                        CancelHrmpOpenChannelUnauthorized,
                        #[codec(index = 16)]
                        #[doc = "The open request doesn't exist."]
                        OpenHrmpChannelDoesntExist,
                        #[codec(index = 17)]
                        #[doc = "Cannot cancel an HRMP open channel request because it is already confirmed."]
                        OpenHrmpChannelAlreadyConfirmed,
                        #[codec(index = 18)]
                        #[doc = "The provided witness data is wrong."]
                        WrongWitness,
                        #[codec(index = 19)]
                        #[doc = "The channel between these two chains cannot be authorized."]
                        ChannelCreationNotAuthorized,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        # [codec (index = 0)] # [doc = "Open HRMP channel requested."] OpenChannelRequested { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "An HRMP channel request sent by the receiver was canceled by either party."] OpenChannelCanceled { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 2)] # [doc = "Open HRMP channel accepted."] OpenChannelAccepted { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "HRMP channel closed."] ChannelClosed { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 4)] # [doc = "An HRMP channel was opened via Root origin."] HrmpChannelForceOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "An HRMP channel was opened with a system chain."] HrmpSystemChannelOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "An HRMP channel's deposits were updated."] OpenChannelDepositsUpdated { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct HrmpChannel {
                    pub max_capacity: ::core::primitive::u32,
                    pub max_total_size: ::core::primitive::u32,
                    pub max_message_size: ::core::primitive::u32,
                    pub msg_count: ::core::primitive::u32,
                    pub total_size: ::core::primitive::u32,
                    pub mqc_head: ::core::option::Option<::subxt::ext::subxt_core::utils::H256>,
                    pub sender_deposit: ::core::primitive::u128,
                    pub recipient_deposit: ::core::primitive::u128,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct HrmpOpenChannelRequest {
                    pub confirmed: ::core::primitive::bool,
                    pub _age: ::core::primitive::u32,
                    pub sender_deposit: ::core::primitive::u128,
                    pub max_message_size: ::core::primitive::u32,
                    pub max_capacity: ::core::primitive::u32,
                    pub max_total_size: ::core::primitive::u32,
                }
            }
            pub mod inclusion {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {}
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "Validator index out of bounds."]
                        ValidatorIndexOutOfBounds,
                        #[codec(index = 1)]
                        #[doc = "Candidate submitted but para not scheduled."]
                        UnscheduledCandidate,
                        #[codec(index = 2)]
                        #[doc = "Head data exceeds the configured maximum."]
                        HeadDataTooLarge,
                        #[codec(index = 3)]
                        #[doc = "Code upgrade prematurely."]
                        PrematureCodeUpgrade,
                        #[codec(index = 4)]
                        #[doc = "Output code is too large"]
                        NewCodeTooLarge,
                        #[codec(index = 5)]
                        #[doc = "The candidate's relay-parent was not allowed. Either it was"]
                        #[doc = "not recent enough or it didn't advance based on the last parachain block."]
                        DisallowedRelayParent,
                        #[codec(index = 6)]
                        #[doc = "Failed to compute group index for the core: either it's out of bounds"]
                        #[doc = "or the relay parent doesn't belong to the current session."]
                        InvalidAssignment,
                        #[codec(index = 7)]
                        #[doc = "Invalid group index in core assignment."]
                        InvalidGroupIndex,
                        #[codec(index = 8)]
                        #[doc = "Insufficient (non-majority) backing."]
                        InsufficientBacking,
                        #[codec(index = 9)]
                        #[doc = "Invalid (bad signature, unknown validator, etc.) backing."]
                        InvalidBacking,
                        #[codec(index = 10)]
                        #[doc = "The validation data hash does not match expected."]
                        ValidationDataHashMismatch,
                        #[codec(index = 11)]
                        #[doc = "The downward message queue is not processed correctly."]
                        IncorrectDownwardMessageHandling,
                        #[codec(index = 12)]
                        #[doc = "At least one upward message sent does not pass the acceptance criteria."]
                        InvalidUpwardMessages,
                        #[codec(index = 13)]
                        #[doc = "The candidate didn't follow the rules of HRMP watermark advancement."]
                        HrmpWatermarkMishandling,
                        #[codec(index = 14)]
                        #[doc = "The HRMP messages sent by the candidate is not valid."]
                        InvalidOutboundHrmp,
                        #[codec(index = 15)]
                        #[doc = "The validation code hash of the candidate is not valid."]
                        InvalidValidationCodeHash,
                        #[codec(index = 16)]
                        #[doc = "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual"]
                        #[doc = "para head in the commitments."]
                        ParaHeadMismatch,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "A candidate was backed. `[candidate, head_data]`"]
                        CandidateBacked(
                            runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                                ::subxt::ext::subxt_core::utils::H256,
                            >,
                            runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                            runtime_types::polkadot_primitives::v8::CoreIndex,
                            runtime_types::polkadot_primitives::v8::GroupIndex,
                        ),
                        #[codec(index = 1)]
                        #[doc = "A candidate was included. `[candidate, head_data]`"]
                        CandidateIncluded(
                            runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                                ::subxt::ext::subxt_core::utils::H256,
                            >,
                            runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                            runtime_types::polkadot_primitives::v8::CoreIndex,
                            runtime_types::polkadot_primitives::v8::GroupIndex,
                        ),
                        #[codec(index = 2)]
                        #[doc = "A candidate timed out. `[candidate, head_data]`"]
                        CandidateTimedOut(
                            runtime_types::polkadot_primitives::vstaging::CandidateReceiptV2<
                                ::subxt::ext::subxt_core::utils::H256,
                            >,
                            runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                            runtime_types::polkadot_primitives::v8::CoreIndex,
                        ),
                        #[codec(index = 3)]
                        #[doc = "Some upward messages have been received and will be processed."]
                        UpwardMessagesReceived {
                            from: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            count: ::core::primitive::u32,
                        },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum AggregateMessageOrigin {
                    #[codec(index = 0)]
                    Ump(runtime_types::polkadot_runtime_parachains::inclusion::UmpQueueId),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CandidatePendingAvailability<_0, _1> {
                    pub core: runtime_types::polkadot_primitives::v8::CoreIndex,
                    pub hash: runtime_types::polkadot_core_primitives::CandidateHash,
                    pub descriptor:
                        runtime_types::polkadot_primitives::vstaging::CandidateDescriptorV2<_0>,
                    pub commitments:
                        runtime_types::polkadot_primitives::v8::CandidateCommitments<_1>,
                    pub availability_votes: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub backers: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub relay_parent_number: _1,
                    pub backed_in_number: _1,
                    pub backing_group: runtime_types::polkadot_primitives::v8::GroupIndex,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum UmpQueueId {
                    #[codec(index = 0)]
                    Para(runtime_types::polkadot_parachain_primitives::primitives::Id),
                }
            }
            pub mod initializer {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"]
                        #[doc = "blocks in all relay chain blocks up to and including the given number in the current"]
                        #[doc = "chain are valid and should be finalized."]
                        force_approve { up_to: ::core::primitive::u32 },
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BufferedSessionChange {
                    pub validators: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::validator_app::Public,
                    >,
                    pub queued: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_primitives::v8::validator_app::Public,
                    >,
                    pub session_index: ::core::primitive::u32,
                }
            }
            pub mod on_demand {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Create a single on demand core order."]
                        #[doc = "Will use the spot price for the current block and will reap the account if needed."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                        #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                        #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                        #[doc = ""]
                        #[doc = "Errors:"]
                        #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                        #[doc = "- `QueueFull`"]
                        #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                        #[doc = ""]
                        #[doc = "Events:"]
                        #[doc = "- `OnDemandOrderPlaced`"]
                        place_order_allow_death {
                            max_amount: ::core::primitive::u128,
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 1)]
                        #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"]
                        #[doc = "check that placing the order will not reap the account."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."]
                        #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."]
                        #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                        #[doc = ""]
                        #[doc = "Errors:"]
                        #[doc = "- `InsufficientBalance`: from the Currency implementation"]
                        #[doc = "- `QueueFull`"]
                        #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                        #[doc = ""]
                        #[doc = "Events:"]
                        #[doc = "- `OnDemandOrderPlaced`"]
                        place_order_keep_alive {
                            max_amount: ::core::primitive::u128,
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                        #[codec(index = 2)]
                        #[doc = "Create a single on demand core order with credits."]
                        #[doc = "Will charge the owner's on-demand credit account the spot price for the current block."]
                        #[doc = ""]
                        #[doc = "Parameters:"]
                        #[doc = "- `origin`: The sender of the call, on-demand credits will be withdrawn from this"]
                        #[doc = "  account."]
                        #[doc = "- `max_amount`: The maximum number of credits to spend from the origin to place an"]
                        #[doc = "  order."]
                        #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."]
                        #[doc = ""]
                        #[doc = "Errors:"]
                        #[doc = "- `InsufficientCredits`"]
                        #[doc = "- `QueueFull`"]
                        #[doc = "- `SpotPriceHigherThanMaxAmount`"]
                        #[doc = ""]
                        #[doc = "Events:"]
                        #[doc = "- `OnDemandOrderPlaced`"]
                        place_order_with_credits {
                            max_amount: ::core::primitive::u128,
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "The order queue is full, `place_order` will not continue."]
                        QueueFull,
                        #[codec(index = 1)]
                        #[doc = "The current spot price is higher than the max amount specified in the `place_order`"]
                        #[doc = "call, making it invalid."]
                        SpotPriceHigherThanMaxAmount,
                        #[codec(index = 2)]
                        #[doc = "The account doesn't have enough credits to purchase on-demand coretime."]
                        InsufficientCredits,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "An order was placed at some spot price amount by orderer ordered_by"]
                        OnDemandOrderPlaced {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            spot_price: ::core::primitive::u128,
                            ordered_by: ::subxt::ext::subxt_core::utils::AccountId32,
                        },
                        #[codec(index = 1)]
                        #[doc = "The value of the spot price has likely changed"]
                        SpotPriceSet { spot_price: ::core::primitive::u128 },
                        #[codec(index = 2)]
                        #[doc = "An account was given credits."]
                        AccountCredited {
                            who: ::subxt::ext::subxt_core::utils::AccountId32,
                            amount: ::core::primitive::u128,
                        },
                    }
                }
                pub mod types {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct CoreAffinityCount {
                        pub core_index: runtime_types::polkadot_primitives::v8::CoreIndex,
                        pub count: ::core::primitive::u32,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct EnqueuedOrder { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub idx : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct QueueIndex(pub ::core::primitive::u32);
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: ReverseQueueIndex > , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct ReverseQueueIndex(pub ::core::primitive::u32);
                }
            }
            pub mod origin {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Origin {
                        #[codec(index = 0)]
                        Parachain(runtime_types::polkadot_parachain_primitives::primitives::Id),
                    }
                }
            }
            pub mod paras {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        # [codec (index = 0)] # [doc = "Set the storage for the parachain validation code immediately."] force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 2)] # [doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] force_schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , relay_parent_number : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Note a new block head for para within the context of the current block."] force_note_new_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 4)] # [doc = "Put a parachain directly into the next session's action queue."] # [doc = "We can't queue it any sooner than this without going into the"] # [doc = "initializer..."] force_queue_action { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Adds the validation code to the storage."] # [doc = ""] # [doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] # [doc = "is running for that code, it will be instantly accepted."] # [doc = ""] # [doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] # [doc = "into storage with reference count 0. This is to account the fact that there are no users"] # [doc = "for this code yet. The caller will have to make sure that this code eventually gets"] # [doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] # [doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] # [doc = "manipulation."] # [doc = ""] # [doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] # [doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] add_trusted_validation_code { validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 6)] # [doc = "Remove the validation code from the storage iff the reference count is 0."] # [doc = ""] # [doc = "This is better than removing the storage directly, because it will not remove the code"] # [doc = "that was suddenly got used by some parachain while this dispatchable was pending"] # [doc = "dispatching."] poke_unused_validation_code { validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } , # [codec (index = 7)] # [doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] # [doc = "enacts the results if that was the last vote before achieving the supermajority."] include_pvf_check_statement { stmt : runtime_types :: polkadot_primitives :: v8 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v8 :: validator_app :: Signature , } , # [codec (index = 8)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_most_recent_context { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , context : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Remove an upgrade cooldown for a parachain."] # [doc = ""] # [doc = "The cost for removing the cooldown earlier depends on the time left for the cooldown"] # [doc = "multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned."] remove_upgrade_cooldown { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 10)] # [doc = "Sets the storage for the authorized current code hash of the parachain."] # [doc = "If not applied, it will be removed at the `System::block_number() + valid_period` block."] # [doc = ""] # [doc = "This can be useful, when triggering `Paras::force_set_current_code(para, code)`"] # [doc = "from a different chain than the one where the `Paras` pallet is deployed."] # [doc = ""] # [doc = "The main purpose is to avoid transferring the entire `code` Wasm blob between chains."] # [doc = "Instead, we authorize `code_hash` with `root`, which can later be applied by"] # [doc = "`Paras::apply_authorized_force_set_current_code(para, code)` by anyone."] # [doc = ""] # [doc = "Authorizations are stored in an **overwriting manner**."] authorize_force_set_current_code_hash { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , valid_period : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "Applies the already authorized current code for the parachain,"] # [doc = "triggering the same functionality as `force_set_current_code`."] apply_authorized_force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "Para is not registered in our system."]
                        NotRegistered,
                        #[codec(index = 1)]
                        #[doc = "Para cannot be onboarded because it is already tracked by our system."]
                        CannotOnboard,
                        #[codec(index = 2)]
                        #[doc = "Para cannot be offboarded at this time."]
                        CannotOffboard,
                        #[codec(index = 3)]
                        #[doc = "Para cannot be upgraded to a lease holding parachain."]
                        CannotUpgrade,
                        #[codec(index = 4)]
                        #[doc = "Para cannot be downgraded to an on-demand parachain."]
                        CannotDowngrade,
                        #[codec(index = 5)]
                        #[doc = "The statement for PVF pre-checking is stale."]
                        PvfCheckStatementStale,
                        #[codec(index = 6)]
                        #[doc = "The statement for PVF pre-checking is for a future session."]
                        PvfCheckStatementFuture,
                        #[codec(index = 7)]
                        #[doc = "Claimed validator index is out of bounds."]
                        PvfCheckValidatorIndexOutOfBounds,
                        #[codec(index = 8)]
                        #[doc = "The signature for the PVF pre-checking is invalid."]
                        PvfCheckInvalidSignature,
                        #[codec(index = 9)]
                        #[doc = "The given validator already has cast a vote."]
                        PvfCheckDoubleVote,
                        #[codec(index = 10)]
                        #[doc = "The given PVF does not exist at the moment of process a vote."]
                        PvfCheckSubjectInvalid,
                        #[codec(index = 11)]
                        #[doc = "Parachain cannot currently schedule a code upgrade."]
                        CannotUpgradeCode,
                        #[codec(index = 12)]
                        #[doc = "Invalid validation code size."]
                        InvalidCode,
                        #[codec(index = 13)]
                        #[doc = "No upgrade authorized."]
                        NothingAuthorized,
                        #[codec(index = 14)]
                        #[doc = "The submitted code is not authorized."]
                        Unauthorized,
                        #[codec(index = 15)]
                        #[doc = "Invalid block number."]
                        InvalidBlockNumber,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        # [codec (index = 0)] # [doc = "Current code has been updated for a Para. `para_id`"] CurrentCodeUpdated (runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 1)] # [doc = "Current head has been updated for a Para. `para_id`"] CurrentHeadUpdated (runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 2)] # [doc = "A code upgrade has been scheduled for a Para. `para_id`"] CodeUpgradeScheduled (runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 3)] # [doc = "A new head has been noted for a Para. `para_id`"] NewHeadNoted (runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 4)] # [doc = "A para has been queued to execute pending actions. `para_id`"] ActionQueued (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , :: core :: primitive :: u32 ,) , # [codec (index = 5)] # [doc = "The given para either initiated or subscribed to a PVF check for the given validation"] # [doc = "code. `code_hash` `para_id`"] PvfCheckStarted (runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 6)] # [doc = "The given validation code was accepted by the PVF pre-checking vote."] # [doc = "`code_hash` `para_id`"] PvfCheckAccepted (runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 7)] # [doc = "The given validation code was rejected by the PVF pre-checking vote."] # [doc = "`code_hash` `para_id`"] PvfCheckRejected (runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , runtime_types :: polkadot_parachain_primitives :: primitives :: Id ,) , # [codec (index = 8)] # [doc = "The upgrade cooldown was removed."] UpgradeCooldownRemoved { para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "A new code hash has been authorized for a Para."] CodeAuthorized { para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , expire_at : :: core :: primitive :: u32 , } , }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AuthorizedCodeHashAndExpiry < _0 > { pub code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub expire_at : _0 , }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ParaGenesisArgs {
                    pub genesis_head:
                        runtime_types::polkadot_parachain_primitives::primitives::HeadData,
                    pub validation_code:
                        runtime_types::polkadot_parachain_primitives::primitives::ValidationCode,
                    pub para_kind: ::core::primitive::bool,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum ParaLifecycle {
                    #[codec(index = 0)]
                    Onboarding,
                    #[codec(index = 1)]
                    Parathread,
                    #[codec(index = 2)]
                    Parachain,
                    #[codec(index = 3)]
                    UpgradingParathread,
                    #[codec(index = 4)]
                    DowngradingParachain,
                    #[codec(index = 5)]
                    OffboardingParathread,
                    #[codec(index = 6)]
                    OffboardingParachain,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ParaPastCodeMeta<_0> {
                    pub upgrade_times: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_runtime_parachains::paras::ReplacementTimes<_0>,
                    >,
                    pub last_pruned: ::core::option::Option<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PvfCheckActiveVoteState<_0> {
                    pub votes_accept: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub votes_reject: ::subxt::ext::subxt_core::utils::bits::DecodedBits<
                        ::core::primitive::u8,
                        ::subxt::ext::subxt_core::utils::bits::Lsb0,
                    >,
                    pub age: ::core::primitive::u32,
                    pub created_at: _0,
                    pub causes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_runtime_parachains::paras::PvfCheckCause<_0>,
                    >,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum PvfCheckCause<_0> {
                    #[codec(index = 0)]
                    Onboarding(runtime_types::polkadot_parachain_primitives::primitives::Id),
                    #[codec(index = 1)]
                    Upgrade {
                        id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                        included_at: _0,
                        upgrade_strategy:
                            runtime_types::polkadot_runtime_parachains::paras::UpgradeStrategy,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ReplacementTimes<_0> {
                    pub expected_at: _0,
                    pub activated_at: _0,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum UpgradeStrategy {
                    #[codec(index = 0)]
                    SetGoAheadSignal,
                    #[codec(index = 1)]
                    ApplyAtExpectedBlock,
                }
            }
            pub mod paras_inherent {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."]
                        enter {
                            data: runtime_types::polkadot_primitives::vstaging::InherentData<
                                runtime_types::sp_runtime::generic::header::Header<
                                    ::core::primitive::u32,
                                >,
                            >,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Error` enum of this pallet."]
                    pub enum Error {
                        #[codec(index = 0)]
                        #[doc = "Inclusion inherent called more than once per block."]
                        TooManyInclusionInherents,
                        #[codec(index = 1)]
                        #[doc = "The hash of the submitted parent header doesn't correspond to the saved block hash of"]
                        #[doc = "the parent."]
                        InvalidParentHeader,
                        #[codec(index = 2)]
                        #[doc = "Inherent data was filtered during execution. This should have only been done"]
                        #[doc = "during creation."]
                        InherentDataFilteredDuringExecution,
                        #[codec(index = 3)]
                        #[doc = "Too many candidates supplied."]
                        UnscheduledCandidate,
                    }
                }
            }
            pub mod scheduler {
                use super::runtime_types;
                pub mod common {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Assignment {
                        #[codec(index = 0)]
                        Pool {
                            para_id: runtime_types::polkadot_parachain_primitives::primitives::Id,
                            core_index: runtime_types::polkadot_primitives::v8::CoreIndex,
                        },
                        #[codec(index = 1)]
                        Bulk(runtime_types::polkadot_parachain_primitives::primitives::Id),
                    }
                }
            }
            pub mod shared {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {}
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct AllowedRelayParentsTracker<_0, _1> {
                    pub buffer: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::polkadot_runtime_parachains::shared::RelayParentInfo<_0>,
                    >,
                    pub latest_number: _1,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct RelayParentInfo<_0> {
                    pub relay_parent: _0,
                    pub state_root: _0,
                    pub claim_queue: ::subxt::ext::subxt_core::utils::KeyedVec<
                        runtime_types::polkadot_parachain_primitives::primitives::Id,
                        ::subxt::ext::subxt_core::utils::KeyedVec<
                            ::core::primitive::u8,
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                runtime_types::polkadot_primitives::v8::CoreIndex,
                            >,
                        >,
                    >,
                }
            }
        }
        pub mod rococo_runtime {
            use super::runtime_types;
            pub mod dynamic_params {
                use super::runtime_types;
                pub mod nis {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct MinBid;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Parameters {
                        #[codec(index = 0)]
                        Target(
                            runtime_types::rococo_runtime::dynamic_params::nis::Target,
                            ::core::option::Option<
                                runtime_types::sp_arithmetic::per_things::Perquintill,
                            >,
                        ),
                        #[codec(index = 1)]
                        MinBid(
                            runtime_types::rococo_runtime::dynamic_params::nis::MinBid,
                            ::core::option::Option<::core::primitive::u128>,
                        ),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ParametersKey {
                        #[codec(index = 0)]
                        Target(runtime_types::rococo_runtime::dynamic_params::nis::Target),
                        #[codec(index = 1)]
                        MinBid(runtime_types::rococo_runtime::dynamic_params::nis::MinBid),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ParametersValue {
                        #[codec(index = 0)]
                        Target(runtime_types::sp_arithmetic::per_things::Perquintill),
                        #[codec(index = 1)]
                        MinBid(::core::primitive::u128),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Target;
                }
                pub mod preimage {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct BaseDeposit;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct ByteDeposit;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Parameters {
                        #[codec(index = 0)]
                        BaseDeposit(
                            runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit,
                            ::core::option::Option<::core::primitive::u128>,
                        ),
                        #[codec(index = 1)]
                        ByteDeposit(
                            runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit,
                            ::core::option::Option<::core::primitive::u128>,
                        ),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ParametersKey {
                        #[codec(index = 0)]
                        BaseDeposit(
                            runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit,
                        ),
                        #[codec(index = 1)]
                        ByteDeposit(
                            runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit,
                        ),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum ParametersValue {
                        #[codec(index = 0)]
                        BaseDeposit(::core::primitive::u128),
                        #[codec(index = 1)]
                        ByteDeposit(::core::primitive::u128),
                    }
                }
            }
            pub mod governance {
                use super::runtime_types;
                pub mod origins {
                    use super::runtime_types;
                    pub mod pallet_custom_origins {
                        use super::runtime_types;
                        #[derive(
                            :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                            :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                            Debug,
                        )]
                        #[decode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                        )]
                        #[encode_as_type(
                            crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                        )]
                        pub enum Origin {
                            #[codec(index = 0)]
                            StakingAdmin,
                            #[codec(index = 1)]
                            Treasurer,
                            #[codec(index = 2)]
                            FellowshipAdmin,
                            #[codec(index = 3)]
                            GeneralAdmin,
                            #[codec(index = 4)]
                            AuctionAdmin,
                            #[codec(index = 5)]
                            LeaseAdmin,
                            #[codec(index = 6)]
                            ReferendumCanceller,
                            #[codec(index = 7)]
                            ReferendumKiller,
                            #[codec(index = 8)]
                            SmallTipper,
                            #[codec(index = 9)]
                            BigTipper,
                            #[codec(index = 10)]
                            SmallSpender,
                            #[codec(index = 11)]
                            MediumSpender,
                            #[codec(index = 12)]
                            BigSpender,
                            #[codec(index = 13)]
                            WhitelistedCaller,
                            #[codec(index = 14)]
                            FellowshipInitiates,
                            #[codec(index = 15)]
                            Fellows,
                            #[codec(index = 16)]
                            FellowshipExperts,
                            #[codec(index = 17)]
                            FellowshipMasters,
                            #[codec(index = 18)]
                            Fellowship1Dan,
                            #[codec(index = 19)]
                            Fellowship2Dan,
                            #[codec(index = 20)]
                            Fellowship3Dan,
                            #[codec(index = 21)]
                            Fellowship4Dan,
                            #[codec(index = 22)]
                            Fellowship5Dan,
                            #[codec(index = 23)]
                            Fellowship6Dan,
                            #[codec(index = 24)]
                            Fellowship7Dan,
                            #[codec(index = 25)]
                            Fellowship8Dan,
                            #[codec(index = 26)]
                            Fellowship9Dan,
                        }
                    }
                }
            }
            pub mod validator_manager {
                use super::runtime_types;
                pub mod pallet {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."]
                    pub enum Call {
                        #[codec(index = 0)]
                        #[doc = "Add new validators to the set."]
                        #[doc = ""]
                        #[doc = "The new validators will be active from current session + 2."]
                        register_validators {
                            validators: ::subxt::ext::subxt_core::alloc::vec::Vec<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        },
                        #[codec(index = 1)]
                        #[doc = "Remove validators from the set."]
                        #[doc = ""]
                        #[doc = "The removed validators will be deactivated from current session + 2."]
                        deregister_validators {
                            validators: ::subxt::ext::subxt_core::alloc::vec::Vec<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    #[doc = "The `Event` enum of this pallet"]
                    pub enum Event {
                        #[codec(index = 0)]
                        #[doc = "New validators were added to the set."]
                        ValidatorsRegistered(
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        ),
                        #[codec(index = 1)]
                        #[doc = "Validators were removed from the set."]
                        ValidatorsDeregistered(
                            ::subxt::ext::subxt_core::alloc::vec::Vec<
                                ::subxt::ext::subxt_core::utils::AccountId32,
                            >,
                        ),
                    }
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum OriginCaller {
                # [codec (index = 0)] system (runtime_types :: frame_support :: dispatch :: RawOrigin < :: subxt :: ext :: subxt_core :: utils :: AccountId32 > ,) , # [codec (index = 43)] Origins (runtime_types :: rococo_runtime :: governance :: origins :: pallet_custom_origins :: Origin ,) , # [codec (index = 50)] ParachainsOrigin (runtime_types :: polkadot_runtime_parachains :: origin :: pallet :: Origin ,) , # [codec (index = 99)] XcmPallet (runtime_types :: pallet_xcm :: pallet :: Origin ,) , }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum ProxyType {
                #[codec(index = 0)]
                Any,
                #[codec(index = 1)]
                NonTransfer,
                #[codec(index = 2)]
                Governance,
                #[codec(index = 3)]
                IdentityJudgement,
                #[codec(index = 4)]
                CancelProxy,
                #[codec(index = 5)]
                Auction,
                #[codec(index = 6)]
                Society,
                #[codec(index = 7)]
                OnDemandOrdering,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Runtime;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeCall {
                #[codec(index = 0)]
                System(runtime_types::frame_system::pallet::Call),
                #[codec(index = 1)]
                Babe(runtime_types::pallet_babe::pallet::Call),
                #[codec(index = 2)]
                Timestamp(runtime_types::pallet_timestamp::pallet::Call),
                #[codec(index = 3)]
                Indices(runtime_types::pallet_indices::pallet::Call),
                #[codec(index = 4)]
                Balances(runtime_types::pallet_balances::pallet::Call),
                #[codec(index = 6)]
                Parameters(runtime_types::pallet_parameters::pallet::Call),
                #[codec(index = 8)]
                Session(runtime_types::pallet_session::pallet::Call),
                #[codec(index = 10)]
                Grandpa(runtime_types::pallet_grandpa::pallet::Call),
                #[codec(index = 18)]
                Treasury(runtime_types::pallet_treasury::pallet::Call),
                #[codec(index = 20)]
                ConvictionVoting(runtime_types::pallet_conviction_voting::pallet::Call),
                #[codec(index = 21)]
                Referenda(runtime_types::pallet_referenda::pallet::Call),
                #[codec(index = 22)]
                FellowshipCollective(runtime_types::pallet_ranked_collective::pallet::Call),
                #[codec(index = 23)]
                FellowshipReferenda(runtime_types::pallet_referenda::pallet::Call),
                #[codec(index = 44)]
                Whitelist(runtime_types::pallet_whitelist::pallet::Call),
                #[codec(index = 19)]
                Claims(runtime_types::polkadot_runtime_common::claims::pallet::Call),
                #[codec(index = 24)]
                Utility(runtime_types::pallet_utility::pallet::Call),
                #[codec(index = 25)]
                Identity(runtime_types::pallet_identity::pallet::Call),
                #[codec(index = 26)]
                Society(runtime_types::pallet_society::pallet::Call),
                #[codec(index = 27)]
                Recovery(runtime_types::pallet_recovery::pallet::Call),
                #[codec(index = 28)]
                Vesting(runtime_types::pallet_vesting::pallet::Call),
                #[codec(index = 29)]
                Scheduler(runtime_types::pallet_scheduler::pallet::Call),
                #[codec(index = 30)]
                Proxy(runtime_types::pallet_proxy::pallet::Call),
                #[codec(index = 31)]
                Multisig(runtime_types::pallet_multisig::pallet::Call),
                #[codec(index = 32)]
                Preimage(runtime_types::pallet_preimage::pallet::Call),
                #[codec(index = 39)]
                AssetRate(runtime_types::pallet_asset_rate::pallet::Call),
                #[codec(index = 35)]
                Bounties(runtime_types::pallet_bounties::pallet::Call),
                #[codec(index = 40)]
                ChildBounties(runtime_types::pallet_child_bounties::pallet::Call),
                #[codec(index = 38)]
                Nis(runtime_types::pallet_nis::pallet::Call),
                #[codec(index = 45)]
                NisCounterpartBalances(runtime_types::pallet_balances::pallet::Call),
                #[codec(index = 51)]
                Configuration(
                    runtime_types::polkadot_runtime_parachains::configuration::pallet::Call,
                ),
                #[codec(index = 52)]
                ParasShared(runtime_types::polkadot_runtime_parachains::shared::pallet::Call),
                #[codec(index = 53)]
                ParaInclusion(runtime_types::polkadot_runtime_parachains::inclusion::pallet::Call),
                #[codec(index = 54)]
                ParaInherent(
                    runtime_types::polkadot_runtime_parachains::paras_inherent::pallet::Call,
                ),
                #[codec(index = 56)]
                Paras(runtime_types::polkadot_runtime_parachains::paras::pallet::Call),
                #[codec(index = 57)]
                Initializer(runtime_types::polkadot_runtime_parachains::initializer::pallet::Call),
                #[codec(index = 60)]
                Hrmp(runtime_types::polkadot_runtime_parachains::hrmp::pallet::Call),
                #[codec(index = 62)]
                ParasDisputes(runtime_types::polkadot_runtime_parachains::disputes::pallet::Call),
                #[codec(index = 63)]
                ParasSlashing(
                    runtime_types::polkadot_runtime_parachains::disputes::slashing::pallet::Call,
                ),
                #[codec(index = 64)]
                MessageQueue(runtime_types::pallet_message_queue::pallet::Call),
                #[codec(index = 66)]
                OnDemandAssignmentProvider(
                    runtime_types::polkadot_runtime_parachains::on_demand::pallet::Call,
                ),
                #[codec(index = 70)]
                Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Call),
                #[codec(index = 71)]
                Slots(runtime_types::polkadot_runtime_common::slots::pallet::Call),
                #[codec(index = 72)]
                Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Call),
                #[codec(index = 73)]
                Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Call),
                #[codec(index = 74)]
                Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Call),
                #[codec(index = 98)]
                MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Call),
                #[codec(index = 99)]
                XcmPallet(runtime_types::pallet_xcm::pallet::Call),
                #[codec(index = 240)]
                Beefy(runtime_types::pallet_beefy::pallet::Call),
                #[codec(index = 248)]
                IdentityMigrator(
                    runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call,
                ),
                #[codec(index = 250)]
                ParasSudoWrapper(
                    runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Call,
                ),
                #[codec(index = 251)]
                AssignedSlots(runtime_types::polkadot_runtime_common::assigned_slots::pallet::Call),
                #[codec(index = 252)]
                ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Call),
                #[codec(index = 254)]
                StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Call),
                #[codec(index = 249)]
                RootTesting(runtime_types::pallet_root_testing::pallet::Call),
                #[codec(index = 255)]
                Sudo(runtime_types::pallet_sudo::pallet::Call),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeError {
                #[codec(index = 0)]
                System(runtime_types::frame_system::pallet::Error),
                #[codec(index = 1)]
                Babe(runtime_types::pallet_babe::pallet::Error),
                #[codec(index = 3)]
                Indices(runtime_types::pallet_indices::pallet::Error),
                #[codec(index = 4)]
                Balances(runtime_types::pallet_balances::pallet::Error),
                #[codec(index = 8)]
                Session(runtime_types::pallet_session::pallet::Error),
                #[codec(index = 10)]
                Grandpa(runtime_types::pallet_grandpa::pallet::Error),
                #[codec(index = 18)]
                Treasury(runtime_types::pallet_treasury::pallet::Error),
                #[codec(index = 20)]
                ConvictionVoting(runtime_types::pallet_conviction_voting::pallet::Error),
                #[codec(index = 21)]
                Referenda(runtime_types::pallet_referenda::pallet::Error),
                #[codec(index = 22)]
                FellowshipCollective(runtime_types::pallet_ranked_collective::pallet::Error),
                #[codec(index = 23)]
                FellowshipReferenda(runtime_types::pallet_referenda::pallet::Error),
                #[codec(index = 44)]
                Whitelist(runtime_types::pallet_whitelist::pallet::Error),
                #[codec(index = 19)]
                Claims(runtime_types::polkadot_runtime_common::claims::pallet::Error),
                #[codec(index = 24)]
                Utility(runtime_types::pallet_utility::pallet::Error),
                #[codec(index = 25)]
                Identity(runtime_types::pallet_identity::pallet::Error),
                #[codec(index = 26)]
                Society(runtime_types::pallet_society::pallet::Error),
                #[codec(index = 27)]
                Recovery(runtime_types::pallet_recovery::pallet::Error),
                #[codec(index = 28)]
                Vesting(runtime_types::pallet_vesting::pallet::Error),
                #[codec(index = 29)]
                Scheduler(runtime_types::pallet_scheduler::pallet::Error),
                #[codec(index = 30)]
                Proxy(runtime_types::pallet_proxy::pallet::Error),
                #[codec(index = 31)]
                Multisig(runtime_types::pallet_multisig::pallet::Error),
                #[codec(index = 32)]
                Preimage(runtime_types::pallet_preimage::pallet::Error),
                #[codec(index = 39)]
                AssetRate(runtime_types::pallet_asset_rate::pallet::Error),
                #[codec(index = 35)]
                Bounties(runtime_types::pallet_bounties::pallet::Error),
                #[codec(index = 40)]
                ChildBounties(runtime_types::pallet_child_bounties::pallet::Error),
                #[codec(index = 38)]
                Nis(runtime_types::pallet_nis::pallet::Error),
                #[codec(index = 45)]
                NisCounterpartBalances(runtime_types::pallet_balances::pallet::Error),
                #[codec(index = 51)]
                Configuration(
                    runtime_types::polkadot_runtime_parachains::configuration::pallet::Error,
                ),
                #[codec(index = 53)]
                ParaInclusion(runtime_types::polkadot_runtime_parachains::inclusion::pallet::Error),
                #[codec(index = 54)]
                ParaInherent(
                    runtime_types::polkadot_runtime_parachains::paras_inherent::pallet::Error,
                ),
                #[codec(index = 56)]
                Paras(runtime_types::polkadot_runtime_parachains::paras::pallet::Error),
                #[codec(index = 60)]
                Hrmp(runtime_types::polkadot_runtime_parachains::hrmp::pallet::Error),
                #[codec(index = 62)]
                ParasDisputes(runtime_types::polkadot_runtime_parachains::disputes::pallet::Error),
                #[codec(index = 63)]
                ParasSlashing(
                    runtime_types::polkadot_runtime_parachains::disputes::slashing::pallet::Error,
                ),
                #[codec(index = 64)]
                MessageQueue(runtime_types::pallet_message_queue::pallet::Error),
                #[codec(index = 66)]
                OnDemandAssignmentProvider(
                    runtime_types::polkadot_runtime_parachains::on_demand::pallet::Error,
                ),
                #[codec(index = 68)]
                CoretimeAssignmentProvider(
                    runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error,
                ),
                #[codec(index = 70)]
                Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Error),
                #[codec(index = 71)]
                Slots(runtime_types::polkadot_runtime_common::slots::pallet::Error),
                #[codec(index = 72)]
                Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Error),
                #[codec(index = 73)]
                Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Error),
                #[codec(index = 74)]
                Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Error),
                #[codec(index = 98)]
                MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Error),
                #[codec(index = 99)]
                XcmPallet(runtime_types::pallet_xcm::pallet::Error),
                #[codec(index = 240)]
                Beefy(runtime_types::pallet_beefy::pallet::Error),
                #[codec(index = 250)]
                ParasSudoWrapper(
                    runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Error,
                ),
                #[codec(index = 251)]
                AssignedSlots(
                    runtime_types::polkadot_runtime_common::assigned_slots::pallet::Error,
                ),
                #[codec(index = 254)]
                StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Error),
                #[codec(index = 255)]
                Sudo(runtime_types::pallet_sudo::pallet::Error),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeEvent {
                #[codec(index = 0)]
                System(runtime_types::frame_system::pallet::Event),
                #[codec(index = 3)]
                Indices(runtime_types::pallet_indices::pallet::Event),
                #[codec(index = 4)]
                Balances(runtime_types::pallet_balances::pallet::Event),
                #[codec(index = 6)]
                Parameters(runtime_types::pallet_parameters::pallet::Event),
                #[codec(index = 33)]
                TransactionPayment(runtime_types::pallet_transaction_payment::pallet::Event),
                #[codec(index = 7)]
                Offences(runtime_types::pallet_offences::pallet::Event),
                #[codec(index = 34)]
                Historical(runtime_types::pallet_session::historical::pallet::Event),
                #[codec(index = 8)]
                Session(runtime_types::pallet_session::pallet::Event),
                #[codec(index = 10)]
                Grandpa(runtime_types::pallet_grandpa::pallet::Event),
                #[codec(index = 18)]
                Treasury(runtime_types::pallet_treasury::pallet::Event),
                #[codec(index = 20)]
                ConvictionVoting(runtime_types::pallet_conviction_voting::pallet::Event),
                #[codec(index = 21)]
                Referenda(runtime_types::pallet_referenda::pallet::Event1),
                #[codec(index = 22)]
                FellowshipCollective(runtime_types::pallet_ranked_collective::pallet::Event),
                #[codec(index = 23)]
                FellowshipReferenda(runtime_types::pallet_referenda::pallet::Event2),
                #[codec(index = 44)]
                Whitelist(runtime_types::pallet_whitelist::pallet::Event),
                #[codec(index = 19)]
                Claims(runtime_types::polkadot_runtime_common::claims::pallet::Event),
                #[codec(index = 24)]
                Utility(runtime_types::pallet_utility::pallet::Event),
                #[codec(index = 25)]
                Identity(runtime_types::pallet_identity::pallet::Event),
                #[codec(index = 26)]
                Society(runtime_types::pallet_society::pallet::Event),
                #[codec(index = 27)]
                Recovery(runtime_types::pallet_recovery::pallet::Event),
                #[codec(index = 28)]
                Vesting(runtime_types::pallet_vesting::pallet::Event),
                #[codec(index = 29)]
                Scheduler(runtime_types::pallet_scheduler::pallet::Event),
                #[codec(index = 30)]
                Proxy(runtime_types::pallet_proxy::pallet::Event),
                #[codec(index = 31)]
                Multisig(runtime_types::pallet_multisig::pallet::Event),
                #[codec(index = 32)]
                Preimage(runtime_types::pallet_preimage::pallet::Event),
                #[codec(index = 39)]
                AssetRate(runtime_types::pallet_asset_rate::pallet::Event),
                #[codec(index = 35)]
                Bounties(runtime_types::pallet_bounties::pallet::Event),
                #[codec(index = 40)]
                ChildBounties(runtime_types::pallet_child_bounties::pallet::Event),
                #[codec(index = 38)]
                Nis(runtime_types::pallet_nis::pallet::Event),
                #[codec(index = 45)]
                NisCounterpartBalances(runtime_types::pallet_balances::pallet::Event),
                #[codec(index = 53)]
                ParaInclusion(runtime_types::polkadot_runtime_parachains::inclusion::pallet::Event),
                #[codec(index = 56)]
                Paras(runtime_types::polkadot_runtime_parachains::paras::pallet::Event),
                #[codec(index = 60)]
                Hrmp(runtime_types::polkadot_runtime_parachains::hrmp::pallet::Event),
                #[codec(index = 62)]
                ParasDisputes(runtime_types::polkadot_runtime_parachains::disputes::pallet::Event),
                #[codec(index = 64)]
                MessageQueue(runtime_types::pallet_message_queue::pallet::Event),
                #[codec(index = 66)]
                OnDemandAssignmentProvider(
                    runtime_types::polkadot_runtime_parachains::on_demand::pallet::Event,
                ),
                #[codec(index = 70)]
                Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Event),
                #[codec(index = 71)]
                Slots(runtime_types::polkadot_runtime_common::slots::pallet::Event),
                #[codec(index = 72)]
                Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Event),
                #[codec(index = 73)]
                Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Event),
                #[codec(index = 74)]
                Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Event),
                #[codec(index = 98)]
                MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Event),
                #[codec(index = 99)]
                XcmPallet(runtime_types::pallet_xcm::pallet::Event),
                #[codec(index = 248)]
                IdentityMigrator(
                    runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event,
                ),
                #[codec(index = 251)]
                AssignedSlots(
                    runtime_types::polkadot_runtime_common::assigned_slots::pallet::Event,
                ),
                #[codec(index = 252)]
                ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Event),
                #[codec(index = 254)]
                StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Event),
                #[codec(index = 249)]
                RootTesting(runtime_types::pallet_root_testing::pallet::Event),
                #[codec(index = 255)]
                Sudo(runtime_types::pallet_sudo::pallet::Event),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeHoldReason {
                #[codec(index = 8)]
                Session(runtime_types::pallet_session::pallet::HoldReason),
                #[codec(index = 32)]
                Preimage(runtime_types::pallet_preimage::pallet::HoldReason),
                #[codec(index = 38)]
                Nis(runtime_types::pallet_nis::pallet::HoldReason),
                #[codec(index = 99)]
                XcmPallet(runtime_types::pallet_xcm::pallet::HoldReason),
                #[codec(index = 254)]
                StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::HoldReason),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeParameters {
                #[codec(index = 0)]
                Nis(runtime_types::rococo_runtime::dynamic_params::nis::Parameters),
                #[codec(index = 1)]
                Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::Parameters),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeParametersKey {
                #[codec(index = 0)]
                Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersKey),
                #[codec(index = 1)]
                Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersKey),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum RuntimeParametersValue {
                #[codec(index = 0)]
                Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersValue),
                #[codec(index = 1)]
                Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersValue),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct SessionKeys {
                pub grandpa: runtime_types::sp_consensus_grandpa::app::Public,
                pub babe: runtime_types::sp_consensus_babe::app::Public,
                pub para_validator: runtime_types::polkadot_primitives::v8::validator_app::Public,
                pub para_assignment: runtime_types::polkadot_primitives::v8::assignment_app::Public,
                pub authority_discovery: runtime_types::sp_authority_discovery::app::Public,
                pub beefy: runtime_types::sp_consensus_beefy::ecdsa_crypto::Public,
            }
        }
        pub mod sp_arithmetic {
            use super::runtime_types;
            pub mod fixed_point {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct FixedI64(pub ::core::primitive::i64);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct FixedU128(pub ::core::primitive::u128);
            }
            pub mod per_things {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Perbill(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Permill(pub ::core::primitive::u32);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Perquintill(pub ::core::primitive::u64);
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum ArithmeticError {
                #[codec(index = 0)]
                Underflow,
                #[codec(index = 1)]
                Overflow,
                #[codec(index = 2)]
                DivisionByZero,
            }
        }
        pub mod sp_authority_discovery {
            use super::runtime_types;
            pub mod app {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Public(pub [::core::primitive::u8; 32usize]);
            }
        }
        pub mod sp_consensus_babe {
            use super::runtime_types;
            pub mod app {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Public(pub [::core::primitive::u8; 32usize]);
            }
            pub mod digests {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum NextConfigDescriptor {
                    #[codec(index = 1)]
                    V1 {
                        c: (::core::primitive::u64, ::core::primitive::u64),
                        allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum PreDigest {
                    #[codec(index = 1)]
                    Primary(runtime_types::sp_consensus_babe::digests::PrimaryPreDigest),
                    #[codec(index = 2)]
                    SecondaryPlain(
                        runtime_types::sp_consensus_babe::digests::SecondaryPlainPreDigest,
                    ),
                    #[codec(index = 3)]
                    SecondaryVRF(runtime_types::sp_consensus_babe::digests::SecondaryVRFPreDigest),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PrimaryPreDigest {
                    pub authority_index: ::core::primitive::u32,
                    pub slot: runtime_types::sp_consensus_slots::Slot,
                    pub vrf_signature: runtime_types::sp_core::sr25519::vrf::VrfSignature,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SecondaryPlainPreDigest {
                    pub authority_index: ::core::primitive::u32,
                    pub slot: runtime_types::sp_consensus_slots::Slot,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct SecondaryVRFPreDigest {
                    pub authority_index: ::core::primitive::u32,
                    pub slot: runtime_types::sp_consensus_slots::Slot,
                    pub vrf_signature: runtime_types::sp_core::sr25519::vrf::VrfSignature,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum AllowedSlots {
                #[codec(index = 0)]
                PrimarySlots,
                #[codec(index = 1)]
                PrimaryAndSecondaryPlainSlots,
                #[codec(index = 2)]
                PrimaryAndSecondaryVRFSlots,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct BabeConfiguration {
                pub slot_duration: ::core::primitive::u64,
                pub epoch_length: ::core::primitive::u64,
                pub c: (::core::primitive::u64, ::core::primitive::u64),
                pub authorities: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                    runtime_types::sp_consensus_babe::app::Public,
                    ::core::primitive::u64,
                )>,
                pub randomness: [::core::primitive::u8; 32usize],
                pub allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct BabeEpochConfiguration {
                pub c: (::core::primitive::u64, ::core::primitive::u64),
                pub allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Epoch {
                pub epoch_index: ::core::primitive::u64,
                pub start_slot: runtime_types::sp_consensus_slots::Slot,
                pub duration: ::core::primitive::u64,
                pub authorities: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                    runtime_types::sp_consensus_babe::app::Public,
                    ::core::primitive::u64,
                )>,
                pub randomness: [::core::primitive::u8; 32usize],
                pub config: runtime_types::sp_consensus_babe::BabeEpochConfiguration,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct OpaqueKeyOwnershipProof(
                pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            );
        }
        pub mod sp_consensus_beefy {
            use super::runtime_types;
            pub mod commitment {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Commitment<_0> {
                    pub payload: runtime_types::sp_consensus_beefy::payload::Payload,
                    pub block_number: _0,
                    pub validator_set_id: ::core::primitive::u64,
                }
            }
            pub mod ecdsa_crypto {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Public(pub [::core::primitive::u8; 33usize]);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Signature(pub [::core::primitive::u8; 65usize]);
            }
            pub mod mmr {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BeefyAuthoritySet<_0> {
                    pub id: ::core::primitive::u64,
                    pub len: ::core::primitive::u32,
                    pub keyset_commitment: _0,
                }
            }
            pub mod payload {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Payload(
                    pub  ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        [::core::primitive::u8; 2usize],
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    )>,
                );
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct DoubleVotingProof<_0, _1, _2> {
                pub first: runtime_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>,
                pub second: runtime_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ForkVotingProof<_0, _1, _2> {
                pub vote: runtime_types::sp_consensus_beefy::VoteMessage<
                    ::core::primitive::u32,
                    _1,
                    runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                >,
                pub ancestry_proof: _2,
                pub header: _0,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct FutureBlockVotingProof<_0, _1> {
                pub vote: runtime_types::sp_consensus_beefy::VoteMessage<
                    _0,
                    _1,
                    runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature,
                >,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ValidatorSet<_0> {
                pub validators: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                pub id: ::core::primitive::u64,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct VoteMessage<_0, _1, _2> {
                pub commitment: runtime_types::sp_consensus_beefy::commitment::Commitment<_0>,
                pub id: _1,
                pub signature: _2,
            }
        }
        pub mod sp_consensus_grandpa {
            use super::runtime_types;
            pub mod app {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Public(pub [::core::primitive::u8; 32usize]);
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Signature(pub [::core::primitive::u8; 64usize]);
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Equivocation<_0, _1> {
                #[codec(index = 0)]
                Prevote(
                    runtime_types::finality_grandpa::Equivocation<
                        runtime_types::sp_consensus_grandpa::app::Public,
                        runtime_types::finality_grandpa::Prevote<_0, _1>,
                        runtime_types::sp_consensus_grandpa::app::Signature,
                    >,
                ),
                #[codec(index = 1)]
                Precommit(
                    runtime_types::finality_grandpa::Equivocation<
                        runtime_types::sp_consensus_grandpa::app::Public,
                        runtime_types::finality_grandpa::Precommit<_0, _1>,
                        runtime_types::sp_consensus_grandpa::app::Signature,
                    >,
                ),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct EquivocationProof<_0, _1> {
                pub set_id: ::core::primitive::u64,
                pub equivocation: runtime_types::sp_consensus_grandpa::Equivocation<_0, _1>,
            }
        }
        pub mod sp_consensus_slots {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct EquivocationProof<_0, _1> {
                pub offender: _1,
                pub slot: runtime_types::sp_consensus_slots::Slot,
                pub first_header: _0,
                pub second_header: _0,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct Slot(pub ::core::primitive::u64);
        }
        pub mod sp_core {
            use super::runtime_types;
            pub mod crypto {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct KeyTypeId(pub [::core::primitive::u8; 4usize]);
            }
            pub mod sr25519 {
                use super::runtime_types;
                pub mod vrf {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct VrfSignature {
                        pub pre_output: [::core::primitive::u8; 32usize],
                        pub proof: [::core::primitive::u8; 64usize],
                    }
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct OpaqueMetadata(
                pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            );
        }
        pub mod sp_inherents {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct CheckInherentsResult {
                pub okay: ::core::primitive::bool,
                pub fatal_error: ::core::primitive::bool,
                pub errors: runtime_types::sp_inherents::InherentData,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct InherentData {
                pub data: ::subxt::ext::subxt_core::utils::KeyedVec<
                    [::core::primitive::u8; 8usize],
                    ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                >,
            }
        }
        pub mod sp_mmr_primitives {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct AncestryProof<_0> {
                pub prev_peaks: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                pub prev_leaf_count: ::core::primitive::u64,
                pub leaf_count: ::core::primitive::u64,
                pub items: ::subxt::ext::subxt_core::alloc::vec::Vec<(::core::primitive::u64, _0)>,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct EncodableOpaqueLeaf(
                pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            );
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum Error {
                #[codec(index = 0)]
                InvalidNumericOp,
                #[codec(index = 1)]
                Push,
                #[codec(index = 2)]
                GetRoot,
                #[codec(index = 3)]
                Commit,
                #[codec(index = 4)]
                GenerateProof,
                #[codec(index = 5)]
                Verify,
                #[codec(index = 6)]
                LeafNotFound,
                #[codec(index = 7)]
                PalletNotIncluded,
                #[codec(index = 8)]
                InvalidLeafIndex,
                #[codec(index = 9)]
                InvalidBestKnownBlock,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct LeafProof<_0> {
                pub leaf_indices: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u64>,
                pub leaf_count: ::core::primitive::u64,
                pub items: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
            }
        }
        pub mod sp_runtime {
            use super::runtime_types;
            pub mod generic {
                use super::runtime_types;
                pub mod block {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Block<_0, _1> {
                        pub header: _0,
                        pub extrinsics: ::subxt::ext::subxt_core::alloc::vec::Vec<_1>,
                    }
                }
                pub mod digest {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Digest {
                        pub logs: ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::sp_runtime::generic::digest::DigestItem,
                        >,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum DigestItem {
                        #[codec(index = 6)]
                        PreRuntime(
                            [::core::primitive::u8; 4usize],
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        ),
                        #[codec(index = 4)]
                        Consensus(
                            [::core::primitive::u8; 4usize],
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        ),
                        #[codec(index = 5)]
                        Seal(
                            [::core::primitive::u8; 4usize],
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        ),
                        #[codec(index = 0)]
                        Other(::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>),
                        #[codec(index = 8)]
                        RuntimeEnvironmentUpdated,
                    }
                }
                pub mod era {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Era {
                        #[codec(index = 0)]
                        Immortal,
                        #[codec(index = 1)]
                        Mortal1(::core::primitive::u8),
                        #[codec(index = 2)]
                        Mortal2(::core::primitive::u8),
                        #[codec(index = 3)]
                        Mortal3(::core::primitive::u8),
                        #[codec(index = 4)]
                        Mortal4(::core::primitive::u8),
                        #[codec(index = 5)]
                        Mortal5(::core::primitive::u8),
                        #[codec(index = 6)]
                        Mortal6(::core::primitive::u8),
                        #[codec(index = 7)]
                        Mortal7(::core::primitive::u8),
                        #[codec(index = 8)]
                        Mortal8(::core::primitive::u8),
                        #[codec(index = 9)]
                        Mortal9(::core::primitive::u8),
                        #[codec(index = 10)]
                        Mortal10(::core::primitive::u8),
                        #[codec(index = 11)]
                        Mortal11(::core::primitive::u8),
                        #[codec(index = 12)]
                        Mortal12(::core::primitive::u8),
                        #[codec(index = 13)]
                        Mortal13(::core::primitive::u8),
                        #[codec(index = 14)]
                        Mortal14(::core::primitive::u8),
                        #[codec(index = 15)]
                        Mortal15(::core::primitive::u8),
                        #[codec(index = 16)]
                        Mortal16(::core::primitive::u8),
                        #[codec(index = 17)]
                        Mortal17(::core::primitive::u8),
                        #[codec(index = 18)]
                        Mortal18(::core::primitive::u8),
                        #[codec(index = 19)]
                        Mortal19(::core::primitive::u8),
                        #[codec(index = 20)]
                        Mortal20(::core::primitive::u8),
                        #[codec(index = 21)]
                        Mortal21(::core::primitive::u8),
                        #[codec(index = 22)]
                        Mortal22(::core::primitive::u8),
                        #[codec(index = 23)]
                        Mortal23(::core::primitive::u8),
                        #[codec(index = 24)]
                        Mortal24(::core::primitive::u8),
                        #[codec(index = 25)]
                        Mortal25(::core::primitive::u8),
                        #[codec(index = 26)]
                        Mortal26(::core::primitive::u8),
                        #[codec(index = 27)]
                        Mortal27(::core::primitive::u8),
                        #[codec(index = 28)]
                        Mortal28(::core::primitive::u8),
                        #[codec(index = 29)]
                        Mortal29(::core::primitive::u8),
                        #[codec(index = 30)]
                        Mortal30(::core::primitive::u8),
                        #[codec(index = 31)]
                        Mortal31(::core::primitive::u8),
                        #[codec(index = 32)]
                        Mortal32(::core::primitive::u8),
                        #[codec(index = 33)]
                        Mortal33(::core::primitive::u8),
                        #[codec(index = 34)]
                        Mortal34(::core::primitive::u8),
                        #[codec(index = 35)]
                        Mortal35(::core::primitive::u8),
                        #[codec(index = 36)]
                        Mortal36(::core::primitive::u8),
                        #[codec(index = 37)]
                        Mortal37(::core::primitive::u8),
                        #[codec(index = 38)]
                        Mortal38(::core::primitive::u8),
                        #[codec(index = 39)]
                        Mortal39(::core::primitive::u8),
                        #[codec(index = 40)]
                        Mortal40(::core::primitive::u8),
                        #[codec(index = 41)]
                        Mortal41(::core::primitive::u8),
                        #[codec(index = 42)]
                        Mortal42(::core::primitive::u8),
                        #[codec(index = 43)]
                        Mortal43(::core::primitive::u8),
                        #[codec(index = 44)]
                        Mortal44(::core::primitive::u8),
                        #[codec(index = 45)]
                        Mortal45(::core::primitive::u8),
                        #[codec(index = 46)]
                        Mortal46(::core::primitive::u8),
                        #[codec(index = 47)]
                        Mortal47(::core::primitive::u8),
                        #[codec(index = 48)]
                        Mortal48(::core::primitive::u8),
                        #[codec(index = 49)]
                        Mortal49(::core::primitive::u8),
                        #[codec(index = 50)]
                        Mortal50(::core::primitive::u8),
                        #[codec(index = 51)]
                        Mortal51(::core::primitive::u8),
                        #[codec(index = 52)]
                        Mortal52(::core::primitive::u8),
                        #[codec(index = 53)]
                        Mortal53(::core::primitive::u8),
                        #[codec(index = 54)]
                        Mortal54(::core::primitive::u8),
                        #[codec(index = 55)]
                        Mortal55(::core::primitive::u8),
                        #[codec(index = 56)]
                        Mortal56(::core::primitive::u8),
                        #[codec(index = 57)]
                        Mortal57(::core::primitive::u8),
                        #[codec(index = 58)]
                        Mortal58(::core::primitive::u8),
                        #[codec(index = 59)]
                        Mortal59(::core::primitive::u8),
                        #[codec(index = 60)]
                        Mortal60(::core::primitive::u8),
                        #[codec(index = 61)]
                        Mortal61(::core::primitive::u8),
                        #[codec(index = 62)]
                        Mortal62(::core::primitive::u8),
                        #[codec(index = 63)]
                        Mortal63(::core::primitive::u8),
                        #[codec(index = 64)]
                        Mortal64(::core::primitive::u8),
                        #[codec(index = 65)]
                        Mortal65(::core::primitive::u8),
                        #[codec(index = 66)]
                        Mortal66(::core::primitive::u8),
                        #[codec(index = 67)]
                        Mortal67(::core::primitive::u8),
                        #[codec(index = 68)]
                        Mortal68(::core::primitive::u8),
                        #[codec(index = 69)]
                        Mortal69(::core::primitive::u8),
                        #[codec(index = 70)]
                        Mortal70(::core::primitive::u8),
                        #[codec(index = 71)]
                        Mortal71(::core::primitive::u8),
                        #[codec(index = 72)]
                        Mortal72(::core::primitive::u8),
                        #[codec(index = 73)]
                        Mortal73(::core::primitive::u8),
                        #[codec(index = 74)]
                        Mortal74(::core::primitive::u8),
                        #[codec(index = 75)]
                        Mortal75(::core::primitive::u8),
                        #[codec(index = 76)]
                        Mortal76(::core::primitive::u8),
                        #[codec(index = 77)]
                        Mortal77(::core::primitive::u8),
                        #[codec(index = 78)]
                        Mortal78(::core::primitive::u8),
                        #[codec(index = 79)]
                        Mortal79(::core::primitive::u8),
                        #[codec(index = 80)]
                        Mortal80(::core::primitive::u8),
                        #[codec(index = 81)]
                        Mortal81(::core::primitive::u8),
                        #[codec(index = 82)]
                        Mortal82(::core::primitive::u8),
                        #[codec(index = 83)]
                        Mortal83(::core::primitive::u8),
                        #[codec(index = 84)]
                        Mortal84(::core::primitive::u8),
                        #[codec(index = 85)]
                        Mortal85(::core::primitive::u8),
                        #[codec(index = 86)]
                        Mortal86(::core::primitive::u8),
                        #[codec(index = 87)]
                        Mortal87(::core::primitive::u8),
                        #[codec(index = 88)]
                        Mortal88(::core::primitive::u8),
                        #[codec(index = 89)]
                        Mortal89(::core::primitive::u8),
                        #[codec(index = 90)]
                        Mortal90(::core::primitive::u8),
                        #[codec(index = 91)]
                        Mortal91(::core::primitive::u8),
                        #[codec(index = 92)]
                        Mortal92(::core::primitive::u8),
                        #[codec(index = 93)]
                        Mortal93(::core::primitive::u8),
                        #[codec(index = 94)]
                        Mortal94(::core::primitive::u8),
                        #[codec(index = 95)]
                        Mortal95(::core::primitive::u8),
                        #[codec(index = 96)]
                        Mortal96(::core::primitive::u8),
                        #[codec(index = 97)]
                        Mortal97(::core::primitive::u8),
                        #[codec(index = 98)]
                        Mortal98(::core::primitive::u8),
                        #[codec(index = 99)]
                        Mortal99(::core::primitive::u8),
                        #[codec(index = 100)]
                        Mortal100(::core::primitive::u8),
                        #[codec(index = 101)]
                        Mortal101(::core::primitive::u8),
                        #[codec(index = 102)]
                        Mortal102(::core::primitive::u8),
                        #[codec(index = 103)]
                        Mortal103(::core::primitive::u8),
                        #[codec(index = 104)]
                        Mortal104(::core::primitive::u8),
                        #[codec(index = 105)]
                        Mortal105(::core::primitive::u8),
                        #[codec(index = 106)]
                        Mortal106(::core::primitive::u8),
                        #[codec(index = 107)]
                        Mortal107(::core::primitive::u8),
                        #[codec(index = 108)]
                        Mortal108(::core::primitive::u8),
                        #[codec(index = 109)]
                        Mortal109(::core::primitive::u8),
                        #[codec(index = 110)]
                        Mortal110(::core::primitive::u8),
                        #[codec(index = 111)]
                        Mortal111(::core::primitive::u8),
                        #[codec(index = 112)]
                        Mortal112(::core::primitive::u8),
                        #[codec(index = 113)]
                        Mortal113(::core::primitive::u8),
                        #[codec(index = 114)]
                        Mortal114(::core::primitive::u8),
                        #[codec(index = 115)]
                        Mortal115(::core::primitive::u8),
                        #[codec(index = 116)]
                        Mortal116(::core::primitive::u8),
                        #[codec(index = 117)]
                        Mortal117(::core::primitive::u8),
                        #[codec(index = 118)]
                        Mortal118(::core::primitive::u8),
                        #[codec(index = 119)]
                        Mortal119(::core::primitive::u8),
                        #[codec(index = 120)]
                        Mortal120(::core::primitive::u8),
                        #[codec(index = 121)]
                        Mortal121(::core::primitive::u8),
                        #[codec(index = 122)]
                        Mortal122(::core::primitive::u8),
                        #[codec(index = 123)]
                        Mortal123(::core::primitive::u8),
                        #[codec(index = 124)]
                        Mortal124(::core::primitive::u8),
                        #[codec(index = 125)]
                        Mortal125(::core::primitive::u8),
                        #[codec(index = 126)]
                        Mortal126(::core::primitive::u8),
                        #[codec(index = 127)]
                        Mortal127(::core::primitive::u8),
                        #[codec(index = 128)]
                        Mortal128(::core::primitive::u8),
                        #[codec(index = 129)]
                        Mortal129(::core::primitive::u8),
                        #[codec(index = 130)]
                        Mortal130(::core::primitive::u8),
                        #[codec(index = 131)]
                        Mortal131(::core::primitive::u8),
                        #[codec(index = 132)]
                        Mortal132(::core::primitive::u8),
                        #[codec(index = 133)]
                        Mortal133(::core::primitive::u8),
                        #[codec(index = 134)]
                        Mortal134(::core::primitive::u8),
                        #[codec(index = 135)]
                        Mortal135(::core::primitive::u8),
                        #[codec(index = 136)]
                        Mortal136(::core::primitive::u8),
                        #[codec(index = 137)]
                        Mortal137(::core::primitive::u8),
                        #[codec(index = 138)]
                        Mortal138(::core::primitive::u8),
                        #[codec(index = 139)]
                        Mortal139(::core::primitive::u8),
                        #[codec(index = 140)]
                        Mortal140(::core::primitive::u8),
                        #[codec(index = 141)]
                        Mortal141(::core::primitive::u8),
                        #[codec(index = 142)]
                        Mortal142(::core::primitive::u8),
                        #[codec(index = 143)]
                        Mortal143(::core::primitive::u8),
                        #[codec(index = 144)]
                        Mortal144(::core::primitive::u8),
                        #[codec(index = 145)]
                        Mortal145(::core::primitive::u8),
                        #[codec(index = 146)]
                        Mortal146(::core::primitive::u8),
                        #[codec(index = 147)]
                        Mortal147(::core::primitive::u8),
                        #[codec(index = 148)]
                        Mortal148(::core::primitive::u8),
                        #[codec(index = 149)]
                        Mortal149(::core::primitive::u8),
                        #[codec(index = 150)]
                        Mortal150(::core::primitive::u8),
                        #[codec(index = 151)]
                        Mortal151(::core::primitive::u8),
                        #[codec(index = 152)]
                        Mortal152(::core::primitive::u8),
                        #[codec(index = 153)]
                        Mortal153(::core::primitive::u8),
                        #[codec(index = 154)]
                        Mortal154(::core::primitive::u8),
                        #[codec(index = 155)]
                        Mortal155(::core::primitive::u8),
                        #[codec(index = 156)]
                        Mortal156(::core::primitive::u8),
                        #[codec(index = 157)]
                        Mortal157(::core::primitive::u8),
                        #[codec(index = 158)]
                        Mortal158(::core::primitive::u8),
                        #[codec(index = 159)]
                        Mortal159(::core::primitive::u8),
                        #[codec(index = 160)]
                        Mortal160(::core::primitive::u8),
                        #[codec(index = 161)]
                        Mortal161(::core::primitive::u8),
                        #[codec(index = 162)]
                        Mortal162(::core::primitive::u8),
                        #[codec(index = 163)]
                        Mortal163(::core::primitive::u8),
                        #[codec(index = 164)]
                        Mortal164(::core::primitive::u8),
                        #[codec(index = 165)]
                        Mortal165(::core::primitive::u8),
                        #[codec(index = 166)]
                        Mortal166(::core::primitive::u8),
                        #[codec(index = 167)]
                        Mortal167(::core::primitive::u8),
                        #[codec(index = 168)]
                        Mortal168(::core::primitive::u8),
                        #[codec(index = 169)]
                        Mortal169(::core::primitive::u8),
                        #[codec(index = 170)]
                        Mortal170(::core::primitive::u8),
                        #[codec(index = 171)]
                        Mortal171(::core::primitive::u8),
                        #[codec(index = 172)]
                        Mortal172(::core::primitive::u8),
                        #[codec(index = 173)]
                        Mortal173(::core::primitive::u8),
                        #[codec(index = 174)]
                        Mortal174(::core::primitive::u8),
                        #[codec(index = 175)]
                        Mortal175(::core::primitive::u8),
                        #[codec(index = 176)]
                        Mortal176(::core::primitive::u8),
                        #[codec(index = 177)]
                        Mortal177(::core::primitive::u8),
                        #[codec(index = 178)]
                        Mortal178(::core::primitive::u8),
                        #[codec(index = 179)]
                        Mortal179(::core::primitive::u8),
                        #[codec(index = 180)]
                        Mortal180(::core::primitive::u8),
                        #[codec(index = 181)]
                        Mortal181(::core::primitive::u8),
                        #[codec(index = 182)]
                        Mortal182(::core::primitive::u8),
                        #[codec(index = 183)]
                        Mortal183(::core::primitive::u8),
                        #[codec(index = 184)]
                        Mortal184(::core::primitive::u8),
                        #[codec(index = 185)]
                        Mortal185(::core::primitive::u8),
                        #[codec(index = 186)]
                        Mortal186(::core::primitive::u8),
                        #[codec(index = 187)]
                        Mortal187(::core::primitive::u8),
                        #[codec(index = 188)]
                        Mortal188(::core::primitive::u8),
                        #[codec(index = 189)]
                        Mortal189(::core::primitive::u8),
                        #[codec(index = 190)]
                        Mortal190(::core::primitive::u8),
                        #[codec(index = 191)]
                        Mortal191(::core::primitive::u8),
                        #[codec(index = 192)]
                        Mortal192(::core::primitive::u8),
                        #[codec(index = 193)]
                        Mortal193(::core::primitive::u8),
                        #[codec(index = 194)]
                        Mortal194(::core::primitive::u8),
                        #[codec(index = 195)]
                        Mortal195(::core::primitive::u8),
                        #[codec(index = 196)]
                        Mortal196(::core::primitive::u8),
                        #[codec(index = 197)]
                        Mortal197(::core::primitive::u8),
                        #[codec(index = 198)]
                        Mortal198(::core::primitive::u8),
                        #[codec(index = 199)]
                        Mortal199(::core::primitive::u8),
                        #[codec(index = 200)]
                        Mortal200(::core::primitive::u8),
                        #[codec(index = 201)]
                        Mortal201(::core::primitive::u8),
                        #[codec(index = 202)]
                        Mortal202(::core::primitive::u8),
                        #[codec(index = 203)]
                        Mortal203(::core::primitive::u8),
                        #[codec(index = 204)]
                        Mortal204(::core::primitive::u8),
                        #[codec(index = 205)]
                        Mortal205(::core::primitive::u8),
                        #[codec(index = 206)]
                        Mortal206(::core::primitive::u8),
                        #[codec(index = 207)]
                        Mortal207(::core::primitive::u8),
                        #[codec(index = 208)]
                        Mortal208(::core::primitive::u8),
                        #[codec(index = 209)]
                        Mortal209(::core::primitive::u8),
                        #[codec(index = 210)]
                        Mortal210(::core::primitive::u8),
                        #[codec(index = 211)]
                        Mortal211(::core::primitive::u8),
                        #[codec(index = 212)]
                        Mortal212(::core::primitive::u8),
                        #[codec(index = 213)]
                        Mortal213(::core::primitive::u8),
                        #[codec(index = 214)]
                        Mortal214(::core::primitive::u8),
                        #[codec(index = 215)]
                        Mortal215(::core::primitive::u8),
                        #[codec(index = 216)]
                        Mortal216(::core::primitive::u8),
                        #[codec(index = 217)]
                        Mortal217(::core::primitive::u8),
                        #[codec(index = 218)]
                        Mortal218(::core::primitive::u8),
                        #[codec(index = 219)]
                        Mortal219(::core::primitive::u8),
                        #[codec(index = 220)]
                        Mortal220(::core::primitive::u8),
                        #[codec(index = 221)]
                        Mortal221(::core::primitive::u8),
                        #[codec(index = 222)]
                        Mortal222(::core::primitive::u8),
                        #[codec(index = 223)]
                        Mortal223(::core::primitive::u8),
                        #[codec(index = 224)]
                        Mortal224(::core::primitive::u8),
                        #[codec(index = 225)]
                        Mortal225(::core::primitive::u8),
                        #[codec(index = 226)]
                        Mortal226(::core::primitive::u8),
                        #[codec(index = 227)]
                        Mortal227(::core::primitive::u8),
                        #[codec(index = 228)]
                        Mortal228(::core::primitive::u8),
                        #[codec(index = 229)]
                        Mortal229(::core::primitive::u8),
                        #[codec(index = 230)]
                        Mortal230(::core::primitive::u8),
                        #[codec(index = 231)]
                        Mortal231(::core::primitive::u8),
                        #[codec(index = 232)]
                        Mortal232(::core::primitive::u8),
                        #[codec(index = 233)]
                        Mortal233(::core::primitive::u8),
                        #[codec(index = 234)]
                        Mortal234(::core::primitive::u8),
                        #[codec(index = 235)]
                        Mortal235(::core::primitive::u8),
                        #[codec(index = 236)]
                        Mortal236(::core::primitive::u8),
                        #[codec(index = 237)]
                        Mortal237(::core::primitive::u8),
                        #[codec(index = 238)]
                        Mortal238(::core::primitive::u8),
                        #[codec(index = 239)]
                        Mortal239(::core::primitive::u8),
                        #[codec(index = 240)]
                        Mortal240(::core::primitive::u8),
                        #[codec(index = 241)]
                        Mortal241(::core::primitive::u8),
                        #[codec(index = 242)]
                        Mortal242(::core::primitive::u8),
                        #[codec(index = 243)]
                        Mortal243(::core::primitive::u8),
                        #[codec(index = 244)]
                        Mortal244(::core::primitive::u8),
                        #[codec(index = 245)]
                        Mortal245(::core::primitive::u8),
                        #[codec(index = 246)]
                        Mortal246(::core::primitive::u8),
                        #[codec(index = 247)]
                        Mortal247(::core::primitive::u8),
                        #[codec(index = 248)]
                        Mortal248(::core::primitive::u8),
                        #[codec(index = 249)]
                        Mortal249(::core::primitive::u8),
                        #[codec(index = 250)]
                        Mortal250(::core::primitive::u8),
                        #[codec(index = 251)]
                        Mortal251(::core::primitive::u8),
                        #[codec(index = 252)]
                        Mortal252(::core::primitive::u8),
                        #[codec(index = 253)]
                        Mortal253(::core::primitive::u8),
                        #[codec(index = 254)]
                        Mortal254(::core::primitive::u8),
                        #[codec(index = 255)]
                        Mortal255(::core::primitive::u8),
                    }
                }
                pub mod header {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Header<_0> {
                        pub parent_hash: ::subxt::ext::subxt_core::utils::H256,
                        #[codec(compact)]
                        pub number: _0,
                        pub state_root: ::subxt::ext::subxt_core::utils::H256,
                        pub extrinsics_root: ::subxt::ext::subxt_core::utils::H256,
                        pub digest: runtime_types::sp_runtime::generic::digest::Digest,
                    }
                }
            }
            pub mod proving_trie {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum TrieError {
                    #[codec(index = 0)]
                    InvalidStateRoot,
                    #[codec(index = 1)]
                    IncompleteDatabase,
                    #[codec(index = 2)]
                    ValueAtIncompleteKey,
                    #[codec(index = 3)]
                    DecoderError,
                    #[codec(index = 4)]
                    InvalidHash,
                    #[codec(index = 5)]
                    DuplicateKey,
                    #[codec(index = 6)]
                    ExtraneousNode,
                    #[codec(index = 7)]
                    ExtraneousValue,
                    #[codec(index = 8)]
                    ExtraneousHashReference,
                    #[codec(index = 9)]
                    InvalidChildReference,
                    #[codec(index = 10)]
                    ValueMismatch,
                    #[codec(index = 11)]
                    IncompleteProof,
                    #[codec(index = 12)]
                    RootMismatch,
                    #[codec(index = 13)]
                    DecodeError,
                }
            }
            pub mod traits {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct BlakeTwo256;
            }
            pub mod transaction_validity {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum InvalidTransaction {
                    #[codec(index = 0)]
                    Call,
                    #[codec(index = 1)]
                    Payment,
                    #[codec(index = 2)]
                    Future,
                    #[codec(index = 3)]
                    Stale,
                    #[codec(index = 4)]
                    BadProof,
                    #[codec(index = 5)]
                    AncientBirthBlock,
                    #[codec(index = 6)]
                    ExhaustsResources,
                    #[codec(index = 7)]
                    Custom(::core::primitive::u8),
                    #[codec(index = 8)]
                    BadMandatory,
                    #[codec(index = 9)]
                    MandatoryValidation,
                    #[codec(index = 10)]
                    BadSigner,
                    #[codec(index = 11)]
                    IndeterminateImplicit,
                    #[codec(index = 12)]
                    UnknownOrigin,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum TransactionSource {
                    #[codec(index = 0)]
                    InBlock,
                    #[codec(index = 1)]
                    Local,
                    #[codec(index = 2)]
                    External,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum TransactionValidityError {
                    #[codec(index = 0)]
                    Invalid(runtime_types::sp_runtime::transaction_validity::InvalidTransaction),
                    #[codec(index = 1)]
                    Unknown(runtime_types::sp_runtime::transaction_validity::UnknownTransaction),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum UnknownTransaction {
                    #[codec(index = 0)]
                    CannotLookup,
                    #[codec(index = 1)]
                    NoUnsignedValidator,
                    #[codec(index = 2)]
                    Custom(::core::primitive::u8),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct ValidTransaction {
                    pub priority: ::core::primitive::u64,
                    pub requires: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >,
                    pub provides: ::subxt::ext::subxt_core::alloc::vec::Vec<
                        ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                    >,
                    pub longevity: ::core::primitive::u64,
                    pub propagate: ::core::primitive::bool,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum DispatchError {
                #[codec(index = 0)]
                Other,
                #[codec(index = 1)]
                CannotLookup,
                #[codec(index = 2)]
                BadOrigin,
                #[codec(index = 3)]
                Module(runtime_types::sp_runtime::ModuleError),
                #[codec(index = 4)]
                ConsumerRemaining,
                #[codec(index = 5)]
                NoProviders,
                #[codec(index = 6)]
                TooManyConsumers,
                #[codec(index = 7)]
                Token(runtime_types::sp_runtime::TokenError),
                #[codec(index = 8)]
                Arithmetic(runtime_types::sp_arithmetic::ArithmeticError),
                #[codec(index = 9)]
                Transactional(runtime_types::sp_runtime::TransactionalError),
                #[codec(index = 10)]
                Exhausted,
                #[codec(index = 11)]
                Corruption,
                #[codec(index = 12)]
                Unavailable,
                #[codec(index = 13)]
                RootNotAllowed,
                #[codec(index = 14)]
                Trie(runtime_types::sp_runtime::proving_trie::TrieError),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct DispatchErrorWithPostInfo<_0> {
                pub post_info: _0,
                pub error: runtime_types::sp_runtime::DispatchError,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum ExtrinsicInclusionMode {
                #[codec(index = 0)]
                AllExtrinsics,
                #[codec(index = 1)]
                OnlyInherents,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct ModuleError {
                pub index: ::core::primitive::u8,
                pub error: [::core::primitive::u8; 4usize],
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum MultiSignature {
                #[codec(index = 0)]
                Ed25519([::core::primitive::u8; 64usize]),
                #[codec(index = 1)]
                Sr25519([::core::primitive::u8; 64usize]),
                #[codec(index = 2)]
                Ecdsa([::core::primitive::u8; 65usize]),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum MultiSigner {
                #[codec(index = 0)]
                Ed25519([::core::primitive::u8; 32usize]),
                #[codec(index = 1)]
                Sr25519([::core::primitive::u8; 32usize]),
                #[codec(index = 2)]
                Ecdsa([::core::primitive::u8; 33usize]),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct OpaqueValue(
                pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
            );
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum TokenError {
                #[codec(index = 0)]
                FundsUnavailable,
                #[codec(index = 1)]
                OnlyProvider,
                #[codec(index = 2)]
                BelowMinimum,
                #[codec(index = 3)]
                CannotCreate,
                #[codec(index = 4)]
                UnknownAsset,
                #[codec(index = 5)]
                Frozen,
                #[codec(index = 6)]
                Unsupported,
                #[codec(index = 7)]
                CannotCreateHold,
                #[codec(index = 8)]
                NotExpendable,
                #[codec(index = 9)]
                Blocked,
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum TransactionalError {
                #[codec(index = 0)]
                LimitReached,
                #[codec(index = 1)]
                NoLayer,
            }
        }
        pub mod sp_session {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct MembershipProof {
                pub session: ::core::primitive::u32,
                pub trie_nodes: ::subxt::ext::subxt_core::alloc::vec::Vec<
                    ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                >,
                pub validator_count: ::core::primitive::u32,
            }
        }
        pub mod sp_staking {
            use super::runtime_types;
            pub mod offence {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OffenceDetails<_0, _1> {
                    pub offender: _1,
                    pub reporters: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OffenceSeverity(pub runtime_types::sp_arithmetic::per_things::Perbill);
            }
        }
        pub mod sp_version {
            use super::runtime_types;
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct RuntimeVersion {
                pub spec_name: ::subxt::ext::subxt_core::alloc::string::String,
                pub impl_name: ::subxt::ext::subxt_core::alloc::string::String,
                pub authoring_version: ::core::primitive::u32,
                pub spec_version: ::core::primitive::u32,
                pub impl_version: ::core::primitive::u32,
                pub apis: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                    [::core::primitive::u8; 8usize],
                    ::core::primitive::u32,
                )>,
                pub transaction_version: ::core::primitive::u32,
                pub system_version: ::core::primitive::u8,
            }
        }
        pub mod sp_weights {
            use super::runtime_types;
            pub mod weight_v2 {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Weight {
                    #[codec(compact)]
                    pub ref_time: ::core::primitive::u64,
                    #[codec(compact)]
                    pub proof_size: ::core::primitive::u64,
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub struct RuntimeDbWeight {
                pub read: ::core::primitive::u64,
                pub write: ::core::primitive::u64,
            }
        }
        pub mod staging_xcm {
            use super::runtime_types;
            pub mod v3 {
                use super::runtime_types;
                pub mod multilocation {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct MultiLocation {
                        pub parents: ::core::primitive::u8,
                        pub interior: runtime_types::xcm::v3::junctions::Junctions,
                    }
                }
            }
            pub mod v4 {
                use super::runtime_types;
                pub mod asset {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Asset {
                        pub id: runtime_types::staging_xcm::v4::asset::AssetId,
                        pub fun: runtime_types::staging_xcm::v4::asset::Fungibility,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetFilter {
                        #[codec(index = 0)]
                        Definite(runtime_types::staging_xcm::v4::asset::Assets),
                        #[codec(index = 1)]
                        Wild(runtime_types::staging_xcm::v4::asset::WildAsset),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct AssetId(pub runtime_types::staging_xcm::v4::location::Location);
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetInstance {
                        #[codec(index = 0)]
                        Undefined,
                        #[codec(index = 1)]
                        Index(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 2)]
                        Array4([::core::primitive::u8; 4usize]),
                        #[codec(index = 3)]
                        Array8([::core::primitive::u8; 8usize]),
                        #[codec(index = 4)]
                        Array16([::core::primitive::u8; 16usize]),
                        #[codec(index = 5)]
                        Array32([::core::primitive::u8; 32usize]),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Assets(
                        pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::staging_xcm::v4::asset::Asset,
                        >,
                    );
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Fungibility {
                        #[codec(index = 0)]
                        Fungible(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 1)]
                        NonFungible(runtime_types::staging_xcm::v4::asset::AssetInstance),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildAsset {
                        #[codec(index = 0)]
                        All,
                        #[codec(index = 1)]
                        AllOf {
                            id: runtime_types::staging_xcm::v4::asset::AssetId,
                            fun: runtime_types::staging_xcm::v4::asset::WildFungibility,
                        },
                        #[codec(index = 2)]
                        AllCounted(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 3)]
                        AllOfCounted {
                            id: runtime_types::staging_xcm::v4::asset::AssetId,
                            fun: runtime_types::staging_xcm::v4::asset::WildFungibility,
                            #[codec(compact)]
                            count: ::core::primitive::u32,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildFungibility {
                        #[codec(index = 0)]
                        Fungible,
                        #[codec(index = 1)]
                        NonFungible,
                    }
                }
                pub mod junction {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junction {
                        #[codec(index = 0)]
                        Parachain(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 1)]
                        AccountId32 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v4::junction::NetworkId,
                            >,
                            id: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        AccountIndex64 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v4::junction::NetworkId,
                            >,
                            #[codec(compact)]
                            index: ::core::primitive::u64,
                        },
                        #[codec(index = 3)]
                        AccountKey20 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v4::junction::NetworkId,
                            >,
                            key: [::core::primitive::u8; 20usize],
                        },
                        #[codec(index = 4)]
                        PalletInstance(::core::primitive::u8),
                        #[codec(index = 5)]
                        GeneralIndex(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 6)]
                        GeneralKey {
                            length: ::core::primitive::u8,
                            data: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 7)]
                        OnlyChild,
                        #[codec(index = 8)]
                        Plurality {
                            id: runtime_types::xcm::v3::junction::BodyId,
                            part: runtime_types::xcm::v3::junction::BodyPart,
                        },
                        #[codec(index = 9)]
                        GlobalConsensus(runtime_types::staging_xcm::v4::junction::NetworkId),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum NetworkId {
                        #[codec(index = 0)]
                        ByGenesis([::core::primitive::u8; 32usize]),
                        #[codec(index = 1)]
                        ByFork {
                            block_number: ::core::primitive::u64,
                            block_hash: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        Polkadot,
                        #[codec(index = 3)]
                        Kusama,
                        #[codec(index = 4)]
                        Westend,
                        #[codec(index = 5)]
                        Rococo,
                        #[codec(index = 6)]
                        Wococo,
                        #[codec(index = 7)]
                        Ethereum {
                            #[codec(compact)]
                            chain_id: ::core::primitive::u64,
                        },
                        #[codec(index = 8)]
                        BitcoinCore,
                        #[codec(index = 9)]
                        BitcoinCash,
                        #[codec(index = 10)]
                        PolkadotBulletin,
                    }
                }
                pub mod junctions {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junctions {
                        #[codec(index = 0)]
                        Here,
                        #[codec(index = 1)]
                        X1([runtime_types::staging_xcm::v4::junction::Junction; 1usize]),
                        #[codec(index = 2)]
                        X2([runtime_types::staging_xcm::v4::junction::Junction; 2usize]),
                        #[codec(index = 3)]
                        X3([runtime_types::staging_xcm::v4::junction::Junction; 3usize]),
                        #[codec(index = 4)]
                        X4([runtime_types::staging_xcm::v4::junction::Junction; 4usize]),
                        #[codec(index = 5)]
                        X5([runtime_types::staging_xcm::v4::junction::Junction; 5usize]),
                        #[codec(index = 6)]
                        X6([runtime_types::staging_xcm::v4::junction::Junction; 6usize]),
                        #[codec(index = 7)]
                        X7([runtime_types::staging_xcm::v4::junction::Junction; 7usize]),
                        #[codec(index = 8)]
                        X8([runtime_types::staging_xcm::v4::junction::Junction; 8usize]),
                    }
                }
                pub mod location {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Location {
                        pub parents: ::core::primitive::u8,
                        pub interior: runtime_types::staging_xcm::v4::junctions::Junctions,
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Instruction {
                    #[codec(index = 0)]
                    WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 1)]
                    ReserveAssetDeposited(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 2)]
                    ReceiveTeleportedAsset(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 3)]
                    QueryResponse {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        response: runtime_types::staging_xcm::v4::Response,
                        max_weight: runtime_types::sp_weights::weight_v2::Weight,
                        querier: ::core::option::Option<
                            runtime_types::staging_xcm::v4::location::Location,
                        >,
                    },
                    #[codec(index = 4)]
                    TransferAsset {
                        assets: runtime_types::staging_xcm::v4::asset::Assets,
                        beneficiary: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 5)]
                    TransferReserveAsset {
                        assets: runtime_types::staging_xcm::v4::asset::Assets,
                        dest: runtime_types::staging_xcm::v4::location::Location,
                        xcm: runtime_types::staging_xcm::v4::Xcm,
                    },
                    #[codec(index = 6)]
                    Transact {
                        origin_kind: runtime_types::xcm::v3::OriginKind,
                        require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight,
                        call: runtime_types::xcm::double_encoded::DoubleEncoded,
                    },
                    #[codec(index = 7)]
                    HrmpNewChannelOpenRequest {
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        max_message_size: ::core::primitive::u32,
                        #[codec(compact)]
                        max_capacity: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    HrmpChannelAccepted {
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 9)]
                    HrmpChannelClosing {
                        #[codec(compact)]
                        initiator: ::core::primitive::u32,
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 10)]
                    ClearOrigin,
                    #[codec(index = 11)]
                    DescendOrigin(runtime_types::staging_xcm::v4::junctions::Junctions),
                    #[codec(index = 12)]
                    ReportError(runtime_types::staging_xcm::v4::QueryResponseInfo),
                    #[codec(index = 13)]
                    DepositAsset {
                        assets: runtime_types::staging_xcm::v4::asset::AssetFilter,
                        beneficiary: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 14)]
                    DepositReserveAsset {
                        assets: runtime_types::staging_xcm::v4::asset::AssetFilter,
                        dest: runtime_types::staging_xcm::v4::location::Location,
                        xcm: runtime_types::staging_xcm::v4::Xcm,
                    },
                    #[codec(index = 15)]
                    ExchangeAsset {
                        give: runtime_types::staging_xcm::v4::asset::AssetFilter,
                        want: runtime_types::staging_xcm::v4::asset::Assets,
                        maximal: ::core::primitive::bool,
                    },
                    #[codec(index = 16)]
                    InitiateReserveWithdraw {
                        assets: runtime_types::staging_xcm::v4::asset::AssetFilter,
                        reserve: runtime_types::staging_xcm::v4::location::Location,
                        xcm: runtime_types::staging_xcm::v4::Xcm,
                    },
                    #[codec(index = 17)]
                    InitiateTeleport {
                        assets: runtime_types::staging_xcm::v4::asset::AssetFilter,
                        dest: runtime_types::staging_xcm::v4::location::Location,
                        xcm: runtime_types::staging_xcm::v4::Xcm,
                    },
                    #[codec(index = 18)]
                    ReportHolding {
                        response_info: runtime_types::staging_xcm::v4::QueryResponseInfo,
                        assets: runtime_types::staging_xcm::v4::asset::AssetFilter,
                    },
                    #[codec(index = 19)]
                    BuyExecution {
                        fees: runtime_types::staging_xcm::v4::asset::Asset,
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                    },
                    #[codec(index = 20)]
                    RefundSurplus,
                    #[codec(index = 21)]
                    SetErrorHandler(runtime_types::staging_xcm::v4::Xcm),
                    #[codec(index = 22)]
                    SetAppendix(runtime_types::staging_xcm::v4::Xcm),
                    #[codec(index = 23)]
                    ClearError,
                    #[codec(index = 24)]
                    ClaimAsset {
                        assets: runtime_types::staging_xcm::v4::asset::Assets,
                        ticket: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 25)]
                    Trap(#[codec(compact)] ::core::primitive::u64),
                    #[codec(index = 26)]
                    SubscribeVersion {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        max_response_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 27)]
                    UnsubscribeVersion,
                    #[codec(index = 28)]
                    BurnAsset(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 29)]
                    ExpectAsset(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 30)]
                    ExpectOrigin(
                        ::core::option::Option<runtime_types::staging_xcm::v4::location::Location>,
                    ),
                    #[codec(index = 31)]
                    ExpectError(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v3::traits::Error,
                        )>,
                    ),
                    #[codec(index = 32)]
                    ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode),
                    #[codec(index = 33)]
                    QueryPallet {
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        response_info: runtime_types::staging_xcm::v4::QueryResponseInfo,
                    },
                    #[codec(index = 34)]
                    ExpectPallet {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        #[codec(compact)]
                        crate_major: ::core::primitive::u32,
                        #[codec(compact)]
                        min_crate_minor: ::core::primitive::u32,
                    },
                    #[codec(index = 35)]
                    ReportTransactStatus(runtime_types::staging_xcm::v4::QueryResponseInfo),
                    #[codec(index = 36)]
                    ClearTransactStatus,
                    #[codec(index = 37)]
                    UniversalOrigin(runtime_types::staging_xcm::v4::junction::Junction),
                    #[codec(index = 38)]
                    ExportMessage {
                        network: runtime_types::staging_xcm::v4::junction::NetworkId,
                        destination: runtime_types::staging_xcm::v4::junctions::Junctions,
                        xcm: runtime_types::staging_xcm::v4::Xcm,
                    },
                    #[codec(index = 39)]
                    LockAsset {
                        asset: runtime_types::staging_xcm::v4::asset::Asset,
                        unlocker: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 40)]
                    UnlockAsset {
                        asset: runtime_types::staging_xcm::v4::asset::Asset,
                        target: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 41)]
                    NoteUnlockable {
                        asset: runtime_types::staging_xcm::v4::asset::Asset,
                        owner: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 42)]
                    RequestUnlock {
                        asset: runtime_types::staging_xcm::v4::asset::Asset,
                        locker: runtime_types::staging_xcm::v4::location::Location,
                    },
                    #[codec(index = 43)]
                    SetFeesMode {
                        jit_withdraw: ::core::primitive::bool,
                    },
                    #[codec(index = 44)]
                    SetTopic([::core::primitive::u8; 32usize]),
                    #[codec(index = 45)]
                    ClearTopic,
                    #[codec(index = 46)]
                    AliasOrigin(runtime_types::staging_xcm::v4::location::Location),
                    #[codec(index = 47)]
                    UnpaidExecution {
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                        check_origin: ::core::option::Option<
                            runtime_types::staging_xcm::v4::location::Location,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PalletInfo {
                    #[codec(compact)]
                    pub index: ::core::primitive::u32,
                    pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    #[codec(compact)]
                    pub major: ::core::primitive::u32,
                    #[codec(compact)]
                    pub minor: ::core::primitive::u32,
                    #[codec(compact)]
                    pub patch: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryResponseInfo {
                    pub destination: runtime_types::staging_xcm::v4::location::Location,
                    #[codec(compact)]
                    pub query_id: ::core::primitive::u64,
                    pub max_weight: runtime_types::sp_weights::weight_v2::Weight,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Response {
                    #[codec(index = 0)]
                    Null,
                    #[codec(index = 1)]
                    Assets(runtime_types::staging_xcm::v4::asset::Assets),
                    #[codec(index = 2)]
                    ExecutionResult(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v3::traits::Error,
                        )>,
                    ),
                    #[codec(index = 3)]
                    Version(::core::primitive::u32),
                    #[codec(index = 4)]
                    PalletsInfo(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::staging_xcm::v4::PalletInfo,
                        >,
                    ),
                    #[codec(index = 5)]
                    DispatchResult(runtime_types::xcm::v3::MaybeErrorCode),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Xcm(
                    pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::staging_xcm::v4::Instruction,
                    >,
                );
            }
            pub mod v5 {
                use super::runtime_types;
                pub mod asset {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Asset {
                        pub id: runtime_types::staging_xcm::v5::asset::AssetId,
                        pub fun: runtime_types::staging_xcm::v5::asset::Fungibility,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetFilter {
                        #[codec(index = 0)]
                        Definite(runtime_types::staging_xcm::v5::asset::Assets),
                        #[codec(index = 1)]
                        Wild(runtime_types::staging_xcm::v5::asset::WildAsset),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct AssetId(pub runtime_types::staging_xcm::v5::location::Location);
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetInstance {
                        #[codec(index = 0)]
                        Undefined,
                        #[codec(index = 1)]
                        Index(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 2)]
                        Array4([::core::primitive::u8; 4usize]),
                        #[codec(index = 3)]
                        Array8([::core::primitive::u8; 8usize]),
                        #[codec(index = 4)]
                        Array16([::core::primitive::u8; 16usize]),
                        #[codec(index = 5)]
                        Array32([::core::primitive::u8; 32usize]),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetTransferFilter {
                        #[codec(index = 0)]
                        Teleport(runtime_types::staging_xcm::v5::asset::AssetFilter),
                        #[codec(index = 1)]
                        ReserveDeposit(runtime_types::staging_xcm::v5::asset::AssetFilter),
                        #[codec(index = 2)]
                        ReserveWithdraw(runtime_types::staging_xcm::v5::asset::AssetFilter),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Assets(
                        pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::staging_xcm::v5::asset::Asset,
                        >,
                    );
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Fungibility {
                        #[codec(index = 0)]
                        Fungible(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 1)]
                        NonFungible(runtime_types::staging_xcm::v5::asset::AssetInstance),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildAsset {
                        #[codec(index = 0)]
                        All,
                        #[codec(index = 1)]
                        AllOf {
                            id: runtime_types::staging_xcm::v5::asset::AssetId,
                            fun: runtime_types::staging_xcm::v5::asset::WildFungibility,
                        },
                        #[codec(index = 2)]
                        AllCounted(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 3)]
                        AllOfCounted {
                            id: runtime_types::staging_xcm::v5::asset::AssetId,
                            fun: runtime_types::staging_xcm::v5::asset::WildFungibility,
                            #[codec(compact)]
                            count: ::core::primitive::u32,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildFungibility {
                        #[codec(index = 0)]
                        Fungible,
                        #[codec(index = 1)]
                        NonFungible,
                    }
                }
                pub mod junction {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junction {
                        #[codec(index = 0)]
                        Parachain(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 1)]
                        AccountId32 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v5::junction::NetworkId,
                            >,
                            id: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        AccountIndex64 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v5::junction::NetworkId,
                            >,
                            #[codec(compact)]
                            index: ::core::primitive::u64,
                        },
                        #[codec(index = 3)]
                        AccountKey20 {
                            network: ::core::option::Option<
                                runtime_types::staging_xcm::v5::junction::NetworkId,
                            >,
                            key: [::core::primitive::u8; 20usize],
                        },
                        #[codec(index = 4)]
                        PalletInstance(::core::primitive::u8),
                        #[codec(index = 5)]
                        GeneralIndex(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 6)]
                        GeneralKey {
                            length: ::core::primitive::u8,
                            data: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 7)]
                        OnlyChild,
                        #[codec(index = 8)]
                        Plurality {
                            id: runtime_types::xcm::v3::junction::BodyId,
                            part: runtime_types::xcm::v3::junction::BodyPart,
                        },
                        #[codec(index = 9)]
                        GlobalConsensus(runtime_types::staging_xcm::v5::junction::NetworkId),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum NetworkId {
                        #[codec(index = 0)]
                        ByGenesis([::core::primitive::u8; 32usize]),
                        #[codec(index = 1)]
                        ByFork {
                            block_number: ::core::primitive::u64,
                            block_hash: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        Polkadot,
                        #[codec(index = 3)]
                        Kusama,
                        #[codec(index = 7)]
                        Ethereum {
                            #[codec(compact)]
                            chain_id: ::core::primitive::u64,
                        },
                        #[codec(index = 8)]
                        BitcoinCore,
                        #[codec(index = 9)]
                        BitcoinCash,
                        #[codec(index = 10)]
                        PolkadotBulletin,
                    }
                }
                pub mod junctions {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junctions {
                        #[codec(index = 0)]
                        Here,
                        #[codec(index = 1)]
                        X1([runtime_types::staging_xcm::v5::junction::Junction; 1usize]),
                        #[codec(index = 2)]
                        X2([runtime_types::staging_xcm::v5::junction::Junction; 2usize]),
                        #[codec(index = 3)]
                        X3([runtime_types::staging_xcm::v5::junction::Junction; 3usize]),
                        #[codec(index = 4)]
                        X4([runtime_types::staging_xcm::v5::junction::Junction; 4usize]),
                        #[codec(index = 5)]
                        X5([runtime_types::staging_xcm::v5::junction::Junction; 5usize]),
                        #[codec(index = 6)]
                        X6([runtime_types::staging_xcm::v5::junction::Junction; 6usize]),
                        #[codec(index = 7)]
                        X7([runtime_types::staging_xcm::v5::junction::Junction; 7usize]),
                        #[codec(index = 8)]
                        X8([runtime_types::staging_xcm::v5::junction::Junction; 8usize]),
                    }
                }
                pub mod location {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct Location {
                        pub parents: ::core::primitive::u8,
                        pub interior: runtime_types::staging_xcm::v5::junctions::Junctions,
                    }
                }
                pub mod traits {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct InstructionError {
                        pub index: ::core::primitive::u8,
                        pub error: runtime_types::xcm::v5::traits::Error,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Outcome {
                        #[codec(index = 0)]
                        Complete {
                            used: runtime_types::sp_weights::weight_v2::Weight,
                        },
                        #[codec(index = 1)]
                        Incomplete {
                            used: runtime_types::sp_weights::weight_v2::Weight,
                            error: runtime_types::staging_xcm::v5::traits::InstructionError,
                        },
                        #[codec(index = 2)]
                        Error(runtime_types::staging_xcm::v5::traits::InstructionError),
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Hint {
                    #[codec(index = 0)]
                    AssetClaimer {
                        location: runtime_types::staging_xcm::v5::location::Location,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Instruction {
                    #[codec(index = 0)]
                    WithdrawAsset(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 1)]
                    ReserveAssetDeposited(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 2)]
                    ReceiveTeleportedAsset(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 3)]
                    QueryResponse {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        response: runtime_types::staging_xcm::v5::Response,
                        max_weight: runtime_types::sp_weights::weight_v2::Weight,
                        querier: ::core::option::Option<
                            runtime_types::staging_xcm::v5::location::Location,
                        >,
                    },
                    #[codec(index = 4)]
                    TransferAsset {
                        assets: runtime_types::staging_xcm::v5::asset::Assets,
                        beneficiary: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 5)]
                    TransferReserveAsset {
                        assets: runtime_types::staging_xcm::v5::asset::Assets,
                        dest: runtime_types::staging_xcm::v5::location::Location,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 6)]
                    Transact {
                        origin_kind: runtime_types::xcm::v3::OriginKind,
                        fallback_max_weight:
                            ::core::option::Option<runtime_types::sp_weights::weight_v2::Weight>,
                        call: runtime_types::xcm::double_encoded::DoubleEncoded,
                    },
                    #[codec(index = 7)]
                    HrmpNewChannelOpenRequest {
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        max_message_size: ::core::primitive::u32,
                        #[codec(compact)]
                        max_capacity: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    HrmpChannelAccepted {
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 9)]
                    HrmpChannelClosing {
                        #[codec(compact)]
                        initiator: ::core::primitive::u32,
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 10)]
                    ClearOrigin,
                    #[codec(index = 11)]
                    DescendOrigin(runtime_types::staging_xcm::v5::junctions::Junctions),
                    #[codec(index = 12)]
                    ReportError(runtime_types::staging_xcm::v5::QueryResponseInfo),
                    #[codec(index = 13)]
                    DepositAsset {
                        assets: runtime_types::staging_xcm::v5::asset::AssetFilter,
                        beneficiary: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 14)]
                    DepositReserveAsset {
                        assets: runtime_types::staging_xcm::v5::asset::AssetFilter,
                        dest: runtime_types::staging_xcm::v5::location::Location,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 15)]
                    ExchangeAsset {
                        give: runtime_types::staging_xcm::v5::asset::AssetFilter,
                        want: runtime_types::staging_xcm::v5::asset::Assets,
                        maximal: ::core::primitive::bool,
                    },
                    #[codec(index = 16)]
                    InitiateReserveWithdraw {
                        assets: runtime_types::staging_xcm::v5::asset::AssetFilter,
                        reserve: runtime_types::staging_xcm::v5::location::Location,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 17)]
                    InitiateTeleport {
                        assets: runtime_types::staging_xcm::v5::asset::AssetFilter,
                        dest: runtime_types::staging_xcm::v5::location::Location,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 18)]
                    ReportHolding {
                        response_info: runtime_types::staging_xcm::v5::QueryResponseInfo,
                        assets: runtime_types::staging_xcm::v5::asset::AssetFilter,
                    },
                    #[codec(index = 19)]
                    BuyExecution {
                        fees: runtime_types::staging_xcm::v5::asset::Asset,
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                    },
                    #[codec(index = 20)]
                    RefundSurplus,
                    #[codec(index = 21)]
                    SetErrorHandler(runtime_types::staging_xcm::v5::Xcm),
                    #[codec(index = 22)]
                    SetAppendix(runtime_types::staging_xcm::v5::Xcm),
                    #[codec(index = 23)]
                    ClearError,
                    #[codec(index = 24)]
                    ClaimAsset {
                        assets: runtime_types::staging_xcm::v5::asset::Assets,
                        ticket: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 25)]
                    Trap(#[codec(compact)] ::core::primitive::u64),
                    #[codec(index = 26)]
                    SubscribeVersion {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        max_response_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 27)]
                    UnsubscribeVersion,
                    #[codec(index = 28)]
                    BurnAsset(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 29)]
                    ExpectAsset(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 30)]
                    ExpectOrigin(
                        ::core::option::Option<runtime_types::staging_xcm::v5::location::Location>,
                    ),
                    #[codec(index = 31)]
                    ExpectError(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v5::traits::Error,
                        )>,
                    ),
                    #[codec(index = 32)]
                    ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode),
                    #[codec(index = 33)]
                    QueryPallet {
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        response_info: runtime_types::staging_xcm::v5::QueryResponseInfo,
                    },
                    #[codec(index = 34)]
                    ExpectPallet {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        #[codec(compact)]
                        crate_major: ::core::primitive::u32,
                        #[codec(compact)]
                        min_crate_minor: ::core::primitive::u32,
                    },
                    #[codec(index = 35)]
                    ReportTransactStatus(runtime_types::staging_xcm::v5::QueryResponseInfo),
                    #[codec(index = 36)]
                    ClearTransactStatus,
                    #[codec(index = 37)]
                    UniversalOrigin(runtime_types::staging_xcm::v5::junction::Junction),
                    #[codec(index = 38)]
                    ExportMessage {
                        network: runtime_types::staging_xcm::v5::junction::NetworkId,
                        destination: runtime_types::staging_xcm::v5::junctions::Junctions,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 39)]
                    LockAsset {
                        asset: runtime_types::staging_xcm::v5::asset::Asset,
                        unlocker: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 40)]
                    UnlockAsset {
                        asset: runtime_types::staging_xcm::v5::asset::Asset,
                        target: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 41)]
                    NoteUnlockable {
                        asset: runtime_types::staging_xcm::v5::asset::Asset,
                        owner: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 42)]
                    RequestUnlock {
                        asset: runtime_types::staging_xcm::v5::asset::Asset,
                        locker: runtime_types::staging_xcm::v5::location::Location,
                    },
                    #[codec(index = 43)]
                    SetFeesMode {
                        jit_withdraw: ::core::primitive::bool,
                    },
                    #[codec(index = 44)]
                    SetTopic([::core::primitive::u8; 32usize]),
                    #[codec(index = 45)]
                    ClearTopic,
                    #[codec(index = 46)]
                    AliasOrigin(runtime_types::staging_xcm::v5::location::Location),
                    #[codec(index = 47)]
                    UnpaidExecution {
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                        check_origin: ::core::option::Option<
                            runtime_types::staging_xcm::v5::location::Location,
                        >,
                    },
                    #[codec(index = 48)]
                    PayFees {
                        asset: runtime_types::staging_xcm::v5::asset::Asset,
                    },
                    #[codec(index = 49)]
                    InitiateTransfer {
                        destination: runtime_types::staging_xcm::v5::location::Location,
                        remote_fees: ::core::option::Option<
                            runtime_types::staging_xcm::v5::asset::AssetTransferFilter,
                        >,
                        preserve_origin: ::core::primitive::bool,
                        assets: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::staging_xcm::v5::asset::AssetTransferFilter,
                        >,
                        remote_xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 50)]
                    ExecuteWithOrigin {
                        descendant_origin: ::core::option::Option<
                            runtime_types::staging_xcm::v5::junctions::Junctions,
                        >,
                        xcm: runtime_types::staging_xcm::v5::Xcm,
                    },
                    #[codec(index = 51)]
                    SetHints {
                        hints: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::staging_xcm::v5::Hint,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PalletInfo {
                    #[codec(compact)]
                    pub index: ::core::primitive::u32,
                    pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    #[codec(compact)]
                    pub major: ::core::primitive::u32,
                    #[codec(compact)]
                    pub minor: ::core::primitive::u32,
                    #[codec(compact)]
                    pub patch: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryResponseInfo {
                    pub destination: runtime_types::staging_xcm::v5::location::Location,
                    #[codec(compact)]
                    pub query_id: ::core::primitive::u64,
                    pub max_weight: runtime_types::sp_weights::weight_v2::Weight,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Response {
                    #[codec(index = 0)]
                    Null,
                    #[codec(index = 1)]
                    Assets(runtime_types::staging_xcm::v5::asset::Assets),
                    #[codec(index = 2)]
                    ExecutionResult(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v5::traits::Error,
                        )>,
                    ),
                    #[codec(index = 3)]
                    Version(::core::primitive::u32),
                    #[codec(index = 4)]
                    PalletsInfo(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::staging_xcm::v5::PalletInfo,
                        >,
                    ),
                    #[codec(index = 5)]
                    DispatchResult(runtime_types::xcm::v3::MaybeErrorCode),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Xcm(
                    pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::staging_xcm::v5::Instruction,
                    >,
                );
            }
        }
        pub mod staging_xcm_executor {
            use super::runtime_types;
            pub mod traits {
                use super::runtime_types;
                pub mod asset_transfer {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum TransferType {
                        #[codec(index = 0)]
                        Teleport,
                        #[codec(index = 1)]
                        LocalReserve,
                        #[codec(index = 2)]
                        DestinationReserve,
                        #[codec(index = 3)]
                        RemoteReserve(runtime_types::xcm::VersionedLocation),
                    }
                }
            }
        }
        pub mod xcm {
            use super::runtime_types;
            pub mod double_encoded {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct DoubleEncoded {
                    pub encoded: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                }
            }
            pub mod v3 {
                use super::runtime_types;
                pub mod junction {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum BodyId {
                        #[codec(index = 0)]
                        Unit,
                        #[codec(index = 1)]
                        Moniker([::core::primitive::u8; 4usize]),
                        #[codec(index = 2)]
                        Index(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 3)]
                        Executive,
                        #[codec(index = 4)]
                        Technical,
                        #[codec(index = 5)]
                        Legislative,
                        #[codec(index = 6)]
                        Judicial,
                        #[codec(index = 7)]
                        Defense,
                        #[codec(index = 8)]
                        Administration,
                        #[codec(index = 9)]
                        Treasury,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum BodyPart {
                        #[codec(index = 0)]
                        Voice,
                        #[codec(index = 1)]
                        Members {
                            #[codec(compact)]
                            count: ::core::primitive::u32,
                        },
                        #[codec(index = 2)]
                        Fraction {
                            #[codec(compact)]
                            nom: ::core::primitive::u32,
                            #[codec(compact)]
                            denom: ::core::primitive::u32,
                        },
                        #[codec(index = 3)]
                        AtLeastProportion {
                            #[codec(compact)]
                            nom: ::core::primitive::u32,
                            #[codec(compact)]
                            denom: ::core::primitive::u32,
                        },
                        #[codec(index = 4)]
                        MoreThanProportion {
                            #[codec(compact)]
                            nom: ::core::primitive::u32,
                            #[codec(compact)]
                            denom: ::core::primitive::u32,
                        },
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junction {
                        #[codec(index = 0)]
                        Parachain(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 1)]
                        AccountId32 {
                            network:
                                ::core::option::Option<runtime_types::xcm::v3::junction::NetworkId>,
                            id: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        AccountIndex64 {
                            network:
                                ::core::option::Option<runtime_types::xcm::v3::junction::NetworkId>,
                            #[codec(compact)]
                            index: ::core::primitive::u64,
                        },
                        #[codec(index = 3)]
                        AccountKey20 {
                            network:
                                ::core::option::Option<runtime_types::xcm::v3::junction::NetworkId>,
                            key: [::core::primitive::u8; 20usize],
                        },
                        #[codec(index = 4)]
                        PalletInstance(::core::primitive::u8),
                        #[codec(index = 5)]
                        GeneralIndex(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 6)]
                        GeneralKey {
                            length: ::core::primitive::u8,
                            data: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 7)]
                        OnlyChild,
                        #[codec(index = 8)]
                        Plurality {
                            id: runtime_types::xcm::v3::junction::BodyId,
                            part: runtime_types::xcm::v3::junction::BodyPart,
                        },
                        #[codec(index = 9)]
                        GlobalConsensus(runtime_types::xcm::v3::junction::NetworkId),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum NetworkId {
                        #[codec(index = 0)]
                        ByGenesis([::core::primitive::u8; 32usize]),
                        #[codec(index = 1)]
                        ByFork {
                            block_number: ::core::primitive::u64,
                            block_hash: [::core::primitive::u8; 32usize],
                        },
                        #[codec(index = 2)]
                        Polkadot,
                        #[codec(index = 3)]
                        Kusama,
                        #[codec(index = 4)]
                        Westend,
                        #[codec(index = 5)]
                        Rococo,
                        #[codec(index = 6)]
                        Wococo,
                        #[codec(index = 7)]
                        Ethereum {
                            #[codec(compact)]
                            chain_id: ::core::primitive::u64,
                        },
                        #[codec(index = 8)]
                        BitcoinCore,
                        #[codec(index = 9)]
                        BitcoinCash,
                        #[codec(index = 10)]
                        PolkadotBulletin,
                    }
                }
                pub mod junctions {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Junctions {
                        #[codec(index = 0)]
                        Here,
                        #[codec(index = 1)]
                        X1(runtime_types::xcm::v3::junction::Junction),
                        #[codec(index = 2)]
                        X2(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 3)]
                        X3(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 4)]
                        X4(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 5)]
                        X5(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 6)]
                        X6(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 7)]
                        X7(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                        #[codec(index = 8)]
                        X8(
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                            runtime_types::xcm::v3::junction::Junction,
                        ),
                    }
                }
                pub mod multiasset {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetId {
                        #[codec(index = 0)]
                        Concrete(runtime_types::staging_xcm::v3::multilocation::MultiLocation),
                        #[codec(index = 1)]
                        Abstract([::core::primitive::u8; 32usize]),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum AssetInstance {
                        #[codec(index = 0)]
                        Undefined,
                        #[codec(index = 1)]
                        Index(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 2)]
                        Array4([::core::primitive::u8; 4usize]),
                        #[codec(index = 3)]
                        Array8([::core::primitive::u8; 8usize]),
                        #[codec(index = 4)]
                        Array16([::core::primitive::u8; 16usize]),
                        #[codec(index = 5)]
                        Array32([::core::primitive::u8; 32usize]),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Fungibility {
                        #[codec(index = 0)]
                        Fungible(#[codec(compact)] ::core::primitive::u128),
                        #[codec(index = 1)]
                        NonFungible(runtime_types::xcm::v3::multiasset::AssetInstance),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct MultiAsset {
                        pub id: runtime_types::xcm::v3::multiasset::AssetId,
                        pub fun: runtime_types::xcm::v3::multiasset::Fungibility,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum MultiAssetFilter {
                        #[codec(index = 0)]
                        Definite(runtime_types::xcm::v3::multiasset::MultiAssets),
                        #[codec(index = 1)]
                        Wild(runtime_types::xcm::v3::multiasset::WildMultiAsset),
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub struct MultiAssets(
                        pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                            runtime_types::xcm::v3::multiasset::MultiAsset,
                        >,
                    );
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildFungibility {
                        #[codec(index = 0)]
                        Fungible,
                        #[codec(index = 1)]
                        NonFungible,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum WildMultiAsset {
                        #[codec(index = 0)]
                        All,
                        #[codec(index = 1)]
                        AllOf {
                            id: runtime_types::xcm::v3::multiasset::AssetId,
                            fun: runtime_types::xcm::v3::multiasset::WildFungibility,
                        },
                        #[codec(index = 2)]
                        AllCounted(#[codec(compact)] ::core::primitive::u32),
                        #[codec(index = 3)]
                        AllOfCounted {
                            id: runtime_types::xcm::v3::multiasset::AssetId,
                            fun: runtime_types::xcm::v3::multiasset::WildFungibility,
                            #[codec(compact)]
                            count: ::core::primitive::u32,
                        },
                    }
                }
                pub mod traits {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Error {
                        #[codec(index = 0)]
                        Overflow,
                        #[codec(index = 1)]
                        Unimplemented,
                        #[codec(index = 2)]
                        UntrustedReserveLocation,
                        #[codec(index = 3)]
                        UntrustedTeleportLocation,
                        #[codec(index = 4)]
                        LocationFull,
                        #[codec(index = 5)]
                        LocationNotInvertible,
                        #[codec(index = 6)]
                        BadOrigin,
                        #[codec(index = 7)]
                        InvalidLocation,
                        #[codec(index = 8)]
                        AssetNotFound,
                        #[codec(index = 9)]
                        FailedToTransactAsset,
                        #[codec(index = 10)]
                        NotWithdrawable,
                        #[codec(index = 11)]
                        LocationCannotHold,
                        #[codec(index = 12)]
                        ExceedsMaxMessageSize,
                        #[codec(index = 13)]
                        DestinationUnsupported,
                        #[codec(index = 14)]
                        Transport,
                        #[codec(index = 15)]
                        Unroutable,
                        #[codec(index = 16)]
                        UnknownClaim,
                        #[codec(index = 17)]
                        FailedToDecode,
                        #[codec(index = 18)]
                        MaxWeightInvalid,
                        #[codec(index = 19)]
                        NotHoldingFees,
                        #[codec(index = 20)]
                        TooExpensive,
                        #[codec(index = 21)]
                        Trap(::core::primitive::u64),
                        #[codec(index = 22)]
                        ExpectationFalse,
                        #[codec(index = 23)]
                        PalletNotFound,
                        #[codec(index = 24)]
                        NameMismatch,
                        #[codec(index = 25)]
                        VersionIncompatible,
                        #[codec(index = 26)]
                        HoldingWouldOverflow,
                        #[codec(index = 27)]
                        ExportError,
                        #[codec(index = 28)]
                        ReanchorFailed,
                        #[codec(index = 29)]
                        NoDeal,
                        #[codec(index = 30)]
                        FeesNotMet,
                        #[codec(index = 31)]
                        LockError,
                        #[codec(index = 32)]
                        NoPermission,
                        #[codec(index = 33)]
                        Unanchored,
                        #[codec(index = 34)]
                        NotDepositable,
                        #[codec(index = 35)]
                        UnhandledXcmVersion,
                        #[codec(index = 36)]
                        WeightLimitReached(runtime_types::sp_weights::weight_v2::Weight),
                        #[codec(index = 37)]
                        Barrier,
                        #[codec(index = 38)]
                        WeightNotComputable,
                        #[codec(index = 39)]
                        ExceedsStackLimit,
                    }
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum SendError {
                        #[codec(index = 0)]
                        NotApplicable,
                        #[codec(index = 1)]
                        Transport,
                        #[codec(index = 2)]
                        Unroutable,
                        #[codec(index = 3)]
                        DestinationUnsupported,
                        #[codec(index = 4)]
                        ExceedsMaxMessageSize,
                        #[codec(index = 5)]
                        MissingArgument,
                        #[codec(index = 6)]
                        Fees,
                    }
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Instruction {
                    #[codec(index = 0)]
                    WithdrawAsset(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 1)]
                    ReserveAssetDeposited(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 2)]
                    ReceiveTeleportedAsset(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 3)]
                    QueryResponse {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        response: runtime_types::xcm::v3::Response,
                        max_weight: runtime_types::sp_weights::weight_v2::Weight,
                        querier: ::core::option::Option<
                            runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        >,
                    },
                    #[codec(index = 4)]
                    TransferAsset {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssets,
                        beneficiary: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 5)]
                    TransferReserveAsset {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssets,
                        dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        xcm: runtime_types::xcm::v3::Xcm,
                    },
                    #[codec(index = 6)]
                    Transact {
                        origin_kind: runtime_types::xcm::v3::OriginKind,
                        require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight,
                        call: runtime_types::xcm::double_encoded::DoubleEncoded,
                    },
                    #[codec(index = 7)]
                    HrmpNewChannelOpenRequest {
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        max_message_size: ::core::primitive::u32,
                        #[codec(compact)]
                        max_capacity: ::core::primitive::u32,
                    },
                    #[codec(index = 8)]
                    HrmpChannelAccepted {
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 9)]
                    HrmpChannelClosing {
                        #[codec(compact)]
                        initiator: ::core::primitive::u32,
                        #[codec(compact)]
                        sender: ::core::primitive::u32,
                        #[codec(compact)]
                        recipient: ::core::primitive::u32,
                    },
                    #[codec(index = 10)]
                    ClearOrigin,
                    #[codec(index = 11)]
                    DescendOrigin(runtime_types::xcm::v3::junctions::Junctions),
                    #[codec(index = 12)]
                    ReportError(runtime_types::xcm::v3::QueryResponseInfo),
                    #[codec(index = 13)]
                    DepositAsset {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                        beneficiary: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 14)]
                    DepositReserveAsset {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                        dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        xcm: runtime_types::xcm::v3::Xcm,
                    },
                    #[codec(index = 15)]
                    ExchangeAsset {
                        give: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                        want: runtime_types::xcm::v3::multiasset::MultiAssets,
                        maximal: ::core::primitive::bool,
                    },
                    #[codec(index = 16)]
                    InitiateReserveWithdraw {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                        reserve: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        xcm: runtime_types::xcm::v3::Xcm,
                    },
                    #[codec(index = 17)]
                    InitiateTeleport {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                        dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        xcm: runtime_types::xcm::v3::Xcm,
                    },
                    #[codec(index = 18)]
                    ReportHolding {
                        response_info: runtime_types::xcm::v3::QueryResponseInfo,
                        assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter,
                    },
                    #[codec(index = 19)]
                    BuyExecution {
                        fees: runtime_types::xcm::v3::multiasset::MultiAsset,
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                    },
                    #[codec(index = 20)]
                    RefundSurplus,
                    #[codec(index = 21)]
                    SetErrorHandler(runtime_types::xcm::v3::Xcm),
                    #[codec(index = 22)]
                    SetAppendix(runtime_types::xcm::v3::Xcm),
                    #[codec(index = 23)]
                    ClearError,
                    #[codec(index = 24)]
                    ClaimAsset {
                        assets: runtime_types::xcm::v3::multiasset::MultiAssets,
                        ticket: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 25)]
                    Trap(#[codec(compact)] ::core::primitive::u64),
                    #[codec(index = 26)]
                    SubscribeVersion {
                        #[codec(compact)]
                        query_id: ::core::primitive::u64,
                        max_response_weight: runtime_types::sp_weights::weight_v2::Weight,
                    },
                    #[codec(index = 27)]
                    UnsubscribeVersion,
                    #[codec(index = 28)]
                    BurnAsset(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 29)]
                    ExpectAsset(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 30)]
                    ExpectOrigin(
                        ::core::option::Option<
                            runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        >,
                    ),
                    #[codec(index = 31)]
                    ExpectError(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v3::traits::Error,
                        )>,
                    ),
                    #[codec(index = 32)]
                    ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode),
                    #[codec(index = 33)]
                    QueryPallet {
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        response_info: runtime_types::xcm::v3::QueryResponseInfo,
                    },
                    #[codec(index = 34)]
                    ExpectPallet {
                        #[codec(compact)]
                        index: ::core::primitive::u32,
                        name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        module_name:
                            ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>,
                        #[codec(compact)]
                        crate_major: ::core::primitive::u32,
                        #[codec(compact)]
                        min_crate_minor: ::core::primitive::u32,
                    },
                    #[codec(index = 35)]
                    ReportTransactStatus(runtime_types::xcm::v3::QueryResponseInfo),
                    #[codec(index = 36)]
                    ClearTransactStatus,
                    #[codec(index = 37)]
                    UniversalOrigin(runtime_types::xcm::v3::junction::Junction),
                    #[codec(index = 38)]
                    ExportMessage {
                        network: runtime_types::xcm::v3::junction::NetworkId,
                        destination: runtime_types::xcm::v3::junctions::Junctions,
                        xcm: runtime_types::xcm::v3::Xcm,
                    },
                    #[codec(index = 39)]
                    LockAsset {
                        asset: runtime_types::xcm::v3::multiasset::MultiAsset,
                        unlocker: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 40)]
                    UnlockAsset {
                        asset: runtime_types::xcm::v3::multiasset::MultiAsset,
                        target: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 41)]
                    NoteUnlockable {
                        asset: runtime_types::xcm::v3::multiasset::MultiAsset,
                        owner: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 42)]
                    RequestUnlock {
                        asset: runtime_types::xcm::v3::multiasset::MultiAsset,
                        locker: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    },
                    #[codec(index = 43)]
                    SetFeesMode {
                        jit_withdraw: ::core::primitive::bool,
                    },
                    #[codec(index = 44)]
                    SetTopic([::core::primitive::u8; 32usize]),
                    #[codec(index = 45)]
                    ClearTopic,
                    #[codec(index = 46)]
                    AliasOrigin(runtime_types::staging_xcm::v3::multilocation::MultiLocation),
                    #[codec(index = 47)]
                    UnpaidExecution {
                        weight_limit: runtime_types::xcm::v3::WeightLimit,
                        check_origin: ::core::option::Option<
                            runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                        >,
                    },
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum MaybeErrorCode {
                    #[codec(index = 0)]
                    Success,
                    #[codec(index = 1)]
                    Error(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    ),
                    #[codec(index = 2)]
                    TruncatedError(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            ::core::primitive::u8,
                        >,
                    ),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum OriginKind {
                    #[codec(index = 0)]
                    Native,
                    #[codec(index = 1)]
                    SovereignAccount,
                    #[codec(index = 2)]
                    Superuser,
                    #[codec(index = 3)]
                    Xcm,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct PalletInfo {
                    #[codec(compact)]
                    pub index: ::core::primitive::u32,
                    pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec<
                        ::core::primitive::u8,
                    >,
                    #[codec(compact)]
                    pub major: ::core::primitive::u32,
                    #[codec(compact)]
                    pub minor: ::core::primitive::u32,
                    #[codec(compact)]
                    pub patch: ::core::primitive::u32,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct QueryResponseInfo {
                    pub destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation,
                    #[codec(compact)]
                    pub query_id: ::core::primitive::u64,
                    pub max_weight: runtime_types::sp_weights::weight_v2::Weight,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Response {
                    #[codec(index = 0)]
                    Null,
                    #[codec(index = 1)]
                    Assets(runtime_types::xcm::v3::multiasset::MultiAssets),
                    #[codec(index = 2)]
                    ExecutionResult(
                        ::core::option::Option<(
                            ::core::primitive::u32,
                            runtime_types::xcm::v3::traits::Error,
                        )>,
                    ),
                    #[codec(index = 3)]
                    Version(::core::primitive::u32),
                    #[codec(index = 4)]
                    PalletsInfo(
                        runtime_types::bounded_collections::bounded_vec::BoundedVec<
                            runtime_types::xcm::v3::PalletInfo,
                        >,
                    ),
                    #[codec(index = 5)]
                    DispatchResult(runtime_types::xcm::v3::MaybeErrorCode),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum WeightLimit {
                    #[codec(index = 0)]
                    Unlimited,
                    #[codec(index = 1)]
                    Limited(runtime_types::sp_weights::weight_v2::Weight),
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct Xcm(
                    pub  ::subxt::ext::subxt_core::alloc::vec::Vec<
                        runtime_types::xcm::v3::Instruction,
                    >,
                );
            }
            pub mod v5 {
                use super::runtime_types;
                pub mod traits {
                    use super::runtime_types;
                    #[derive(
                        :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                        :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                        Debug,
                    )]
                    #[decode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                    )]
                    #[encode_as_type(
                        crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                    )]
                    pub enum Error {
                        #[codec(index = 0)]
                        Overflow,
                        #[codec(index = 1)]
                        Unimplemented,
                        #[codec(index = 2)]
                        UntrustedReserveLocation,
                        #[codec(index = 3)]
                        UntrustedTeleportLocation,
                        #[codec(index = 4)]
                        LocationFull,
                        #[codec(index = 5)]
                        LocationNotInvertible,
                        #[codec(index = 6)]
                        BadOrigin,
                        #[codec(index = 7)]
                        InvalidLocation,
                        #[codec(index = 8)]
                        AssetNotFound,
                        #[codec(index = 9)]
                        FailedToTransactAsset,
                        #[codec(index = 10)]
                        NotWithdrawable,
                        #[codec(index = 11)]
                        LocationCannotHold,
                        #[codec(index = 12)]
                        ExceedsMaxMessageSize,
                        #[codec(index = 13)]
                        DestinationUnsupported,
                        #[codec(index = 14)]
                        Transport,
                        #[codec(index = 15)]
                        Unroutable,
                        #[codec(index = 16)]
                        UnknownClaim,
                        #[codec(index = 17)]
                        FailedToDecode,
                        #[codec(index = 18)]
                        MaxWeightInvalid,
                        #[codec(index = 19)]
                        NotHoldingFees,
                        #[codec(index = 20)]
                        TooExpensive,
                        #[codec(index = 21)]
                        Trap(::core::primitive::u64),
                        #[codec(index = 22)]
                        ExpectationFalse,
                        #[codec(index = 23)]
                        PalletNotFound,
                        #[codec(index = 24)]
                        NameMismatch,
                        #[codec(index = 25)]
                        VersionIncompatible,
                        #[codec(index = 26)]
                        HoldingWouldOverflow,
                        #[codec(index = 27)]
                        ExportError,
                        #[codec(index = 28)]
                        ReanchorFailed,
                        #[codec(index = 29)]
                        NoDeal,
                        #[codec(index = 30)]
                        FeesNotMet,
                        #[codec(index = 31)]
                        LockError,
                        #[codec(index = 32)]
                        NoPermission,
                        #[codec(index = 33)]
                        Unanchored,
                        #[codec(index = 34)]
                        NotDepositable,
                        #[codec(index = 35)]
                        TooManyAssets,
                        #[codec(index = 36)]
                        UnhandledXcmVersion,
                        #[codec(index = 37)]
                        WeightLimitReached(runtime_types::sp_weights::weight_v2::Weight),
                        #[codec(index = 38)]
                        Barrier,
                        #[codec(index = 39)]
                        WeightNotComputable,
                        #[codec(index = 40)]
                        ExceedsStackLimit,
                    }
                }
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedAsset {
                #[codec(index = 3)]
                V3(runtime_types::xcm::v3::multiasset::MultiAsset),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::asset::Asset),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::asset::Asset),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedAssetId {
                #[codec(index = 3)]
                V3(runtime_types::xcm::v3::multiasset::AssetId),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::asset::AssetId),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::asset::AssetId),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedAssets {
                #[codec(index = 3)]
                V3(runtime_types::xcm::v3::multiasset::MultiAssets),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::asset::Assets),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::asset::Assets),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedLocation {
                #[codec(index = 3)]
                V3(runtime_types::staging_xcm::v3::multilocation::MultiLocation),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::location::Location),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::location::Location),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedResponse {
                #[codec(index = 3)]
                V3(runtime_types::xcm::v3::Response),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::Response),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::Response),
            }
            #[derive(
                :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                Debug,
            )]
            #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")]
            #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")]
            pub enum VersionedXcm {
                #[codec(index = 3)]
                V3(runtime_types::xcm::v3::Xcm),
                #[codec(index = 4)]
                V4(runtime_types::staging_xcm::v4::Xcm),
                #[codec(index = 5)]
                V5(runtime_types::staging_xcm::v5::Xcm),
            }
        }
        pub mod xcm_runtime_apis {
            use super::runtime_types;
            pub mod authorized_aliases {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct OriginAliaser {
                    pub location: runtime_types::xcm::VersionedLocation,
                    pub expiry: ::core::option::Option<::core::primitive::u64>,
                }
            }
            pub mod conversions {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Error {
                    #[codec(index = 0)]
                    Unsupported,
                    #[codec(index = 1)]
                    VersionedConversionFailed,
                }
            }
            pub mod dry_run {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct CallDryRunEffects<_0> {
                    pub execution_result: ::core::result::Result<
                        runtime_types::frame_support::dispatch::PostDispatchInfo,
                        runtime_types::sp_runtime::DispatchErrorWithPostInfo<
                            runtime_types::frame_support::dispatch::PostDispatchInfo,
                        >,
                    >,
                    pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                    pub local_xcm: ::core::option::Option<runtime_types::xcm::VersionedXcm>,
                    pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::xcm::VersionedLocation,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<runtime_types::xcm::VersionedXcm>,
                    )>,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Error {
                    #[codec(index = 0)]
                    Unimplemented,
                    #[codec(index = 1)]
                    VersionedConversionFailed,
                }
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub struct XcmDryRunEffects<_0> {
                    pub execution_result: runtime_types::staging_xcm::v5::traits::Outcome,
                    pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>,
                    pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<(
                        runtime_types::xcm::VersionedLocation,
                        ::subxt::ext::subxt_core::alloc::vec::Vec<runtime_types::xcm::VersionedXcm>,
                    )>,
                }
            }
            pub mod fees {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Error {
                    #[codec(index = 0)]
                    Unimplemented,
                    #[codec(index = 1)]
                    VersionedConversionFailed,
                    #[codec(index = 2)]
                    WeightNotComputable,
                    #[codec(index = 3)]
                    UnhandledXcmVersion,
                    #[codec(index = 4)]
                    AssetNotFound,
                    #[codec(index = 5)]
                    Unroutable,
                }
            }
            pub mod trusted_query {
                use super::runtime_types;
                #[derive(
                    :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType,
                    :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType,
                    Debug,
                )]
                #[decode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode"
                )]
                #[encode_as_type(
                    crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode"
                )]
                pub enum Error {
                    #[codec(index = 0)]
                    VersionedAssetConversionFailed,
                    #[codec(index = 1)]
                    VersionedLocationConversionFailed,
                }
            }
        }
    }
}
