From 6262f6dc16d893cc37ca554d33ad10d7cbb967f8 Mon Sep 17 00:00:00 2001 From: ccubu <60666948+ccubu@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:36:41 +0200 Subject: [PATCH 1/3] Build and upload runtime with paseo feature on release (#817) * Build and upload runtime with paseo feature on release * format improvement * remove unused vars --- .github/workflows/release.yml | 126 ++++++++++++++++++++++++++-------- 1 file changed, 97 insertions(+), 29 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b0212a47..f713c1479 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: outputs: is_release_version: ${{ steps.check_version.outputs.is_release_version }} - prepare-release: + srtool_build: needs: check-version runs-on: ubuntu-latest strategy: @@ -54,53 +54,121 @@ jobs: package: ${{ matrix.runtime.package }} runtime_dir: ${{ matrix.runtime.path }} tag: 1.74.0 - - name: Summary - id: summary + - name: Export output info run: | - echo '${{ steps.srtool_build.outputs.json }}' | jq . > ${{ matrix.runtime.name }}-srtool-digest.json - cat ${{ matrix.runtime.name }}-srtool-digest.json - echo "Runtime location: ${{ steps.srtool_build.outputs.wasm }}" - RUSTC_VERSION=$(jq '.info.rustc' < ${{ matrix.runtime.name }}-srtool-digest.json) - SRTOOL_VERSION=$(jq '.info.generator.version' < ${{ matrix.runtime.name }}-srtool-digest.json) - echo "rustc_version='$RUSTC_VERSION'" >> $GITHUB_OUTPUT - echo "srtool_version=$SRTOOL_VERSION" >> $GITHUB_OUTPUT + echo '${{ steps.srtool_build.outputs.json }}' | jq . > srtool-digest.json + - name: Upload Laos Wasm Artifact + uses: actions/upload-artifact@v3 + with: + name: laos-wasm + path: | + ${{ steps.srtool_build.outputs.wasm }} + ${{ steps.srtool_build.outputs.wasm_compressed }} + srtool-digest.json + + srtool_build_paseo: + needs: check-version + runs-on: ubuntu-latest + strategy: + matrix: + runtime: + - { name: "laos", package: "laos-runtime", path: "runtime/laos" } + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/setup + - uses: ./.github/actions/cache + with: + cache-key: build_and_push + - name: Srtool build for paseo + id: srtool_build_paseo + uses: chevdor/srtool-actions@v0.9.2 + env: + BUILD_OPTS: "--features paseo" + with: + chain: ${{ matrix.runtime.name }} + package: ${{ matrix.runtime.package }} + runtime_dir: ${{ matrix.runtime.path }} + tag: 1.74.0 + - name: Export output info + run: | + echo '${{ steps.srtool_build_paseo.outputs.json }}' | jq . > srtool-digest.json + - name: Upload Paseo Wasm Artifact + uses: actions/upload-artifact@v3 + with: + name: paseo-wasm + path: | + ${{ steps.srtool_build_paseo.outputs.wasm }} + ${{ steps.srtool_build_paseo.outputs.wasm_compressed }} + srtool-digest.json + + prepare-release: + needs: [srtool_build, srtool_build_paseo] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Download Laos Wasm Artifact + uses: actions/download-artifact@v3 + with: + name: laos-wasm + path: laos-wasm + - name: Download Paseo Wasm Artifact + uses: actions/download-artifact@v3 + with: + name: paseo-wasm + path: paseo-wasm - name: Install subwasm ${{ env.SUBWASM_VERSION }} run: | wget https://github.com/chevdor/subwasm/releases/download/v${{ env.SUBWASM_VERSION }}/subwasm_linux_amd64_v${{ env.SUBWASM_VERSION }}.deb sudo dpkg -i subwasm_linux_amd64_v${{ env.SUBWASM_VERSION }}.deb subwasm --version - name: Extract metadata + id: metadata run: | - subwasm --json info ${{ steps.srtool_build.outputs.wasm }} > ${{ matrix.runtime.name }}-info.json - subwasm info ${{ steps.srtool_build.outputs.wasm }} > ${{ matrix.runtime.name }}-info.txt - cat ${{ matrix.runtime.name }}-info.txt + LAOS_COMPRESSED_WASM="laos-wasm/runtime/laos/target/srtool/release/wbuild/laos-runtime/laos_runtime.compact.compressed.wasm" + LAOS_PASEO_COMPRESSED_WASM="paseo-wasm/runtime/laos/target/srtool/release/wbuild/laos-runtime/laos_runtime.compact.compressed.wasm" + + subwasm --json info $LAOS_COMPRESSED_WASM > laos-info.json + subwasm info $LAOS_COMPRESSED_WASM > laos-info.txt + subwasm --json info $LAOS_PASEO_COMPRESSED_WASM > paseo-info.json + subwasm info $LAOS_PASEO_COMPRESSED_WASM > paseo-info.txt - subwasm --json info ${{ steps.srtool_build.outputs.wasm_compressed }} > ${{ matrix.runtime.name }}-subwam-info.json - subwasm info ${{ steps.srtool_build.outputs.wasm_compressed }} > ${{ matrix.runtime.name }}-subwam-info.txt - cat ${{ matrix.runtime.name }}-subwam-info.txt - + RUSTC_VERSION_POLKA=$(jq '.info.rustc' < laos-wasm/srtool-digest.json) + SRTOOL_VERSION_POLKA=$(jq '.info.generator.version' < laos-wasm/srtool-digest.json) + RUSTC_VERSION_PASEO=$(jq '.info.rustc' < paseo-wasm/srtool-digest.json) + SRTOOL_VERSION_PASEO=$(jq '.info.generator.version' < paseo-wasm/srtool-digest.json) + + echo "rustc_version_polka='$RUSTC_VERSION_POLKA'" >> $GITHUB_OUTPUT + echo "srtool_version_polka=$SRTOOL_VERSION_POLKA" >> $GITHUB_OUTPUT + echo "rustc_version_paseo='$RUSTC_VERSION_PASEO'" >> $GITHUB_OUTPUT + echo "srtool_version_paseo=$SRTOOL_VERSION_PASEO" >> $GITHUB_OUTPUT + - name: Update Release Description with subwasm info run: | gh release view ${{ github.ref_name }} --json body -q .body > description.txt - - RUSTC_VERSION=$(echo ${{ steps.summary.outputs.rustc_version }} | tr -d '"') - SRTOOL_VERSION=${{ steps.summary.outputs.srtool_version }} - printf "\n\n## ${{ matrix.runtime.name }} runtime\nThis runtime was built using %s with srtool %s\n" "$RUSTC_VERSION" "$SRTOOL_VERSION" >> description.txt + RUSTC_VERSION_POLKA=$(echo ${{ steps.metadata.outputs.rustc_version_polka }} | tr -d '"') + SRTOOL_VERSION_POLKA=${{ steps.metadata.outputs.srtool_version_polka }} + RUSTC_VERSION_PASEO=$(echo ${{ steps.metadata.outputs.rustc_version_paseo }} | tr -d '"') + SRTOOL_VERSION_PASEO=${{ steps.metadata.outputs.srtool_version_paseo }} + + printf "\n\n## Laos Runtime for Polkadot\nThis runtime was built using $RUSTC_VERSION_POLKA with srtool $SRTOOL_VERSION_POLKA\n" >> description.txt echo '```' >> description.txt - - cat ${{ matrix.runtime.name }}-subwam-info.txt >> description.txt - + cat laos-info.txt >> description.txt + echo '```' >> description.txt + + printf "\n\n## Laos Runtime for Paseo\nThis runtime was built using $RUSTC_VERSION_PASEO with srtool $SRTOOL_VERSION_PASEO\n" >> description.txt echo '```' >> description.txt - - + cat paseo-info.txt >> description.txt + echo '```' >> description.txt + gh release edit ${{ github.ref_name }} --notes-file description.txt env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Upload Ownership Wasm Binaries + - name: Upload Files to Release run: | - echo "Uploading ownership wasm binary for tag ${{ github.ref_name }}" - gh release upload ${{ github.ref_name }} ${{ steps.srtool_build.outputs.wasm_compressed }} + gh release upload ${{ github.ref_name }} laos-wasm/runtime/laos/target/srtool/release/wbuild/laos-runtime/laos_runtime.compact.compressed.wasm + mv paseo-wasm/runtime/laos/target/srtool/release/wbuild/laos-runtime/laos_runtime.compact.compressed.wasm paseo-wasm/laos_paseo_runtime.compact.compressed.wasm + gh release upload ${{ github.ref_name }} paseo-wasm/laos_paseo_runtime.compact.compressed.wasm env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 13616054ee041459469b2012b7932c260cb2baff Mon Sep 17 00:00:00 2001 From: Alessandro Siniscalchi Date: Wed, 16 Oct 2024 14:32:49 +0200 Subject: [PATCH 2/3] Integrate Runtime APIs into lib.rs and Enhance Metadata Testing (#823) * upgrade to v0.22.0 * Integrate runtime APIs into lib.rs and enhance metadata testing (#821) * move macro to same file as * clippy and lint issues * metadata test * fix metadata * bump 2201 * update Cargo.lock * test passing * refactoring * fix clippy * fix test --------- Co-authored-by: Alessandro Siniscalchi * update to runtime 2292 * fix tests --------- Co-authored-by: magecnion --- Cargo.lock | 17 +- Cargo.toml | 4 +- e2e-tests/tests/config.ts | 2 +- node/src/service.rs | 6 +- runtime/laos/Cargo.toml | 3 + runtime/laos/src/apis.rs | 473 - runtime/laos/src/lib.rs | 455 +- runtime/laos/src/tests/metadata.rs | 28 + runtime/laos/src/tests/metadata15.golden | 44425 +++++++++++++++++++++ runtime/laos/src/tests/mod.rs | 2 + 10 files changed, 44930 insertions(+), 485 deletions(-) delete mode 100644 runtime/laos/src/apis.rs create mode 100644 runtime/laos/src/tests/metadata.rs create mode 100644 runtime/laos/src/tests/metadata15.golden diff --git a/Cargo.lock b/Cargo.lock index 4ee07f863..bff15dbb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -605,6 +605,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "assert-json-diff" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "assert_matches" version = "1.5.0" @@ -5202,7 +5212,7 @@ dependencies = [ [[package]] name = "laos" -version = "0.22.91" +version = "0.22.92" dependencies = [ "clap", "cumulus-client-cli", @@ -5285,8 +5295,9 @@ dependencies = [ [[package]] name = "laos-runtime" -version = "0.22.91" +version = "0.22.92" dependencies = [ + "assert-json-diff", "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", "cumulus-pallet-session-benchmarking", @@ -5302,6 +5313,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", + "frame-metadata", "frame-support", "frame-system", "frame-system-benchmarking", @@ -5355,6 +5367,7 @@ dependencies = [ "polkadot-runtime-parachains", "precompile-utils", "scale-info", + "serde_json", "smallvec", "sp-api", "sp-block-builder", diff --git a/Cargo.toml b/Cargo.toml index 341551fc0..7b4244a34 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ repository = "https://github.com/freeverseio/laos.git" homepage = "https://www.laosfoundation.io" authors = ["Freeverse"] edition = "2021" -version = "0.22.91" +version = "0.22.92" [workspace] resolver = "2" @@ -34,6 +34,8 @@ sha3 = { version = "0.10.1", default-features = false } similar-asserts = { version = "1.1.0" } serde_json = { version = "1.0.104", default-features = true } rustc-hex = { version = "2.1", default-features = false } +frame-metadata = "16.0.0" +assert-json-diff = "2.0.2" # Wasm builder substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0" } diff --git a/e2e-tests/tests/config.ts b/e2e-tests/tests/config.ts index 8d36930a3..7daaeb510 100644 --- a/e2e-tests/tests/config.ts +++ b/e2e-tests/tests/config.ts @@ -8,7 +8,7 @@ import ParachainStaking from "../build/contracts/ParachainStaking.json"; // Node config export const RUNTIME_SPEC_NAME = "laos"; -export const RUNTIME_SPEC_VERSION = 2291; +export const RUNTIME_SPEC_VERSION = 2292; export const RUNTIME_IMPL_VERSION = 0; export const LOCAL_NODE_URL = "http://127.0.0.1:9999"; diff --git a/node/src/service.rs b/node/src/service.rs index 352db056e..1614b3990 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -21,7 +21,7 @@ use std::{path::Path, sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use laos_runtime::{apis::RuntimeApi, opaque::Block, types::TransactionConverter, Hash}; +use laos_runtime::{opaque::Block, types::TransactionConverter, Hash}; // Cumulus Imports use cumulus_client_collator::service::CollatorService; @@ -39,6 +39,7 @@ use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; use fc_rpc::{StorageOverride, StorageOverrideHandler}; use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use futures::FutureExt; +use laos_runtime::RuntimeApi; use sc_client_api::Backend; use sc_consensus::ImportQueue; use sc_executor::{ @@ -52,7 +53,6 @@ use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_core::U256; use sp_keystore::KeystorePtr; use substrate_prometheus_endpoint::Registry; - // Frontier use crate::eth::{ db_config_dir, new_frontier_partial, spawn_frontier_tasks, BackendType, EthConfiguration, @@ -66,7 +66,7 @@ impl sc_executor::NativeExecutionDispatch for ParachainNativeExecutor { type ExtendHostFunctions = ParachainHostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { - laos_runtime::apis::api::dispatch(method, data) + laos_runtime::api::dispatch(method, data) } fn native_version() -> sc_executor::NativeVersion { diff --git a/runtime/laos/Cargo.toml b/runtime/laos/Cargo.toml index a38d5c450..08e369392 100644 --- a/runtime/laos/Cargo.toml +++ b/runtime/laos/Cargo.toml @@ -118,6 +118,9 @@ polkadot-runtime-parachains = { workspace = true } pallet-assets = { workspace = true } test-utils = { workspace = true } ethereum = { workspace = true } +serde_json = { workspace = true } +frame-metadata = { workspace = true } +assert-json-diff = { workspace = true } [features] paseo=[] diff --git a/runtime/laos/src/apis.rs b/runtime/laos/src/apis.rs deleted file mode 100644 index c32467362..000000000 --- a/runtime/laos/src/apis.rs +++ /dev/null @@ -1,473 +0,0 @@ -// Copyright 2023-2024 Freeverse.io -// This file is part of LAOS. - -// LAOS is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// LAOS is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with LAOS. If not, see . - -use fp_rpc::TransactionStatus; -use frame_support::{ - genesis_builder_helper::{build_state, get_preset}, - traits::Hooks, - weights::Weight, -}; -use pallet_aura::Authorities; -use pallet_ethereum::{Call::transact, Transaction as EthereumTransaction}; -use pallet_evm::{Account as EVMAccount, FeeCalculator, Runner}; -use parity_scale_codec::Encode; -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, H256, U256}; -use sp_runtime::{ - traits::{Block as BlockT, Get, UniqueSaturatedInto}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, Permill, -}; -use sp_std::prelude::*; -use sp_version::RuntimeVersion; - -// Local module imports -use super::{ - AccountId, Aura, AuraId, Balance, Block, Ethereum, Executive, InherentDataExt, Nonce, - ParachainSystem, Runtime, RuntimeCall, RuntimeGenesisConfig, SessionKeys, System, - TransactionPayment, UncheckedExtrinsic, EVM, VERSION, -}; - -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Authorities::::get().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl fp_rpc::EthereumRuntimeRPCApi for Runtime { - fn chain_id() -> u64 { - ::ChainId::get() - } - - fn account_basic(address: H160) -> EVMAccount { - let (account, _) = EVM::account_basic(&address); - account - } - - fn gas_price() -> U256 { - let (gas_price, _) = ::FeeCalculator::min_gas_price(); - gas_price - } - - fn account_code_at(address: H160) -> Vec { - pallet_evm::AccountCodes::::get(address) - } - - fn author() -> H160 { - >::find_author() - } - - fn storage_at(address: H160, index: U256) -> H256 { - let mut tmp = [0u8; 32]; - index.to_big_endian(&mut tmp); - pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) - } - - fn call( - from: H160, - to: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - ) -> Result { - use pallet_evm::GasWeightMapping as _; - - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - // Estimated encoded transaction size must be based on the heaviest transaction - // type (EIP1559Transaction) to be compatible with all transaction types. - let mut estimated_transaction_len = data.len() + - // pallet ethereum index: 1 - // transact call index: 1 - // Transaction enum variant: 1 - // chain_id 8 bytes - // nonce: 32 - // max_priority_fee_per_gas: 32 - // max_fee_per_gas: 32 - // gas_limit: 32 - // action: 21 (enum varianrt + call address) - // value: 32 - // access_list: 1 (empty vec size) - // 65 bytes signature - 258; - - if access_list.is_some() { - estimated_transaction_len += access_list.encoded_size(); - } - - - let gas_limit = if gas_limit > U256::from(u64::MAX) { - u64::MAX - } else { - gas_limit.low_u64() - }; - let without_base_extrinsic_weight = true; - - let (weight_limit, proof_size_base_cost) = - match ::GasWeightMapping::gas_to_weight( - gas_limit, - without_base_extrinsic_weight - ) { - weight_limit if weight_limit.proof_size() > 0 => { - (Some(weight_limit), Some(estimated_transaction_len as u64)) - } - _ => (None, None), - }; - - ::Runner::call( - from, - to, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - false, - true, - weight_limit, - proof_size_base_cost, - config.as_ref().unwrap_or(::config()), - ).map_err(|err| err.error.into()) - } - - fn create( - from: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - ) -> Result { - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - let is_transactional = false; - let validate = true; - let evm_config = config.as_ref().unwrap_or(::config()); - ::Runner::create( - from, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - is_transactional, - validate, - None, - None, - evm_config, - ).map_err(|err| err.error.into()) - } - - fn current_transaction_statuses() -> Option> { - pallet_ethereum::CurrentTransactionStatuses::::get() - } - - fn current_block() -> Option { - pallet_ethereum::CurrentBlock::::get() - } - - fn current_receipts() -> Option> { - pallet_ethereum::CurrentReceipts::::get() - } - - fn current_all() -> ( - Option, - Option>, - Option> - ) { - ( - pallet_ethereum::CurrentBlock::::get(), - pallet_ethereum::CurrentReceipts::::get(), - pallet_ethereum::CurrentTransactionStatuses::::get() - ) - } - - fn extrinsic_filter( - xts: Vec<::Extrinsic>, - ) -> Vec { - xts.into_iter().filter_map(|xt| match xt.0.function { - RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), - _ => None - }).collect::>() - } - - fn elasticity() -> Option { - Some(pallet_base_fee::Elasticity::::get()) - } - - fn gas_limit_multiplier_support() {} - - fn pending_block( - xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { - for ext in xts.into_iter() { - let _ = Executive::apply_extrinsic(ext); - } - - Ethereum::on_finalize(System::block_number() + 1); - - ( - pallet_ethereum::CurrentBlock::::get(), - pallet_ethereum::CurrentTransactionStatuses::::get() - ) - } - } - - impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { - fn convert_transaction(transaction: EthereumTransaction) -> ::Extrinsic { - UncheckedExtrinsic::new_unsigned( - pallet_ethereum::Call::::transact { transaction }.into(), - ) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, laos_primitives::RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - use super::*; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch}; - - impl frame_system_benchmarking::Config for Runtime {} - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use frame_support::traits::WhitelistedStorageKeys; - use super::*; - - let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn build_state(config: Vec) -> sp_genesis_builder::Result { - build_state::(config) - } - - fn get_preset(id: &Option) -> Option> { - get_preset::(id, |_| None) - } - - fn preset_names() -> Vec { - Default::default() - } - } -} diff --git a/runtime/laos/src/lib.rs b/runtime/laos/src/lib.rs index 50547ce65..f0c116e6c 100644 --- a/runtime/laos/src/lib.rs +++ b/runtime/laos/src/lib.rs @@ -20,7 +20,6 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -pub mod apis; pub mod configs; pub mod currency; mod migrations; @@ -31,13 +30,30 @@ mod weights; pub use configs::laos_evolution::REVERT_BYTECODE; use core::marker::PhantomData; -use frame_support::construct_runtime; +use fp_rpc::TransactionStatus; +use frame_support::{ + construct_runtime, + genesis_builder_helper::{build_state, get_preset}, + traits::Hooks, + weights::Weight, +}; pub use laos_primitives::{ AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, }; +use pallet_aura::Authorities; +use pallet_ethereum::{Call::transact, Transaction as EthereumTransaction}; +use pallet_evm::{Account as EVMAccount, FeeCalculator, Runner}; pub use pallet_parachain_staking::{InflationInfo, Range}; +use parity_scale_codec::Encode; use precompiles::LaosPrecompiles; -use sp_runtime::{create_runtime_str, generic, impl_opaque_keys, Permill}; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, H256, U256}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{Block as BlockT, Get, UniqueSaturatedInto}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, Permill, +}; use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -83,9 +99,9 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("laos"), impl_name: create_runtime_str!("laos"), authoring_version: 1, - spec_version: 2291, + spec_version: 2292, impl_version: 0, - apis: apis::RUNTIME_API_VERSIONS, + apis: RUNTIME_API_VERSIONS, transaction_version: 1, state_version: 1, }; @@ -184,3 +200,432 @@ mod tests; #[cfg(feature = "runtime-benchmarks")] mod benchmarks; + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Authorities::::get().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl fp_rpc::EthereumRuntimeRPCApi for Runtime { + fn chain_id() -> u64 { + ::ChainId::get() + } + + fn account_basic(address: H160) -> EVMAccount { + let (account, _) = EVM::account_basic(&address); + account + } + + fn gas_price() -> U256 { + let (gas_price, _) = ::FeeCalculator::min_gas_price(); + gas_price + } + + fn account_code_at(address: H160) -> Vec { + pallet_evm::AccountCodes::::get(address) + } + + fn author() -> H160 { + >::find_author() + } + + fn storage_at(address: H160, index: U256) -> H256 { + let mut tmp = [0u8; 32]; + index.to_big_endian(&mut tmp); + pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) + } + + fn call( + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + use pallet_evm::GasWeightMapping as _; + + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + // Estimated encoded transaction size must be based on the heaviest transaction + // type (EIP1559Transaction) to be compatible with all transaction types. + let mut estimated_transaction_len = data.len() + + // pallet ethereum index: 1 + // transact call index: 1 + // Transaction enum variant: 1 + // chain_id 8 bytes + // nonce: 32 + // max_priority_fee_per_gas: 32 + // max_fee_per_gas: 32 + // gas_limit: 32 + // action: 21 (enum varianrt + call address) + // value: 32 + // access_list: 1 (empty vec size) + // 65 bytes signature + 258; + + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + + let gas_limit = if gas_limit > U256::from(u64::MAX) { + u64::MAX + } else { + gas_limit.low_u64() + }; + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + + ::Runner::call( + from, + to, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + false, + true, + weight_limit, + proof_size_base_cost, + config.as_ref().unwrap_or(::config()), + ).map_err(|err| err.error.into()) + } + + fn create( + from: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + let is_transactional = false; + let validate = true; + let evm_config = config.as_ref().unwrap_or(::config()); + ::Runner::create( + from, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + None, + None, + evm_config, + ).map_err(|err| err.error.into()) + } + + fn current_transaction_statuses() -> Option> { + pallet_ethereum::CurrentTransactionStatuses::::get() + } + + fn current_block() -> Option { + pallet_ethereum::CurrentBlock::::get() + } + + fn current_receipts() -> Option> { + pallet_ethereum::CurrentReceipts::::get() + } + + fn current_all() -> ( + Option, + Option>, + Option> + ) { + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentReceipts::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + + fn extrinsic_filter( + xts: Vec<::Extrinsic>, + ) -> Vec { + xts.into_iter().filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None + }).collect::>() + } + + fn elasticity() -> Option { + Some(pallet_base_fee::Elasticity::::get()) + } + + fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + } + + impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { + fn convert_transaction(transaction: EthereumTransaction) -> ::Extrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, laos_primitives::RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch}; + + impl frame_system_benchmarking::Config for Runtime {} + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use frame_support::traits::WhitelistedStorageKeys; + + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + Default::default() + } + } +} diff --git a/runtime/laos/src/tests/metadata.rs b/runtime/laos/src/tests/metadata.rs new file mode 100644 index 000000000..97c5372ed --- /dev/null +++ b/runtime/laos/src/tests/metadata.rs @@ -0,0 +1,28 @@ +use super::ExtBuilder; +use crate::Runtime; +use assert_json_diff::assert_json_eq; +use frame_metadata::RuntimeMetadataPrefixed; +use parity_scale_codec::Decode; +use serde_json::Value; + +#[test] +fn test_metadata_matches_golden_json() { + // Load the golden JSON metadata. + let golden_json = include_str!("metadata15.golden"); + let golden_metadata: Value = + serde_json::from_str(golden_json).expect("Failed to parse golden JSON metadata"); + + ExtBuilder::default().build().execute_with(|| { + // Obtain the current metadata. + let current_metadata_prefixed = Runtime::metadata_at_version(15).unwrap(); + + let bytes = &*current_metadata_prefixed; + let metadata: RuntimeMetadataPrefixed = Decode::decode(&mut &bytes[..]).unwrap(); + + // Serialize metadata directly to a serde_json::Value + let metadata_value: Value = serde_json::to_value(metadata) + .expect("Failed to serialize current metadata to JSON Value"); + + assert_json_eq!(metadata_value, golden_metadata); + }); +} diff --git a/runtime/laos/src/tests/metadata15.golden b/runtime/laos/src/tests/metadata15.golden new file mode 100644 index 000000000..6c95b8818 --- /dev/null +++ b/runtime/laos/src/tests/metadata15.golden @@ -0,0 +1,44425 @@ +[ + 1635018093, + { + "V15": { + "types": { + "types": [ + { + "id": 0, + "type": { + "path": [ + "fp_account", + "AccountId20" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 20]" + } + ] + } + } + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 20, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce" + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData" + } + ] + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance" + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance" + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags" + } + ] + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "u128" + } + ] + } + } + } + }, + { + "id": 8, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T" + }, + { + "name": "operational", + "type": 10, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64" + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 11, + "type": { + "def": { + "compact": { + "type": 12 + } + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "def": { + "composite": { + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 14, + "type": { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + } + }, + { + "id": 15, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 16, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 17, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 17, + "type": { + "def": { + "sequence": { + "type": 18 + } + } + } + }, + { + "id": 18, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "type": 19, + "typeName": "ConsensusEngineId" + }, + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 6 + }, + { + "name": "Consensus", + "fields": [ + { + "type": 19, + "typeName": "ConsensusEngineId" + }, + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 4 + }, + { + "name": "Seal", + "fields": [ + { + "type": 19, + "typeName": "ConsensusEngineId" + }, + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 5 + }, + { + "name": "Other", + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 0 + }, + { + "name": "RuntimeEnvironmentUpdated", + "index": 8 + } + ] + } + } + } + }, + { + "id": 19, + "type": { + "def": { + "array": { + "len": 4, + "type": 2 + } + } + } + }, + { + "id": 20, + "type": { + "def": { + "sequence": { + "type": 21 + } + } + } + }, + { + "id": 21, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 22 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 175, + "typeName": "Phase" + }, + { + "name": "event", + "type": 22, + "typeName": "E" + }, + { + "name": "topics", + "type": 164, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 22, + "type": { + "path": [ + "laos_runtime", + "RuntimeEvent" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 23, + "typeName": "frame_system::Event" + } + ], + "index": 0 + }, + { + "name": "ParachainSystem", + "fields": [ + { + "type": 32, + "typeName": "cumulus_pallet_parachain_system::Event" + } + ], + "index": 1 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 34, + "typeName": "pallet_sudo::Event" + } + ], + "index": 4 + }, + { + "name": "Utility", + "fields": [ + { + "type": 38, + "typeName": "pallet_utility::Event" + } + ], + "index": 5 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 39, + "typeName": "pallet_multisig::Event" + } + ], + "index": 6 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 41, + "typeName": "pallet_proxy::Event" + } + ], + "index": 7 + }, + { + "name": "Identity", + "fields": [ + { + "type": 44, + "typeName": "pallet_identity::Event" + } + ], + "index": 8 + }, + { + "name": "Balances", + "fields": [ + { + "type": 46, + "typeName": "pallet_balances::Event" + } + ], + "index": 10 + }, + { + "name": "TransactionPayment", + "fields": [ + { + "type": 48, + "typeName": "pallet_transaction_payment::Event" + } + ], + "index": 11 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 49, + "typeName": "pallet_vesting::Event" + } + ], + "index": 12 + }, + { + "name": "Session", + "fields": [ + { + "type": 50, + "typeName": "pallet_session::Event" + } + ], + "index": 21 + }, + { + "name": "ParachainStaking", + "fields": [ + { + "type": 51, + "typeName": "pallet_parachain_staking::Event" + } + ], + "index": 24 + }, + { + "name": "XcmpQueue", + "fields": [ + { + "type": 57, + "typeName": "cumulus_pallet_xcmp_queue::Event" + } + ], + "index": 30 + }, + { + "name": "PolkadotXcm", + "fields": [ + { + "type": 58, + "typeName": "pallet_xcm::Event" + } + ], + "index": 31 + }, + { + "name": "CumulusXcm", + "fields": [ + { + "type": 132, + "typeName": "cumulus_pallet_xcm::Event" + } + ], + "index": 32 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 133, + "typeName": "pallet_message_queue::Event" + } + ], + "index": 34 + }, + { + "name": "Council", + "fields": [ + { + "type": 137, + "typeName": "pallet_collective::Event" + } + ], + "index": 40 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 138, + "typeName": "pallet_treasury::Event" + } + ], + "index": 41 + }, + { + "name": "Elections", + "fields": [ + { + "type": 139, + "typeName": "pallet_elections_phragmen::Event" + } + ], + "index": 42 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 142, + "typeName": "pallet_preimage::Event" + } + ], + "index": 43 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 143, + "typeName": "pallet_collective::Event" + } + ], + "index": 44 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 144, + "typeName": "pallet_scheduler::Event" + } + ], + "index": 45 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 146, + "typeName": "pallet_democracy::Event" + } + ], + "index": 46 + }, + { + "name": "TechnicalCommitteeMembership", + "fields": [ + { + "type": 151, + "typeName": "pallet_membership::Event" + } + ], + "index": 47 + }, + { + "name": "Ethereum", + "fields": [ + { + "type": 152, + "typeName": "pallet_ethereum::Event" + } + ], + "index": 50 + }, + { + "name": "EVM", + "fields": [ + { + "type": 162, + "typeName": "pallet_evm::Event" + } + ], + "index": 51 + }, + { + "name": "BaseFee", + "fields": [ + { + "type": 165, + "typeName": "pallet_base_fee::Event" + } + ], + "index": 53 + }, + { + "name": "LaosEvolution", + "fields": [ + { + "type": 169, + "typeName": "pallet_laos_evolution::Event" + } + ], + "index": 100 + }, + { + "name": "AssetMetadataExtender", + "fields": [ + { + "type": 173, + "typeName": "pallet_asset_metadata_extender::Event" + } + ], + "index": 101 + } + ] + } + } + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 24, + "typeName": "DispatchInfo" + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 27, + "typeName": "DispatchError" + }, + { + "name": "dispatch_info", + "type": 24, + "typeName": "DispatchInfo" + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool" + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "class", + "type": 25, + "typeName": "DispatchClass" + }, + { + "name": "pays_fee", + "type": 26, + "typeName": "Pays" + } + ] + } + } + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "index": 0 + }, + { + "name": "Operational", + "index": 1 + }, + { + "name": "Mandatory", + "index": 2 + } + ] + } + } + } + }, + { + "id": 26, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "index": 0 + }, + { + "name": "No", + "index": 1 + } + ] + } + } + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "index": 0 + }, + { + "name": "CannotLookup", + "index": 1 + }, + { + "name": "BadOrigin", + "index": 2 + }, + { + "name": "Module", + "fields": [ + { + "type": 28, + "typeName": "ModuleError" + } + ], + "index": 3 + }, + { + "name": "ConsumerRemaining", + "index": 4 + }, + { + "name": "NoProviders", + "index": 5 + }, + { + "name": "TooManyConsumers", + "index": 6 + }, + { + "name": "Token", + "fields": [ + { + "type": 29, + "typeName": "TokenError" + } + ], + "index": 7 + }, + { + "name": "Arithmetic", + "fields": [ + { + "type": 30, + "typeName": "ArithmeticError" + } + ], + "index": 8 + }, + { + "name": "Transactional", + "fields": [ + { + "type": 31, + "typeName": "TransactionalError" + } + ], + "index": 9 + }, + { + "name": "Exhausted", + "index": 10 + }, + { + "name": "Corruption", + "index": 11 + }, + { + "name": "Unavailable", + "index": 12 + }, + { + "name": "RootNotAllowed", + "index": 13 + } + ] + } + } + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8" + }, + { + "name": "error", + "type": 19, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]" + } + ] + } + } + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "index": 0 + }, + { + "name": "OnlyProvider", + "index": 1 + }, + { + "name": "BelowMinimum", + "index": 2 + }, + { + "name": "CannotCreate", + "index": 3 + }, + { + "name": "UnknownAsset", + "index": 4 + }, + { + "name": "Frozen", + "index": 5 + }, + { + "name": "Unsupported", + "index": 6 + }, + { + "name": "CannotCreateHold", + "index": 7 + }, + { + "name": "NotExpendable", + "index": 8 + }, + { + "name": "Blocked", + "index": 9 + } + ] + } + } + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "index": 0 + }, + { + "name": "Overflow", + "index": 1 + }, + { + "name": "DivisionByZero", + "index": 2 + } + ] + } + } + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "index": 0 + }, + { + "name": "NoLayer", + "index": 1 + } + ] + } + } + } + }, + { + "id": 32, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidationFunctionStored", + "index": 0, + "docs": [ + "The validation function has been scheduled to apply." + ] + }, + { + "name": "ValidationFunctionApplied", + "fields": [ + { + "name": "relay_chain_block_num", + "type": 4, + "typeName": "RelayChainBlockNumber" + } + ], + "index": 1, + "docs": [ + "The validation function was applied as of the contained relay chain block number." + ] + }, + { + "name": "ValidationFunctionDiscarded", + "index": 2, + "docs": [ + "The relay-chain aborted the upgrade process." + ] + }, + { + "name": "DownwardMessagesReceived", + "fields": [ + { + "name": "count", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Some downward messages have been received and will be processed." + ] + }, + { + "name": "DownwardMessagesProcessed", + "fields": [ + { + "name": "weight_used", + "type": 10, + "typeName": "Weight" + }, + { + "name": "dmq_head", + "type": 13, + "typeName": "relay_chain::Hash" + } + ], + "index": 4, + "docs": [ + "Downward messages were processed using the given weight." + ] + }, + { + "name": "UpwardMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 33, + "typeName": "Option" + } + ], + "index": 5, + "docs": [ + "An upward message was sent to the relay chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 14 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 34, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 35, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 0, + "docs": [ + "A sudo call just took place." + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old", + "type": 37, + "typeName": "Option", + "docs": [ + "The old sudo key (if one was previously set)." + ] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new sudo key (if one was set)." + ] + } + ], + "index": 1, + "docs": [ + "The sudo key has been updated." + ] + }, + { + "name": "KeyRemoved", + "index": 2, + "docs": [ + "The key was permanently removed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 35, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 3, + "docs": [ + "A [sudo_as](Pallet::sudo_as) call just took place." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 35, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 27 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 36 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 27 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 36, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 37, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 0 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + }, + { + "name": "error", + "type": 27, + "typeName": "DispatchError" + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 27, + "typeName": "DispatchError" + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "CallHash" + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 40, + "typeName": "Timepoint>" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "CallHash" + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 40, + "typeName": "Timepoint>" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "CallHash" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 40, + "typeName": "Timepoint>" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "CallHash" + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 40, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "disambiguation_index", + "type": 43, + "typeName": "u16" + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf" + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 42, + "type": { + "path": [ + "laos_runtime", + "configs", + "proxy", + "ProxyType" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "index": 0 + }, + { + "name": "Staking", + "index": 3 + } + ] + } + } + } + }, + { + "id": 43, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 44, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 9, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + }, + { + "name": "AuthorityAdded", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "A username authority was added." + ] + }, + { + "name": "AuthorityRemoved", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "A username authority was removed." + ] + }, + { + "name": "UsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 12, + "docs": [ + "A username was set for `who`." + ] + }, + { + "name": "UsernameQueued", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "username", + "type": 45, + "typeName": "Username" + }, + { + "name": "expiration", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 13, + "docs": [ + "A username was queued, but `who` must accept it prior to `expiration`." + ] + }, + { + "name": "PreapprovalExpired", + "fields": [ + { + "name": "whose", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "A queued username passed its expiration without being claimed and was removed." + ] + }, + { + "name": "PrimaryUsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 15, + "docs": [ + "A username was set as a primary and can be looked up from `who`." + ] + }, + { + "name": "DanglingUsernameRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 16, + "docs": [ + "A dangling username (as in, a username corresponding to an account that has removed its", + "identity) has been removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 45, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 46, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "destination_status", + "type": 47, + "typeName": "Status" + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 47, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "index": 0 + }, + { + "name": "Reserved", + "index": 1 + } + ] + } + } + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 49, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 51, + "type": { + "path": [ + "pallet_parachain_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRound", + "fields": [ + { + "name": "starting_block", + "type": 12, + "typeName": "u64" + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "selected_collators_number", + "type": 4, + "typeName": "u32" + }, + { + "name": "total_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Started new round." + ] + }, + { + "name": "JoinedCollatorCandidates", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount_locked", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "new_total_amt_locked", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Account joined the set of collator candidates." + ] + }, + { + "name": "CollatorChosen", + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "collator_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "total_exposed_amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Candidate selected for collators. Total Exposed Amount includes all delegations." + ] + }, + { + "name": "CandidateBondLessRequested", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount_to_decrease", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "execute_round", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 3, + "docs": [ + "Candidate requested to decrease a self bond." + ] + }, + { + "name": "CandidateBondedMore", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "new_total_bond", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Candidate has increased a self bond." + ] + }, + { + "name": "CandidateBondedLess", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "new_bond", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "Candidate has decreased a self bond." + ] + }, + { + "name": "CandidateWentOffline", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 6, + "docs": [ + "Candidate temporarily leave the set of collator candidates without unbonding." + ] + }, + { + "name": "CandidateBackOnline", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "Candidate rejoins the set of collator candidates." + ] + }, + { + "name": "CandidateScheduledExit", + "fields": [ + { + "name": "exit_allowed_round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "scheduled_exit", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 8, + "docs": [ + "Candidate has requested to leave the set of candidates." + ] + }, + { + "name": "CancelledCandidateExit", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 9, + "docs": [ + "Cancelled request to leave the set of candidates." + ] + }, + { + "name": "CancelledCandidateBondLess", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "execute_round", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 10, + "docs": [ + "Cancelled request to decrease candidate's bond." + ] + }, + { + "name": "CandidateLeft", + "fields": [ + { + "name": "ex_candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unlocked_amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "new_total_amt_locked", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 11, + "docs": [ + "Candidate has left the set of candidates." + ] + }, + { + "name": "DelegationDecreaseScheduled", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount_to_decrease", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "execute_round", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 12, + "docs": [ + "Delegator requested to decrease a bond for the collator candidate." + ] + }, + { + "name": "DelegationIncreased", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "in_top", + "type": 8, + "typeName": "bool" + } + ], + "index": 13 + }, + { + "name": "DelegationDecreased", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "in_top", + "type": 8, + "typeName": "bool" + } + ], + "index": 14 + }, + { + "name": "DelegatorExitScheduled", + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "scheduled_exit", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 15, + "docs": [ + "Delegator requested to leave the set of delegators." + ] + }, + { + "name": "DelegationRevocationScheduled", + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "scheduled_exit", + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 16, + "docs": [ + "Delegator requested to revoke delegation." + ] + }, + { + "name": "DelegatorLeft", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unstaked_amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 17, + "docs": [ + "Delegator has left the set of delegators." + ] + }, + { + "name": "DelegationRevoked", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unstaked_amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 18, + "docs": [ + "Delegation revoked." + ] + }, + { + "name": "DelegationKicked", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unstaked_amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 19, + "docs": [ + "Delegation kicked." + ] + }, + { + "name": "DelegatorExitCancelled", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 20, + "docs": [ + "Cancelled a pending request to exit the set of delegators." + ] + }, + { + "name": "CancelledDelegationRequest", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "cancelled_request", + "type": 52, + "typeName": "CancelledScheduledRequest>" + }, + { + "name": "collator", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 21, + "docs": [ + "Cancelled request to change an existing delegation." + ] + }, + { + "name": "Delegation", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "locked_amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegator_position", + "type": 54, + "typeName": "DelegatorAdded>" + }, + { + "name": "auto_compound", + "type": 55, + "typeName": "Percent" + } + ], + "index": 22, + "docs": [ + "New delegation (increase of the existing one)." + ] + }, + { + "name": "DelegatorLeftCandidate", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unstaked_amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "total_candidate_staked", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 23, + "docs": [ + "Delegation from candidate state has been remove." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rewards", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 24, + "docs": [ + "Paid the account (delegator or collator) the balance as liquid rewards." + ] + }, + { + "name": "ReservedForParachainBond", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 25, + "docs": [ + "Transferred to account which holds funds reserved for parachain bond." + ] + }, + { + "name": "ParachainBondAccountSet", + "fields": [ + { + "name": "old", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 26, + "docs": [ + "Account (re)set for parachain bond treasury." + ] + }, + { + "name": "ParachainBondReservePercentSet", + "fields": [ + { + "name": "old", + "type": 55, + "typeName": "Percent" + }, + { + "name": "new", + "type": 55, + "typeName": "Percent" + } + ], + "index": 27, + "docs": [ + "Percent of inflation reserved for parachain bond (re)set." + ] + }, + { + "name": "InflationSet", + "fields": [ + { + "name": "annual_min", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "annual_ideal", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "annual_max", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "round_min", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "round_ideal", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "round_max", + "type": 56, + "typeName": "Perbill" + } + ], + "index": 28, + "docs": [ + "Annual inflation input (first 3) was used to derive new per-round inflation (last 3)" + ] + }, + { + "name": "StakeExpectationsSet", + "fields": [ + { + "name": "expect_min", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "expect_ideal", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "expect_max", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 29, + "docs": [ + "Staking expectations set." + ] + }, + { + "name": "TotalSelectedSet", + "fields": [ + { + "name": "old", + "type": 4, + "typeName": "u32" + }, + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 30, + "docs": [ + "Set total selected candidates to this value." + ] + }, + { + "name": "CollatorCommissionSet", + "fields": [ + { + "name": "old", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "new", + "type": 56, + "typeName": "Perbill" + } + ], + "index": 31, + "docs": [ + "Set collator commission to this value." + ] + }, + { + "name": "BlocksPerRoundSet", + "fields": [ + { + "name": "current_round", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "first_block", + "type": 12, + "typeName": "u64" + }, + { + "name": "old", + "type": 4, + "typeName": "u32" + }, + { + "name": "new", + "type": 4, + "typeName": "u32" + }, + { + "name": "new_per_round_inflation_min", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "new_per_round_inflation_ideal", + "type": 56, + "typeName": "Perbill" + }, + { + "name": "new_per_round_inflation_max", + "type": 56, + "typeName": "Perbill" + } + ], + "index": 32, + "docs": [ + "Set blocks per round" + ] + }, + { + "name": "AutoCompoundSet", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "value", + "type": 55, + "typeName": "Percent" + } + ], + "index": 33, + "docs": [ + "Auto-compounding reward percent was set for a delegation." + ] + }, + { + "name": "Compounded", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 34, + "docs": [ + "Compounded a portion of rewards towards the delegation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_parachain_staking", + "delegation_requests", + "CancelledScheduledRequest" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when_executable", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "action", + "type": 53, + "typeName": "DelegationAction" + } + ] + } + } + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_parachain_staking", + "delegation_requests", + "DelegationAction" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Revoke", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Decrease", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "DelegatorAdded" + ], + "params": [ + { + "name": "B", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AddedToTop", + "fields": [ + { + "name": "new_total", + "type": 6, + "typeName": "B" + } + ], + "index": 0 + }, + { + "name": "AddedToBottom", + "index": 1 + } + ] + } + } + } + }, + { + "id": 55, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 56, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 57, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "XcmpMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 0, + "docs": [ + "An HRMP message was sent to a sibling parachain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 59, + "typeName": "xcm::latest::Outcome" + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "message", + "type": 78, + "typeName": "Xcm<()>" + }, + { + "name": "message_id", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 1, + "docs": [ + "A XCM message was sent." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + } + ], + "index": 2, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 89, + "typeName": "Response" + } + ], + "index": 3, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8" + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8" + } + ], + "index": 4, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8" + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8" + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 5, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8" + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8" + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8" + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8" + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "expected_location", + "type": 98, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + } + ], + "index": 9, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + } + ], + "index": 10, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "assets", + "type": 106, + "typeName": "VersionedAssets" + } + ], + "index": 11, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion" + }, + { + "name": "cost", + "type": 81, + "typeName": "Assets" + }, + { + "name": "message_id", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 12, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Location" + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion" + } + ], + "index": 13, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "error", + "type": 60, + "typeName": "XcmError" + } + ], + "index": 14, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 131, + "typeName": "VersionedLocation" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + } + ], + "index": 15, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + } + ], + "index": 16, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId" + }, + { + "name": "expected_querier", + "type": 61, + "typeName": "Location" + }, + { + "name": "maybe_actual_querier", + "type": 98, + "typeName": "Option" + } + ], + "index": 17, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "cost", + "type": 81, + "typeName": "Assets" + }, + { + "name": "message_id", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 18, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "cost", + "type": 81, + "typeName": "Assets" + }, + { + "name": "message_id", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 19, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "cost", + "type": 81, + "typeName": "Assets" + }, + { + "name": "message_id", + "type": 14, + "typeName": "XcmHash" + } + ], + "index": 20, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 61, + "typeName": "Location" + }, + { + "name": "fees", + "type": 81, + "typeName": "Assets" + } + ], + "index": 21, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "origin", + "type": 61, + "typeName": "Location" + }, + { + "name": "assets", + "type": 106, + "typeName": "VersionedAssets" + } + ], + "index": 22, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion" + } + ], + "index": 23, + "docs": [ + "A XCM version migration finished." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 59, + "type": { + "path": [ + "staging_xcm", + "v4", + "traits", + "Outcome" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight" + } + ], + "index": 0 + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight" + }, + { + "name": "error", + "type": 60, + "typeName": "Error" + } + ], + "index": 1 + }, + { + "name": "Error", + "fields": [ + { + "name": "error", + "type": 60, + "typeName": "Error" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 60, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "index": 0 + }, + { + "name": "Unimplemented", + "index": 1 + }, + { + "name": "UntrustedReserveLocation", + "index": 2 + }, + { + "name": "UntrustedTeleportLocation", + "index": 3 + }, + { + "name": "LocationFull", + "index": 4 + }, + { + "name": "LocationNotInvertible", + "index": 5 + }, + { + "name": "BadOrigin", + "index": 6 + }, + { + "name": "InvalidLocation", + "index": 7 + }, + { + "name": "AssetNotFound", + "index": 8 + }, + { + "name": "FailedToTransactAsset", + "index": 9 + }, + { + "name": "NotWithdrawable", + "index": 10 + }, + { + "name": "LocationCannotHold", + "index": 11 + }, + { + "name": "ExceedsMaxMessageSize", + "index": 12 + }, + { + "name": "DestinationUnsupported", + "index": 13 + }, + { + "name": "Transport", + "index": 14 + }, + { + "name": "Unroutable", + "index": 15 + }, + { + "name": "UnknownClaim", + "index": 16 + }, + { + "name": "FailedToDecode", + "index": 17 + }, + { + "name": "MaxWeightInvalid", + "index": 18 + }, + { + "name": "NotHoldingFees", + "index": 19 + }, + { + "name": "TooExpensive", + "index": 20 + }, + { + "name": "Trap", + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ], + "index": 21 + }, + { + "name": "ExpectationFalse", + "index": 22 + }, + { + "name": "PalletNotFound", + "index": 23 + }, + { + "name": "NameMismatch", + "index": 24 + }, + { + "name": "VersionIncompatible", + "index": 25 + }, + { + "name": "HoldingWouldOverflow", + "index": 26 + }, + { + "name": "ExportError", + "index": 27 + }, + { + "name": "ReanchorFailed", + "index": 28 + }, + { + "name": "NoDeal", + "index": 29 + }, + { + "name": "FeesNotMet", + "index": 30 + }, + { + "name": "LockError", + "index": 31 + }, + { + "name": "NoPermission", + "index": 32 + }, + { + "name": "Unanchored", + "index": 33 + }, + { + "name": "NotDepositable", + "index": 34 + }, + { + "name": "UnhandledXcmVersion", + "index": 35 + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "type": 10, + "typeName": "Weight" + } + ], + "index": 36 + }, + { + "name": "Barrier", + "index": 37 + }, + { + "name": "WeightNotComputable", + "index": 38 + }, + { + "name": "ExceedsStackLimit", + "index": 39 + } + ] + } + } + } + }, + { + "id": 61, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8" + }, + { + "name": "interior", + "type": 62, + "typeName": "Junctions" + } + ] + } + } + } + }, + { + "id": 62, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "index": 0 + }, + { + "name": "X1", + "fields": [ + { + "type": 63, + "typeName": "Arc<[Junction; 1]>" + } + ], + "index": 1 + }, + { + "name": "X2", + "fields": [ + { + "type": 71, + "typeName": "Arc<[Junction; 2]>" + } + ], + "index": 2 + }, + { + "name": "X3", + "fields": [ + { + "type": 72, + "typeName": "Arc<[Junction; 3]>" + } + ], + "index": 3 + }, + { + "name": "X4", + "fields": [ + { + "type": 73, + "typeName": "Arc<[Junction; 4]>" + } + ], + "index": 4 + }, + { + "name": "X5", + "fields": [ + { + "type": 74, + "typeName": "Arc<[Junction; 5]>" + } + ], + "index": 5 + }, + { + "name": "X6", + "fields": [ + { + "type": 75, + "typeName": "Arc<[Junction; 6]>" + } + ], + "index": 6 + }, + { + "name": "X7", + "fields": [ + { + "type": 76, + "typeName": "Arc<[Junction; 7]>" + } + ], + "index": 7 + }, + { + "name": "X8", + "fields": [ + { + "type": 77, + "typeName": "Arc<[Junction; 8]>" + } + ], + "index": 8 + } + ] + } + } + } + }, + { + "id": 63, + "type": { + "def": { + "array": { + "len": 1, + "type": 64 + } + } + } + }, + { + "id": 64, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Parachain", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 66, + "typeName": "Option" + }, + { + "name": "id", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 66, + "typeName": "Option" + }, + { + "name": "index", + "type": 11, + "typeName": "u64" + } + ], + "index": 2 + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 66, + "typeName": "Option" + }, + { + "name": "key", + "type": 1, + "typeName": "[u8; 20]" + } + ], + "index": 3 + }, + { + "name": "PalletInstance", + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 4 + }, + { + "name": "GeneralIndex", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 5 + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8" + }, + { + "name": "data", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 6 + }, + { + "name": "OnlyChild", + "index": 7 + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 69, + "typeName": "BodyId" + }, + { + "name": "part", + "type": 70, + "typeName": "BodyPart" + } + ], + "index": 8 + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "type": 67, + "typeName": "NetworkId" + } + ], + "index": 9 + } + ] + } + } + } + }, + { + "id": 65, + "type": { + "def": { + "compact": { + "type": 4 + } + } + } + }, + { + "id": 66, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 67 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 67 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 67, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 0 + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64" + }, + { + "name": "block_hash", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + }, + { + "name": "Polkadot", + "index": 2 + }, + { + "name": "Kusama", + "index": 3 + }, + { + "name": "Westend", + "index": 4 + }, + { + "name": "Rococo", + "index": 5 + }, + { + "name": "Wococo", + "index": 6 + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64" + } + ], + "index": 7 + }, + { + "name": "BitcoinCore", + "index": 8 + }, + { + "name": "BitcoinCash", + "index": 9 + }, + { + "name": "PolkadotBulletin", + "index": 10 + } + ] + } + } + } + }, + { + "id": 68, + "type": { + "def": { + "compact": { + "type": 6 + } + } + } + }, + { + "id": 69, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "index": 0 + }, + { + "name": "Moniker", + "fields": [ + { + "type": 19, + "typeName": "[u8; 4]" + } + ], + "index": 1 + }, + { + "name": "Index", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "Executive", + "index": 3 + }, + { + "name": "Technical", + "index": 4 + }, + { + "name": "Legislative", + "index": 5 + }, + { + "name": "Judicial", + "index": 6 + }, + { + "name": "Defense", + "index": 7 + }, + { + "name": "Administration", + "index": 8 + }, + { + "name": "Treasury", + "index": 9 + } + ] + } + } + } + }, + { + "id": 70, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "index": 0 + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 65, + "typeName": "u32" + } + ], + "index": 1 + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 3 + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 71, + "type": { + "def": { + "array": { + "len": 2, + "type": 64 + } + } + } + }, + { + "id": 72, + "type": { + "def": { + "array": { + "len": 3, + "type": 64 + } + } + } + }, + { + "id": 73, + "type": { + "def": { + "array": { + "len": 4, + "type": 64 + } + } + } + }, + { + "id": 74, + "type": { + "def": { + "array": { + "len": 5, + "type": 64 + } + } + } + }, + { + "id": 75, + "type": { + "def": { + "array": { + "len": 6, + "type": 64 + } + } + } + }, + { + "id": 76, + "type": { + "def": { + "array": { + "len": 7, + "type": 64 + } + } + } + }, + { + "id": 77, + "type": { + "def": { + "array": { + "len": 8, + "type": 64 + } + } + } + }, + { + "id": 78, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 79, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 79, + "type": { + "def": { + "sequence": { + "type": 80 + } + } + } + }, + { + "id": 80, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 89, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "querier", + "type": 98, + "typeName": "Option" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight" + }, + { + "name": "call", + "type": 100, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 62, + "typeName": "InteriorLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "want", + "type": 81, + "typeName": "Assets" + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "reserve", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 101, + "typeName": "QueryResponseInfo" + }, + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 83, + "typeName": "Asset" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 78, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 78, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "ticket", + "type": 61, + "typeName": "Location" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + }, + { + "name": "BurnAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 28 + }, + { + "name": "ExpectAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 29 + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "type": 98, + "typeName": "Option" + } + ], + "index": 30 + }, + { + "name": "ExpectError", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 31 + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 32 + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "response_info", + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 33 + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "crate_major", + "type": 65, + "typeName": "u32" + }, + { + "name": "min_crate_minor", + "type": 65, + "typeName": "u32" + } + ], + "index": 34 + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 35 + }, + { + "name": "ClearTransactStatus", + "index": 36 + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "type": 64, + "typeName": "Junction" + } + ], + "index": 37 + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 67, + "typeName": "NetworkId" + }, + { + "name": "destination", + "type": 62, + "typeName": "InteriorLocation" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 38 + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "unlocker", + "type": 61, + "typeName": "Location" + } + ], + "index": 39 + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "target", + "type": 61, + "typeName": "Location" + } + ], + "index": 40 + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "owner", + "type": 61, + "typeName": "Location" + } + ], + "index": 41 + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "locker", + "type": 61, + "typeName": "Location" + } + ], + "index": 42 + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool" + } + ], + "index": 43 + }, + { + "name": "SetTopic", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 44 + }, + { + "name": "ClearTopic", + "index": 45 + }, + { + "name": "AliasOrigin", + "fields": [ + { + "type": 61, + "typeName": "Location" + } + ], + "index": 46 + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + }, + { + "name": "check_origin", + "type": 98, + "typeName": "Option" + } + ], + "index": 47 + } + ] + } + } + } + }, + { + "id": 81, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "def": { + "composite": { + "fields": [ + { + "type": 82, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 82, + "type": { + "def": { + "sequence": { + "type": 83 + } + } + } + }, + { + "id": 83, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 85, + "typeName": "Fungibility" + } + ] + } + } + } + }, + { + "id": 84, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 61, + "typeName": "Location" + } + ] + } + } + } + }, + { + "id": 85, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 0 + }, + { + "name": "NonFungible", + "fields": [ + { + "type": 86, + "typeName": "AssetInstance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 86, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 1 + }, + { + "name": "Array4", + "fields": [ + { + "type": 19, + "typeName": "[u8; 4]" + } + ], + "index": 2 + }, + { + "name": "Array8", + "fields": [ + { + "type": 87, + "typeName": "[u8; 8]" + } + ], + "index": 3 + }, + { + "name": "Array16", + "fields": [ + { + "type": 88, + "typeName": "[u8; 16]" + } + ], + "index": 4 + }, + { + "name": "Array32", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 87, + "type": { + "def": { + "array": { + "len": 8, + "type": 2 + } + } + } + }, + { + "id": 88, + "type": { + "def": { + "array": { + "len": 16, + "type": 2 + } + } + } + }, + { + "id": 89, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "index": 0 + }, + { + "name": "Assets", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 1 + }, + { + "name": "ExecutionResult", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 2 + }, + { + "name": "Version", + "fields": [ + { + "type": 4, + "typeName": "super::Version" + } + ], + "index": 3 + }, + { + "name": "PalletsInfo", + "fields": [ + { + "type": 92, + "typeName": "BoundedVec" + } + ], + "index": 4 + }, + { + "name": "DispatchResult", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 90, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 91 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 91 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 91, + "type": { + "def": { + "tuple": [ + 4, + 60 + ] + } + } + }, + { + "id": 92, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 93 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 95, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 93, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 94, + "typeName": "BoundedVec" + }, + { + "name": "module_name", + "type": 94, + "typeName": "BoundedVec" + }, + { + "name": "major", + "type": 65, + "typeName": "u32" + }, + { + "name": "minor", + "type": 65, + "typeName": "u32" + }, + { + "name": "patch", + "type": 65, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 94, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 95, + "type": { + "def": { + "sequence": { + "type": 93 + } + } + } + }, + { + "id": 96, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "index": 0 + }, + { + "name": "Error", + "fields": [ + { + "type": 97, + "typeName": "BoundedVec" + } + ], + "index": 1 + }, + { + "name": "TruncatedError", + "fields": [ + { + "type": 97, + "typeName": "BoundedVec" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 97, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 98, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 61 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 61 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 99, + "type": { + "path": [ + "xcm", + "v2", + "OriginKind" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "index": 0 + }, + { + "name": "SovereignAccount", + "index": 1 + }, + { + "name": "Superuser", + "index": 2 + }, + { + "name": "Xcm", + "index": 3 + } + ] + } + } + } + }, + { + "id": 100, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 101, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location" + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + } + ] + } + } + } + }, + { + "id": 102, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 0 + }, + { + "name": "Wild", + "fields": [ + { + "type": 103, + "typeName": "WildAsset" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 103, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "index": 0 + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 104, + "typeName": "WildFungibility" + } + ], + "index": 1 + }, + { + "name": "AllCounted", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 104, + "typeName": "WildFungibility" + }, + { + "name": "count", + "type": 65, + "typeName": "u32" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 104, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "index": 0 + }, + { + "name": "NonFungible", + "index": 1 + } + ] + } + } + } + }, + { + "id": 105, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "index": 0 + }, + { + "name": "Limited", + "fields": [ + { + "type": 10, + "typeName": "Weight" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 106, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "type": 107, + "typeName": "v2::MultiAssets" + } + ], + "index": 1 + }, + { + "name": "V3", + "fields": [ + { + "type": 120, + "typeName": "v3::MultiAssets" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 81, + "typeName": "v4::Assets" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 107, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssets" + ], + "def": { + "composite": { + "fields": [ + { + "type": 108, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 108, + "type": { + "def": { + "sequence": { + "type": 109 + } + } + } + }, + { + "id": 109, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAsset" + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 110, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 118, + "typeName": "Fungibility" + } + ] + } + } + } + }, + { + "id": 110, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 0 + }, + { + "name": "Abstract", + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 111, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "MultiLocation" + ], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8" + }, + { + "name": "interior", + "type": 112, + "typeName": "Junctions" + } + ] + } + } + } + }, + { + "id": 112, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "Junctions" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "index": 0 + }, + { + "name": "X1", + "fields": [ + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 1 + }, + { + "name": "X2", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 2 + }, + { + "name": "X3", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 3 + }, + { + "name": "X4", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 4 + }, + { + "name": "X5", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 5 + }, + { + "name": "X6", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 6 + }, + { + "name": "X7", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 7 + }, + { + "name": "X8", + "fields": [ + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + }, + { + "type": 113, + "typeName": "Junction" + } + ], + "index": 8 + } + ] + } + } + } + }, + { + "id": 113, + "type": { + "path": [ + "xcm", + "v2", + "junction", + "Junction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Parachain", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 114, + "typeName": "NetworkId" + }, + { + "name": "id", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 114, + "typeName": "NetworkId" + }, + { + "name": "index", + "type": 11, + "typeName": "u64" + } + ], + "index": 2 + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 114, + "typeName": "NetworkId" + }, + { + "name": "key", + "type": 1, + "typeName": "[u8; 20]" + } + ], + "index": 3 + }, + { + "name": "PalletInstance", + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 4 + }, + { + "name": "GeneralIndex", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 5 + }, + { + "name": "GeneralKey", + "fields": [ + { + "type": 115, + "typeName": "WeakBoundedVec>" + } + ], + "index": 6 + }, + { + "name": "OnlyChild", + "index": 7 + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 116, + "typeName": "BodyId" + }, + { + "name": "part", + "type": 117, + "typeName": "BodyPart" + } + ], + "index": 8 + } + ] + } + } + } + }, + { + "id": 114, + "type": { + "path": [ + "xcm", + "v2", + "NetworkId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "index": 0 + }, + { + "name": "Named", + "fields": [ + { + "type": 115, + "typeName": "WeakBoundedVec>" + } + ], + "index": 1 + }, + { + "name": "Polkadot", + "index": 2 + }, + { + "name": "Kusama", + "index": 3 + } + ] + } + } + } + }, + { + "id": 115, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 116, + "type": { + "path": [ + "xcm", + "v2", + "BodyId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "index": 0 + }, + { + "name": "Named", + "fields": [ + { + "type": 115, + "typeName": "WeakBoundedVec>" + } + ], + "index": 1 + }, + { + "name": "Index", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "Executive", + "index": 3 + }, + { + "name": "Technical", + "index": 4 + }, + { + "name": "Legislative", + "index": 5 + }, + { + "name": "Judicial", + "index": 6 + }, + { + "name": "Defense", + "index": 7 + }, + { + "name": "Administration", + "index": 8 + }, + { + "name": "Treasury", + "index": 9 + } + ] + } + } + } + }, + { + "id": 117, + "type": { + "path": [ + "xcm", + "v2", + "BodyPart" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "index": 0 + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 65, + "typeName": "u32" + } + ], + "index": 1 + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 3 + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 65, + "typeName": "u32" + }, + { + "name": "denom", + "type": 65, + "typeName": "u32" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 118, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "Fungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 0 + }, + { + "name": "NonFungible", + "fields": [ + { + "type": 119, + "typeName": "AssetInstance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 119, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetInstance" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 1 + }, + { + "name": "Array4", + "fields": [ + { + "type": 19, + "typeName": "[u8; 4]" + } + ], + "index": 2 + }, + { + "name": "Array8", + "fields": [ + { + "type": 87, + "typeName": "[u8; 8]" + } + ], + "index": 3 + }, + { + "name": "Array16", + "fields": [ + { + "type": 88, + "typeName": "[u8; 16]" + } + ], + "index": 4 + }, + { + "name": "Array32", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 5 + }, + { + "name": "Blob", + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ], + "index": 6 + } + ] + } + } + } + }, + { + "id": 120, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "def": { + "composite": { + "fields": [ + { + "type": 121, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 121, + "type": { + "def": { + "sequence": { + "type": 122 + } + } + } + }, + { + "id": 122, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 123, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 129, + "typeName": "Fungibility" + } + ] + } + } + } + }, + { + "id": 123, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 0 + }, + { + "name": "Abstract", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 124, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8" + }, + { + "name": "interior", + "type": 125, + "typeName": "Junctions" + } + ] + } + } + } + }, + { + "id": 125, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "index": 0 + }, + { + "name": "X1", + "fields": [ + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 1 + }, + { + "name": "X2", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 2 + }, + { + "name": "X3", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 3 + }, + { + "name": "X4", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 4 + }, + { + "name": "X5", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 5 + }, + { + "name": "X6", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 6 + }, + { + "name": "X7", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 7 + }, + { + "name": "X8", + "fields": [ + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + }, + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 8 + } + ] + } + } + } + }, + { + "id": 126, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Parachain", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 127, + "typeName": "Option" + }, + { + "name": "id", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 127, + "typeName": "Option" + }, + { + "name": "index", + "type": 11, + "typeName": "u64" + } + ], + "index": 2 + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 127, + "typeName": "Option" + }, + { + "name": "key", + "type": 1, + "typeName": "[u8; 20]" + } + ], + "index": 3 + }, + { + "name": "PalletInstance", + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 4 + }, + { + "name": "GeneralIndex", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 5 + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8" + }, + { + "name": "data", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 6 + }, + { + "name": "OnlyChild", + "index": 7 + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 69, + "typeName": "BodyId" + }, + { + "name": "part", + "type": 70, + "typeName": "BodyPart" + } + ], + "index": 8 + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "type": 128, + "typeName": "NetworkId" + } + ], + "index": 9 + } + ] + } + } + } + }, + { + "id": 127, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 128 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 128 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 128, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 0 + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64" + }, + { + "name": "block_hash", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1 + }, + { + "name": "Polkadot", + "index": 2 + }, + { + "name": "Kusama", + "index": 3 + }, + { + "name": "Westend", + "index": 4 + }, + { + "name": "Rococo", + "index": 5 + }, + { + "name": "Wococo", + "index": 6 + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64" + } + ], + "index": 7 + }, + { + "name": "BitcoinCore", + "index": 8 + }, + { + "name": "BitcoinCash", + "index": 9 + }, + { + "name": "PolkadotBulletin", + "index": 10 + } + ] + } + } + } + }, + { + "id": 129, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 0 + }, + { + "name": "NonFungible", + "fields": [ + { + "type": 130, + "typeName": "AssetInstance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 130, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 68, + "typeName": "u128" + } + ], + "index": 1 + }, + { + "name": "Array4", + "fields": [ + { + "type": 19, + "typeName": "[u8; 4]" + } + ], + "index": 2 + }, + { + "name": "Array8", + "fields": [ + { + "type": 87, + "typeName": "[u8; 8]" + } + ], + "index": 3 + }, + { + "name": "Array16", + "fields": [ + { + "type": 88, + "typeName": "[u8; 16]" + } + ], + "index": 4 + }, + { + "name": "Array32", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 131, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "type": 111, + "typeName": "v2::MultiLocation" + } + ], + "index": 1 + }, + { + "name": "V3", + "fields": [ + { + "type": 124, + "typeName": "v3::MultiLocation" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 61, + "typeName": "v4::Location" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 132, + "type": { + "path": [ + "cumulus_pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidFormat", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 0, + "docs": [ + "Downward message is invalid XCM.", + "\\[ id \\]" + ] + }, + { + "name": "UnsupportedVersion", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 1, + "docs": [ + "Downward message is unsupported version of XCM.", + "\\[ id \\]" + ] + }, + { + "name": "ExecutedDownward", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + }, + { + "type": 59, + "typeName": "Outcome" + } + ], + "index": 2, + "docs": [ + "Downward message executed with the given outcome.", + "\\[ id, outcome \\]" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 133, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 134, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 136, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 134, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 134, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 134, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 134, + "type": { + "path": [ + "cumulus_primitives_core", + "AggregateMessageOrigin" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "index": 0 + }, + { + "name": "Parent", + "index": 1 + }, + { + "name": "Sibling", + "fields": [ + { + "type": 135, + "typeName": "ParaId" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 135, + "type": { + "path": [ + "polkadot_parachain_primitives", + "primitives", + "Id" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 136, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "index": 0 + }, + { + "name": "Corrupt", + "index": 1 + }, + { + "name": "Unsupported", + "index": 2 + }, + { + "name": "Overweight", + "fields": [ + { + "type": 10, + "typeName": "Weight" + } + ], + "index": 3 + }, + { + "name": "Yield", + "index": 4 + } + ] + } + } + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 8, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 138, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + } + ], + "index": 0, + "docs": [ + "New proposal." + ] + }, + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "slashed", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "A proposal was rejected; funds were slashed." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + }, + { + "name": "asset_kind", + "type": 36, + "typeName": "T::AssetKind" + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::Beneficiary" + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 9, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + } + ], + "index": 10, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + }, + { + "name": "payment_id", + "type": 36, + "typeName": "::Id" + } + ], + "index": 11, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + }, + { + "name": "payment_id", + "type": 36, + "typeName": "::Id" + } + ], + "index": 12, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + } + ], + "index": 13, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 139, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 140, + "typeName": "Vec<(::AccountId, BalanceOf)>" + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have has been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 140, + "type": { + "def": { + "sequence": { + "type": 141 + } + } + } + }, + { + "id": 141, + "type": { + "def": { + "tuple": [ + 0, + 6 + ] + } + } + }, + { + "id": 142, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 143, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 8, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 144, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "retries", + "type": 2, + "typeName": "u8" + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "id", + "type": 33, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 145, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "threshold", + "type": 147, + "typeName": "VoteThreshold" + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 148, + "typeName": "AccountVote>" + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 12, + "docs": [ + "An account has seconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 150, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 150, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 150, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 150, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 147, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "index": 0 + }, + { + "name": "SuperMajorityAgainst", + "index": 1 + }, + { + "name": "SimpleMajority", + "index": 2 + } + ] + } + } + } + }, + { + "id": 148, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 149, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + } + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "index": 0 + }, + { + "name": "Proposal", + "fields": [ + { + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 1 + }, + { + "name": "Referendum", + "fields": [ + { + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 152, + "type": { + "path": [ + "pallet_ethereum", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Executed", + "fields": [ + { + "name": "from", + "type": 153, + "typeName": "H160" + }, + { + "name": "to", + "type": 153, + "typeName": "H160" + }, + { + "name": "transaction_hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "exit_reason", + "type": 154, + "typeName": "ExitReason" + }, + { + "name": "extra_data", + "type": 15, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "An ethereum transaction was successfully executed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 153, + "type": { + "path": [ + "primitive_types", + "H160" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 20]" + } + ] + } + } + } + }, + { + "id": 154, + "type": { + "path": [ + "evm_core", + "error", + "ExitReason" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Succeed", + "fields": [ + { + "type": 155, + "typeName": "ExitSucceed" + } + ], + "index": 0 + }, + { + "name": "Error", + "fields": [ + { + "type": 156, + "typeName": "ExitError" + } + ], + "index": 1 + }, + { + "name": "Revert", + "fields": [ + { + "type": 160, + "typeName": "ExitRevert" + } + ], + "index": 2 + }, + { + "name": "Fatal", + "fields": [ + { + "type": 161, + "typeName": "ExitFatal" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 155, + "type": { + "path": [ + "evm_core", + "error", + "ExitSucceed" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stopped", + "index": 0 + }, + { + "name": "Returned", + "index": 1 + }, + { + "name": "Suicided", + "index": 2 + } + ] + } + } + } + }, + { + "id": 156, + "type": { + "path": [ + "evm_core", + "error", + "ExitError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "StackUnderflow", + "index": 0 + }, + { + "name": "StackOverflow", + "index": 1 + }, + { + "name": "InvalidJump", + "index": 2 + }, + { + "name": "InvalidRange", + "index": 3 + }, + { + "name": "DesignatedInvalid", + "index": 4 + }, + { + "name": "CallTooDeep", + "index": 5 + }, + { + "name": "CreateCollision", + "index": 6 + }, + { + "name": "CreateContractLimit", + "index": 7 + }, + { + "name": "InvalidCode", + "fields": [ + { + "type": 157, + "typeName": "Opcode" + } + ], + "index": 15 + }, + { + "name": "OutOfOffset", + "index": 8 + }, + { + "name": "OutOfGas", + "index": 9 + }, + { + "name": "OutOfFund", + "index": 10 + }, + { + "name": "PCUnderflow", + "index": 11 + }, + { + "name": "CreateEmpty", + "index": 12 + }, + { + "name": "Other", + "fields": [ + { + "type": 158, + "typeName": "Cow<'static, str>" + } + ], + "index": 13 + }, + { + "name": "MaxNonce", + "index": 14 + } + ] + } + } + } + }, + { + "id": 157, + "type": { + "path": [ + "evm_core", + "opcode", + "Opcode" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 158, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 159 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 159 + } + ] + } + } + } + }, + { + "id": 159, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 160, + "type": { + "path": [ + "evm_core", + "error", + "ExitRevert" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Reverted", + "index": 0 + } + ] + } + } + } + }, + { + "id": 161, + "type": { + "path": [ + "evm_core", + "error", + "ExitFatal" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotSupported", + "index": 0 + }, + { + "name": "UnhandledInterrupt", + "index": 1 + }, + { + "name": "CallErrorAsFatal", + "fields": [ + { + "type": 156, + "typeName": "ExitError" + } + ], + "index": 2 + }, + { + "name": "Other", + "fields": [ + { + "type": 158, + "typeName": "Cow<'static, str>" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 162, + "type": { + "path": [ + "pallet_evm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Log", + "fields": [ + { + "name": "log", + "type": 163, + "typeName": "Log" + } + ], + "index": 0, + "docs": [ + "Ethereum events from contracts." + ] + }, + { + "name": "Created", + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + } + ], + "index": 1, + "docs": [ + "A contract has been created at given address." + ] + }, + { + "name": "CreatedFailed", + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + } + ], + "index": 2, + "docs": [ + "A contract was attempted to be created, but the execution failed." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + } + ], + "index": 3, + "docs": [ + "A contract has been executed successfully with states applied." + ] + }, + { + "name": "ExecutedFailed", + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + } + ], + "index": 4, + "docs": [ + "A contract has been executed with errors. States are reverted with only gas fees applied." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 163, + "type": { + "path": [ + "ethereum", + "log", + "Log" + ], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + }, + { + "name": "topics", + "type": 164, + "typeName": "Vec" + }, + { + "name": "data", + "type": 15, + "typeName": "Bytes" + } + ] + } + } + } + }, + { + "id": 164, + "type": { + "def": { + "sequence": { + "type": 13 + } + } + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_base_fee", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewBaseFeePerGas", + "fields": [ + { + "name": "fee", + "type": 166, + "typeName": "U256" + } + ], + "index": 0 + }, + { + "name": "BaseFeeOverflow", + "index": 1 + }, + { + "name": "NewElasticity", + "fields": [ + { + "name": "elasticity", + "type": 168, + "typeName": "Permill" + } + ], + "index": 2 + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 166, + "type": { + "path": [ + "primitive_types", + "U256" + ], + "def": { + "composite": { + "fields": [ + { + "type": 167, + "typeName": "[u64; 4]" + } + ] + } + } + } + }, + { + "id": 167, + "type": { + "def": { + "array": { + "len": 4, + "type": 12 + } + } + } + }, + { + "id": 168, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_laos_evolution", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CollectionCreated", + "fields": [ + { + "name": "collection_id", + "type": 12, + "typeName": "CollectionId" + }, + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf" + } + ], + "index": 0, + "docs": [ + "Collection created", + "parameters. [collection_id, who]" + ] + }, + { + "name": "MintedWithExternalURI", + "fields": [ + { + "name": "collection_id", + "type": 12, + "typeName": "CollectionId" + }, + { + "name": "slot", + "type": 170, + "typeName": "Slot" + }, + { + "name": "to", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "token_uri", + "type": 172, + "typeName": "TokenUriOf" + }, + { + "name": "token_id", + "type": 166, + "typeName": "TokenId" + } + ], + "index": 1, + "docs": [ + "Asset minted", + "[collection_id, slot, to, token_uri]" + ] + }, + { + "name": "EvolvedWithExternalURI", + "fields": [ + { + "name": "collection_id", + "type": 12, + "typeName": "CollectionId" + }, + { + "name": "token_id", + "type": 166, + "typeName": "TokenId" + }, + { + "name": "token_uri", + "type": 172, + "typeName": "TokenUriOf" + } + ], + "index": 2, + "docs": [ + "Asset evolved", + "[collection_id, token_uri, token_id]" + ] + }, + { + "name": "CollectionTransferred", + "fields": [ + { + "name": "collection_id", + "type": 12, + "typeName": "CollectionId" + }, + { + "name": "from", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "to", + "type": 0, + "typeName": "AccountIdOf" + } + ], + "index": 3, + "docs": [ + "Ownership of collection was transferred", + "[collection_id, from, to]" + ] + } + ] + } + }, + "docs": [ + "Events for this pallet." + ] + } + }, + { + "id": 170, + "type": { + "path": [ + "pallet_laos_evolution", + "types", + "Slot" + ], + "def": { + "composite": { + "fields": [ + { + "type": 171, + "typeName": "[u8; 12]" + } + ] + } + } + } + }, + { + "id": 171, + "type": { + "def": { + "array": { + "len": 12, + "type": 2 + } + } + } + }, + { + "id": 172, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 173, + "type": { + "path": [ + "pallet_asset_metadata_extender", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtensionCreated", + "fields": [ + { + "name": "universal_location", + "type": 174, + "typeName": "UniversalLocationOf" + }, + { + "name": "claimer", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "token_uri", + "type": 172, + "typeName": "TokenUriOf" + } + ], + "index": 0, + "docs": [ + "Extension created", + "parameters. [universal_location, claimer, token_uri]" + ] + }, + { + "name": "ExtensionUpdated", + "fields": [ + { + "name": "universal_location", + "type": 174, + "typeName": "UniversalLocationOf" + }, + { + "name": "claimer", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "token_uri", + "type": 172, + "typeName": "TokenUriOf" + } + ], + "index": 1, + "docs": [ + "Extension updated", + "parameters. [universal_location, claimer, token_uri]" + ] + } + ] + } + }, + "docs": [ + "Events for this pallet." + ] + } + }, + { + "id": 174, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 175, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Finalization", + "index": 1 + }, + { + "name": "Initialization", + "index": 2 + } + ] + } + } + } + }, + { + "id": 176, + "type": { + "def": { + "sequence": { + "type": 145 + } + } + } + }, + { + "id": 177, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 65, + "typeName": "codec::Compact" + }, + { + "name": "spec_name", + "type": 159, + "typeName": "sp_runtime::RuntimeString" + } + ] + } + } + } + }, + { + "id": 178, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 179, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 15, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64" + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 15, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 15, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 180, + "typeName": "Vec" + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 182, + "typeName": "Vec" + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 15, + "typeName": "Key" + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 15, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 15, + "typeName": "Vec" + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 180, + "type": { + "def": { + "sequence": { + "type": 181 + } + } + } + }, + { + "id": 181, + "type": { + "def": { + "tuple": [ + 15, + 15 + ] + } + } + }, + { + "id": 182, + "type": { + "def": { + "sequence": { + "type": 15 + } + } + } + }, + { + "id": 183, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight" + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight" + }, + { + "name": "per_class", + "type": 184, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 184, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 185 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 185, + "typeName": "T" + }, + { + "name": "operational", + "type": 185, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 185, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 185, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight" + }, + { + "name": "max_extrinsic", + "type": 186, + "typeName": "Option" + }, + { + "name": "max_total", + "type": 186, + "typeName": "Option" + }, + { + "name": "reserved", + "type": 186, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 186, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 10 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 187, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 188, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 188, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T" + }, + { + "name": "operational", + "type": 4, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 189, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64" + }, + { + "name": "write", + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 190, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 159, + "typeName": "RuntimeString" + }, + { + "name": "impl_name", + "type": 159, + "typeName": "RuntimeString" + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "apis", + "type": 191, + "typeName": "ApisVec" + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 191, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 192 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 192 + } + ] + } + } + } + }, + { + "id": 192, + "type": { + "def": { + "sequence": { + "type": 193 + } + } + } + }, + { + "id": 193, + "type": { + "def": { + "tuple": [ + 87, + 4 + ] + } + } + }, + { + "id": 194, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 195, + "type": { + "def": { + "sequence": { + "type": 196 + } + } + } + }, + { + "id": 196, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "unincluded_segment", + "Ancestor" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 197, + "typeName": "UsedBandwidth" + }, + { + "name": "para_head_hash", + "type": 202, + "typeName": "Option" + }, + { + "name": "consumed_go_ahead_signal", + "type": 203, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 197, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "unincluded_segment", + "UsedBandwidth" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ump_msg_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "ump_total_bytes", + "type": 4, + "typeName": "u32" + }, + { + "name": "hrmp_outgoing", + "type": 198, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 198, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 135 + }, + { + "name": "V", + "type": 199 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 200 + } + ] + } + } + } + }, + { + "id": 199, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "unincluded_segment", + "HrmpChannelUpdate" + ], + "def": { + "composite": { + "fields": [ + { + "name": "msg_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "total_bytes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 200, + "type": { + "def": { + "sequence": { + "type": 201 + } + } + } + }, + { + "id": 201, + "type": { + "def": { + "tuple": [ + 135, + 199 + ] + } + } + }, + { + "id": 202, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 13 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 203, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 204 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 204 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 204, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "UpgradeGoAhead" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "index": 0 + }, + { + "name": "GoAhead", + "index": 1 + } + ] + } + } + } + }, + { + "id": 205, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "unincluded_segment", + "SegmentTracker" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 197, + "typeName": "UsedBandwidth" + }, + { + "name": "hrmp_watermark", + "type": 206, + "typeName": "Option" + }, + { + "name": "consumed_go_ahead_signal", + "type": 203, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 206, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 4 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 207, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "PersistedValidationData" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_head", + "type": 208, + "typeName": "HeadData" + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N" + }, + { + "name": "relay_parent_storage_root", + "type": 13, + "typeName": "H" + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 208, + "type": { + "path": [ + "polkadot_parachain_primitives", + "primitives", + "HeadData" + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 209, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 210 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 210 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 210, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "UpgradeRestriction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "index": 0 + } + ] + } + } + } + }, + { + "id": 211, + "type": { + "path": [ + "sp_trie", + "storage_proof", + "StorageProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_nodes", + "type": 212, + "typeName": "BTreeSet>" + } + ] + } + } + } + }, + { + "id": 212, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 15 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 182 + } + ] + } + } + } + }, + { + "id": 213, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "relay_state_snapshot", + "MessagingStateSnapshot" + ], + "def": { + "composite": { + "fields": [ + { + "name": "dmq_mqc_head", + "type": 13, + "typeName": "relay_chain::Hash" + }, + { + "name": "relay_dispatch_queue_remaining_capacity", + "type": 214, + "typeName": "RelayDispatchQueueRemainingCapacity" + }, + { + "name": "ingress_channels", + "type": 215, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>" + }, + { + "name": "egress_channels", + "type": 215, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>" + } + ] + } + } + } + }, + { + "id": 214, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "relay_state_snapshot", + "RelayDispatchQueueRemainingCapacity" + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 215, + "type": { + "def": { + "sequence": { + "type": 216 + } + } + } + }, + { + "id": 216, + "type": { + "def": { + "tuple": [ + 135, + 217 + ] + } + } + }, + { + "id": 217, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "AbridgedHrmpChannel" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "mqc_head", + "type": 202, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 218, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "AbridgedHostConfiguration" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32" + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32" + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "async_backing_params", + "type": 219, + "typeName": "AsyncBackingParams" + } + ] + } + } + } + }, + { + "id": 219, + "type": { + "path": [ + "polkadot_primitives", + "v7", + "async_backing", + "AsyncBackingParams" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32" + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 220, + "type": { + "path": [ + "cumulus_primitives_parachain_inherent", + "MessageQueueChain" + ], + "def": { + "composite": { + "fields": [ + { + "type": 13, + "typeName": "RelayHash" + } + ] + } + } + } + }, + { + "id": 221, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 135 + }, + { + "name": "V", + "type": 220 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 222 + } + ] + } + } + } + }, + { + "id": 222, + "type": { + "def": { + "sequence": { + "type": 223 + } + } + } + }, + { + "id": 223, + "type": { + "def": { + "tuple": [ + 135, + 220 + ] + } + } + }, + { + "id": 224, + "type": { + "def": { + "sequence": { + "type": 225 + } + } + } + }, + { + "id": 225, + "type": { + "path": [ + "polkadot_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 135 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 135, + "typeName": "Id" + }, + { + "name": "data", + "type": 15, + "typeName": "sp_std::vec::Vec" + } + ] + } + } + } + }, + { + "id": 226, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "u128" + } + ] + } + } + } + }, + { + "id": 227, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_data", + "fields": [ + { + "name": "data", + "type": 228, + "typeName": "ParachainInherentData" + } + ], + "index": 0, + "docs": [ + "Set the current validation data.", + "", + "This should be invoked exactly once per block. It will panic at the finalization", + "phase if the call was not invoked.", + "", + "The dispatch origin for this call must be `Inherent`", + "", + "As a side effect, this function upgrades the current validation function", + "if the appropriate time has come." + ] + }, + { + "name": "sudo_send_upward_message", + "fields": [ + { + "name": "message", + "type": 15, + "typeName": "UpwardMessage" + } + ], + "index": 1 + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "The `check_version` parameter sets a boolean flag for whether or not the runtime's spec", + "version and name should be verified on upgrade. Since the authorization only has a hash,", + "it cannot actually perform the verification.", + "", + "This call requires Root origin." + ] + }, + { + "name": "enact_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 15, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Note that this function will not apply the new `code`, but only attempt to schedule the", + "upgrade with the Relay Chain.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 228, + "type": { + "path": [ + "cumulus_primitives_parachain_inherent", + "ParachainInherentData" + ], + "def": { + "composite": { + "fields": [ + { + "name": "validation_data", + "type": 207, + "typeName": "PersistedValidationData" + }, + { + "name": "relay_chain_state", + "type": 211, + "typeName": "sp_trie::StorageProof" + }, + { + "name": "downward_messages", + "type": 229, + "typeName": "Vec" + }, + { + "name": "horizontal_messages", + "type": 231, + "typeName": "BTreeMap>" + } + ] + } + } + } + }, + { + "id": 229, + "type": { + "def": { + "sequence": { + "type": 230 + } + } + } + }, + { + "id": 230, + "type": { + "path": [ + "polkadot_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "msg", + "type": 15, + "typeName": "DownwardMessage" + } + ] + } + } + } + }, + { + "id": 231, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 135 + }, + { + "name": "V", + "type": 232 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 234 + } + ] + } + } + } + }, + { + "id": 232, + "type": { + "def": { + "sequence": { + "type": 233 + } + } + } + }, + { + "id": 233, + "type": { + "path": [ + "polkadot_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "data", + "type": 15, + "typeName": "sp_std::vec::Vec" + } + ] + } + } + } + }, + { + "id": 234, + "type": { + "def": { + "sequence": { + "type": 235 + } + } + } + }, + { + "id": 235, + "type": { + "def": { + "tuple": [ + 135, + 232 + ] + } + } + }, + { + "id": 236, + "type": { + "path": [ + "cumulus_pallet_parachain_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OverlappingUpgrades", + "index": 0, + "docs": [ + "Attempt to upgrade validation function while existing upgrade pending." + ] + }, + { + "name": "ProhibitedByPolkadot", + "index": 1, + "docs": [ + "Polkadot currently prohibits this parachain from upgrading its validation function." + ] + }, + { + "name": "TooBig", + "index": 2, + "docs": [ + "The supplied validation function has compiled into a blob larger than Polkadot is", + "willing to run." + ] + }, + { + "name": "ValidationDataNotAvailable", + "index": 3, + "docs": [ + "The inherent which supplies the validation data did not run this block." + ] + }, + { + "name": "HostConfigurationNotAvailable", + "index": 4, + "docs": [ + "The inherent which supplies the host configuration did not run this block." + ] + }, + { + "name": "NotScheduled", + "index": 5, + "docs": [ + "No validation function upgrade is currently scheduled." + ] + }, + { + "name": "NothingAuthorized", + "index": 6, + "docs": [ + "No code upgrade has been authorized." + ] + }, + { + "name": "Unauthorized", + "index": 7, + "docs": [ + "The given code upgrade has not been authorized." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 237, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment" + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 238, + "type": { + "path": [ + "staging_parachain_info", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": {} + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "remove_key", + "index": 4, + "docs": [ + "Permanently removes the sudo key.", + "", + "**This cannot be un-done.**" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 240, + "type": { + "path": [ + "laos_runtime", + "RuntimeCall" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 179, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 0 + }, + { + "name": "ParachainSystem", + "fields": [ + { + "type": 227, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 1 + }, + { + "name": "Timestamp", + "fields": [ + { + "type": 237, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 2 + }, + { + "name": "ParachainInfo", + "fields": [ + { + "type": 238, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 3 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 239, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 4 + }, + { + "name": "Utility", + "fields": [ + { + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 5 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 251, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 6 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 254, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 7 + }, + { + "name": "Identity", + "fields": [ + { + "type": 256, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 8 + }, + { + "name": "Balances", + "fields": [ + { + "type": 296, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 10 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 298, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 12 + }, + { + "name": "Session", + "fields": [ + { + "type": 300, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 21 + }, + { + "name": "ParachainStaking", + "fields": [ + { + "type": 303, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 24 + }, + { + "name": "XcmpQueue", + "fields": [ + { + "type": 306, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 30 + }, + { + "name": "PolkadotXcm", + "fields": [ + { + "type": 307, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 31 + }, + { + "name": "CumulusXcm", + "fields": [ + { + "type": 346, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 32 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 347, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 34 + }, + { + "name": "Council", + "fields": [ + { + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 40 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 349, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 41 + }, + { + "name": "Elections", + "fields": [ + { + "type": 350, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 42 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 352, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 43 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 44 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 354, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 45 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 356, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 46 + }, + { + "name": "TechnicalCommitteeMembership", + "fields": [ + { + "type": 361, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 47 + }, + { + "name": "Ethereum", + "fields": [ + { + "type": 362, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 50 + }, + { + "name": "EVM", + "fields": [ + { + "type": 372, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 51 + }, + { + "name": "BaseFee", + "fields": [ + { + "type": 376, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 53 + }, + { + "name": "LaosEvolution", + "fields": [ + { + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 100 + } + ] + } + } + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 242, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 43, + "typeName": "u16" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 242, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 243, + "typeName": "Box" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 242, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 242, + "type": { + "def": { + "sequence": { + "type": 240 + } + } + } + }, + { + "id": 243, + "type": { + "path": [ + "laos_runtime", + "OriginCaller" + ], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "type": 244, + "typeName": "frame_system::Origin" + } + ], + "index": 0 + }, + { + "name": "PolkadotXcm", + "fields": [ + { + "type": 245, + "typeName": "pallet_xcm::Origin" + } + ], + "index": 31 + }, + { + "name": "CumulusXcm", + "fields": [ + { + "type": 246, + "typeName": "cumulus_pallet_xcm::Origin" + } + ], + "index": 32 + }, + { + "name": "Council", + "fields": [ + { + "type": 247, + "typeName": "pallet_collective::Origin" + } + ], + "index": 40 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 248, + "typeName": "pallet_collective::Origin" + } + ], + "index": 44 + }, + { + "name": "Ethereum", + "fields": [ + { + "type": 249, + "typeName": "pallet_ethereum::Origin" + } + ], + "index": 50 + }, + { + "name": "Void", + "fields": [ + { + "type": 250, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::\n__private::Void" + } + ], + "index": 6 + } + ] + } + } + } + }, + { + "id": 244, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "index": 0 + }, + { + "name": "Signed", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "None", + "index": 2 + } + ] + } + } + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "type": 61, + "typeName": "Location" + } + ], + "index": 0 + }, + { + "name": "Response", + "fields": [ + { + "type": 61, + "typeName": "Location" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 246, + "type": { + "path": [ + "cumulus_pallet_xcm", + "pallet", + "Origin" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Relay", + "index": 0 + }, + { + "name": "SiblingParachain", + "fields": [ + { + "type": 135, + "typeName": "ParaId" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 249, + "type": { + "path": [ + "pallet_ethereum", + "RawOrigin" + ], + "def": { + "variant": { + "variants": [ + { + "name": "EthereumTransaction", + "fields": [ + { + "type": 153, + "typeName": "H160" + } + ], + "index": 0 + } + ] + } + } + } + }, + { + "id": 250, + "type": { + "path": [ + "sp_core", + "Void" + ], + "def": { + "variant": {} + } + } + }, + { + "id": 251, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 252, + "typeName": "Vec" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 43, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 252, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 253, + "typeName": "Option>>" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 43, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 252, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 253, + "typeName": "Option>>" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "[u8; 32]" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 43, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 252, + "typeName": "Vec" + }, + { + "name": "timepoint", + "type": 40, + "typeName": "Timepoint>" + }, + { + "name": "call_hash", + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 252, + "type": { + "def": { + "sequence": { + "type": 0 + } + } + } + }, + { + "id": 253, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 40 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 40 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 255, + "typeName": "Option" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "index", + "type": 43, + "typeName": "u16" + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "T::ProxyType" + }, + { + "name": "index", + "type": 43, + "typeName": "u16" + }, + { + "name": "height", + "type": 65, + "typeName": "BlockNumberFor" + }, + { + "name": "ext_index", + "type": 65, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf" + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf" + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf" + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "real", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 255, + "typeName": "Option" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 255, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 42 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 42 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 256, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 257, + "typeName": "Box" + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful." + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 290, + "typeName": "Vec<(T::AccountId, Data)>" + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts." + ] + }, + { + "name": "clear_identity", + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 65, + "typeName": "RegistrarIndex" + }, + { + "name": "max_fee", + "type": 68, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Self::registrars().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "RegistrarIndex" + }, + { + "name": "fee", + "type": 68, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "RegistrarIndex" + }, + { + "name": "new", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "RegistrarIndex" + }, + { + "name": "fields", + "type": 12, + "typeName": "::\nFieldsIdentifier" + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 65, + "typeName": "RegistrarIndex" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 292, + "typeName": "Judgement>" + }, + { + "name": "identity", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is", + " provided.", + "", + "Note: Judgements do not apply to a username.", + "", + "Emits `JudgementGiven` if successful." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 260, + "typeName": "Data" + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 260, + "typeName": "Data" + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + }, + { + "name": "add_username_authority", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "suffix", + "type": 15, + "typeName": "Vec" + }, + { + "name": "allocation", + "type": 4, + "typeName": "u32" + } + ], + "index": 15, + "docs": [ + "Add an `AccountId` with permission to grant usernames with a given `suffix` appended.", + "", + "The authority can grant up to `allocation` usernames. To top up their allocation, they", + "should just issue (or request via governance) a new `add_username_authority` call." + ] + }, + { + "name": "remove_username_authority", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Remove `authority` from the username authorities." + ] + }, + { + "name": "set_username_for", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "username", + "type": 15, + "typeName": "Vec" + }, + { + "name": "signature", + "type": 293, + "typeName": "Option" + } + ], + "index": 17, + "docs": [ + "Set the username for `who`. Must be called by a username authority.", + "", + "The authority must have an `allocation`. Users can either pre-sign their usernames or", + "accept them later.", + "", + "Usernames must:", + " - Only contain lowercase ASCII characters or digits.", + " - When combined with the suffix of the issuing authority be _less than_ the", + " `MaxUsernameLength`." + ] + }, + { + "name": "accept_username", + "fields": [ + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 18, + "docs": [ + "Accept a given username that an `authority` granted. The call must include the full", + "username, as in `username.suffix`." + ] + }, + { + "name": "remove_expired_approval", + "fields": [ + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 19, + "docs": [ + "Remove an expired username approval. The username was approved by an authority but never", + "accepted by the user and must now be beyond its expiration. The call must include the", + "full username, as in `username.suffix`." + ] + }, + { + "name": "set_primary_username", + "fields": [ + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 20, + "docs": [ + "Set a given username as the primary. The username should include the suffix." + ] + }, + { + "name": "remove_dangling_username", + "fields": [ + { + "name": "username", + "type": 45, + "typeName": "Username" + } + ], + "index": 21, + "docs": [ + "Remove a username that corresponds to an account with no identity. Exists when a user", + "gets a username but then calls `clear_identity`." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 257, + "type": { + "path": [ + "pallet_identity", + "legacy", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 258, + "typeName": "BoundedVec<(Data, Data), FieldLimit>" + }, + { + "name": "display", + "type": 260, + "typeName": "Data" + }, + { + "name": "legal", + "type": 260, + "typeName": "Data" + }, + { + "name": "web", + "type": 260, + "typeName": "Data" + }, + { + "name": "riot", + "type": 260, + "typeName": "Data" + }, + { + "name": "email", + "type": 260, + "typeName": "Data" + }, + { + "name": "pgp_fingerprint", + "type": 289, + "typeName": "Option<[u8; 20]>" + }, + { + "name": "image", + "type": 260, + "typeName": "Data" + }, + { + "name": "twitter", + "type": 260, + "typeName": "Data" + } + ] + } + } + } + }, + { + "id": 258, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 259 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 288, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 259, + "type": { + "def": { + "tuple": [ + 260, + 260 + ] + } + } + }, + { + "id": 260, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Raw0", + "fields": [ + { + "type": 261 + } + ], + "index": 1 + }, + { + "name": "Raw1", + "fields": [ + { + "type": 262 + } + ], + "index": 2 + }, + { + "name": "Raw2", + "fields": [ + { + "type": 263 + } + ], + "index": 3 + }, + { + "name": "Raw3", + "fields": [ + { + "type": 264 + } + ], + "index": 4 + }, + { + "name": "Raw4", + "fields": [ + { + "type": 19 + } + ], + "index": 5 + }, + { + "name": "Raw5", + "fields": [ + { + "type": 265 + } + ], + "index": 6 + }, + { + "name": "Raw6", + "fields": [ + { + "type": 266 + } + ], + "index": 7 + }, + { + "name": "Raw7", + "fields": [ + { + "type": 267 + } + ], + "index": 8 + }, + { + "name": "Raw8", + "fields": [ + { + "type": 87 + } + ], + "index": 9 + }, + { + "name": "Raw9", + "fields": [ + { + "type": 268 + } + ], + "index": 10 + }, + { + "name": "Raw10", + "fields": [ + { + "type": 269 + } + ], + "index": 11 + }, + { + "name": "Raw11", + "fields": [ + { + "type": 270 + } + ], + "index": 12 + }, + { + "name": "Raw12", + "fields": [ + { + "type": 171 + } + ], + "index": 13 + }, + { + "name": "Raw13", + "fields": [ + { + "type": 271 + } + ], + "index": 14 + }, + { + "name": "Raw14", + "fields": [ + { + "type": 272 + } + ], + "index": 15 + }, + { + "name": "Raw15", + "fields": [ + { + "type": 273 + } + ], + "index": 16 + }, + { + "name": "Raw16", + "fields": [ + { + "type": 88 + } + ], + "index": 17 + }, + { + "name": "Raw17", + "fields": [ + { + "type": 274 + } + ], + "index": 18 + }, + { + "name": "Raw18", + "fields": [ + { + "type": 275 + } + ], + "index": 19 + }, + { + "name": "Raw19", + "fields": [ + { + "type": 276 + } + ], + "index": 20 + }, + { + "name": "Raw20", + "fields": [ + { + "type": 1 + } + ], + "index": 21 + }, + { + "name": "Raw21", + "fields": [ + { + "type": 277 + } + ], + "index": 22 + }, + { + "name": "Raw22", + "fields": [ + { + "type": 278 + } + ], + "index": 23 + }, + { + "name": "Raw23", + "fields": [ + { + "type": 279 + } + ], + "index": 24 + }, + { + "name": "Raw24", + "fields": [ + { + "type": 280 + } + ], + "index": 25 + }, + { + "name": "Raw25", + "fields": [ + { + "type": 281 + } + ], + "index": 26 + }, + { + "name": "Raw26", + "fields": [ + { + "type": 282 + } + ], + "index": 27 + }, + { + "name": "Raw27", + "fields": [ + { + "type": 283 + } + ], + "index": 28 + }, + { + "name": "Raw28", + "fields": [ + { + "type": 284 + } + ], + "index": 29 + }, + { + "name": "Raw29", + "fields": [ + { + "type": 285 + } + ], + "index": 30 + }, + { + "name": "Raw30", + "fields": [ + { + "type": 286 + } + ], + "index": 31 + }, + { + "name": "Raw31", + "fields": [ + { + "type": 287 + } + ], + "index": 32 + }, + { + "name": "Raw32", + "fields": [ + { + "type": 14 + } + ], + "index": 33 + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "type": 14 + } + ], + "index": 34 + }, + { + "name": "Sha256", + "fields": [ + { + "type": 14 + } + ], + "index": 35 + }, + { + "name": "Keccak256", + "fields": [ + { + "type": 14 + } + ], + "index": 36 + }, + { + "name": "ShaThree256", + "fields": [ + { + "type": 14 + } + ], + "index": 37 + } + ] + } + } + } + }, + { + "id": 261, + "type": { + "def": { + "array": { + "len": 0, + "type": 2 + } + } + } + }, + { + "id": 262, + "type": { + "def": { + "array": { + "len": 1, + "type": 2 + } + } + } + }, + { + "id": 263, + "type": { + "def": { + "array": { + "len": 2, + "type": 2 + } + } + } + }, + { + "id": 264, + "type": { + "def": { + "array": { + "len": 3, + "type": 2 + } + } + } + }, + { + "id": 265, + "type": { + "def": { + "array": { + "len": 5, + "type": 2 + } + } + } + }, + { + "id": 266, + "type": { + "def": { + "array": { + "len": 6, + "type": 2 + } + } + } + }, + { + "id": 267, + "type": { + "def": { + "array": { + "len": 7, + "type": 2 + } + } + } + }, + { + "id": 268, + "type": { + "def": { + "array": { + "len": 9, + "type": 2 + } + } + } + }, + { + "id": 269, + "type": { + "def": { + "array": { + "len": 10, + "type": 2 + } + } + } + }, + { + "id": 270, + "type": { + "def": { + "array": { + "len": 11, + "type": 2 + } + } + } + }, + { + "id": 271, + "type": { + "def": { + "array": { + "len": 13, + "type": 2 + } + } + } + }, + { + "id": 272, + "type": { + "def": { + "array": { + "len": 14, + "type": 2 + } + } + } + }, + { + "id": 273, + "type": { + "def": { + "array": { + "len": 15, + "type": 2 + } + } + } + }, + { + "id": 274, + "type": { + "def": { + "array": { + "len": 17, + "type": 2 + } + } + } + }, + { + "id": 275, + "type": { + "def": { + "array": { + "len": 18, + "type": 2 + } + } + } + }, + { + "id": 276, + "type": { + "def": { + "array": { + "len": 19, + "type": 2 + } + } + } + }, + { + "id": 277, + "type": { + "def": { + "array": { + "len": 21, + "type": 2 + } + } + } + }, + { + "id": 278, + "type": { + "def": { + "array": { + "len": 22, + "type": 2 + } + } + } + }, + { + "id": 279, + "type": { + "def": { + "array": { + "len": 23, + "type": 2 + } + } + } + }, + { + "id": 280, + "type": { + "def": { + "array": { + "len": 24, + "type": 2 + } + } + } + }, + { + "id": 281, + "type": { + "def": { + "array": { + "len": 25, + "type": 2 + } + } + } + }, + { + "id": 282, + "type": { + "def": { + "array": { + "len": 26, + "type": 2 + } + } + } + }, + { + "id": 283, + "type": { + "def": { + "array": { + "len": 27, + "type": 2 + } + } + } + }, + { + "id": 284, + "type": { + "def": { + "array": { + "len": 28, + "type": 2 + } + } + } + }, + { + "id": 285, + "type": { + "def": { + "array": { + "len": 29, + "type": 2 + } + } + } + }, + { + "id": 286, + "type": { + "def": { + "array": { + "len": 30, + "type": 2 + } + } + } + }, + { + "id": 287, + "type": { + "def": { + "array": { + "len": 31, + "type": 2 + } + } + } + }, + { + "id": 288, + "type": { + "def": { + "sequence": { + "type": 259 + } + } + } + }, + { + "id": 289, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 1 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 290, + "type": { + "def": { + "sequence": { + "type": 291 + } + } + } + }, + { + "id": 291, + "type": { + "def": { + "tuple": [ + 0, + 260 + ] + } + } + }, + { + "id": 292, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "index": 0 + }, + { + "name": "FeePaid", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "Reasonable", + "index": 2 + }, + { + "name": "KnownGood", + "index": 3 + }, + { + "name": "OutOfDate", + "index": 4 + }, + { + "name": "LowQuality", + "index": 5 + }, + { + "name": "Erroneous", + "index": 6 + } + ] + } + } + } + }, + { + "id": 293, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 294 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 294 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 294, + "type": { + "path": [ + "fp_account", + "EthereumSignature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 295, + "typeName": "ecdsa::Signature" + } + ] + } + } + } + }, + { + "id": 295, + "type": { + "def": { + "array": { + "len": 65, + "type": 2 + } + } + } + }, + { + "id": 296, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 68, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 68, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 68, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 252, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "new_free", + "type": 68, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 297, + "typeName": "AdjustmentDirection" + }, + { + "name": "delta", + "type": 68, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 297, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "index": 0 + }, + { + "name": "Decrease", + "index": 1 + } + ] + } + } + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, BlockNumberFor>" + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, BlockNumberFor>" + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32" + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "::Source" + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 299, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance" + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance" + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 301, + "typeName": "T::Keys" + }, + { + "name": "proof", + "type": 15, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 301, + "type": { + "path": [ + "laos_runtime", + "SessionKeys" + ], + "def": { + "composite": { + "fields": [ + { + "name": "aura", + "type": 302, + "typeName": "::Public" + } + ] + } + } + } + }, + { + "id": 302, + "type": { + "path": [ + "sp_consensus_aura", + "sr25519", + "app_sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 14, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 303, + "type": { + "path": [ + "pallet_parachain_staking", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_staking_expectations", + "fields": [ + { + "name": "expectations", + "type": 304, + "typeName": "Range>" + } + ], + "index": 0, + "docs": [ + "Set the expectations for total staked. These expectations determine the issuance for", + "the round according to logic in `fn compute_issuance`" + ] + }, + { + "name": "set_inflation", + "fields": [ + { + "name": "schedule", + "type": 305, + "typeName": "Range" + } + ], + "index": 1, + "docs": [ + "Set the annual inflation rate to derive per-round inflation" + ] + }, + { + "name": "set_parachain_bond_account", + "fields": [ + { + "name": "new", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "Set the account that will hold funds set aside for parachain bond" + ] + }, + { + "name": "set_parachain_bond_reserve_percent", + "fields": [ + { + "name": "new", + "type": 55, + "typeName": "Percent" + } + ], + "index": 3, + "docs": [ + "Set the percent of inflation set aside for parachain bond" + ] + }, + { + "name": "set_total_selected", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Set the total number of collator candidates selected per round", + "- changes are not applied until the start of the next round" + ] + }, + { + "name": "set_collator_commission", + "fields": [ + { + "name": "new", + "type": 56, + "typeName": "Perbill" + } + ], + "index": 5, + "docs": [ + "Set the commission for all collators" + ] + }, + { + "name": "set_blocks_per_round", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Set blocks per round", + "- if called with `new` less than length of current round, will transition immediately", + "in the next block", + "- also updates per-round inflation config" + ] + }, + { + "name": "join_candidates", + "fields": [ + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "candidate_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 7, + "docs": [ + "Join the set of collator candidates" + ] + }, + { + "name": "schedule_leave_candidates", + "fields": [ + { + "name": "candidate_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 8, + "docs": [ + "Request to leave the set of candidates. If successful, the account is immediately", + "removed from the candidate pool to prevent selection as a collator." + ] + }, + { + "name": "execute_leave_candidates", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate_delegation_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 9, + "docs": [ + "Execute leave candidates request" + ] + }, + { + "name": "cancel_leave_candidates", + "fields": [ + { + "name": "candidate_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Cancel open request to leave candidates", + "- only callable by collator account", + "- result upon successful call is the candidate is active in the candidate pool" + ] + }, + { + "name": "go_offline", + "index": 11, + "docs": [ + "Temporarily leave the set of collator candidates without unbonding" + ] + }, + { + "name": "go_online", + "index": 12, + "docs": [ + "Rejoin the set of collator candidates if previously had called `go_offline`" + ] + }, + { + "name": "candidate_bond_more", + "fields": [ + { + "name": "more", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 13, + "docs": [ + "Increase collator candidate self bond by `more`" + ] + }, + { + "name": "schedule_candidate_bond_less", + "fields": [ + { + "name": "less", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 14, + "docs": [ + "Request by collator candidate to decrease self bond by `less`" + ] + }, + { + "name": "execute_candidate_bond_less", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 15, + "docs": [ + "Execute pending request to adjust the collator candidate self bond" + ] + }, + { + "name": "cancel_candidate_bond_less", + "index": 16, + "docs": [ + "Cancel pending request to adjust the collator candidate self bond" + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "candidate_delegation_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "delegation_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 17, + "docs": [ + "DEPRECATED use delegateWithAutoCompound", + "If caller is not a delegator and not a collator, then join the set of delegators", + "If caller is a delegator, then makes delegation to change their delegation state" + ] + }, + { + "name": "delegate_with_auto_compound", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "auto_compound", + "type": 55, + "typeName": "Percent" + }, + { + "name": "candidate_delegation_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "candidate_auto_compounding_delegation_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "delegation_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 18, + "docs": [ + "If caller is not a delegator and not a collator, then join the set of delegators", + "If caller is a delegator, then makes delegation to change their delegation state", + "Sets the auto-compound config for the delegation" + ] + }, + { + "name": "removed_call_19", + "index": 19, + "docs": [ + "REMOVED, was schedule_leave_delegators" + ] + }, + { + "name": "removed_call_20", + "index": 20, + "docs": [ + "REMOVED, was execute_leave_delegators" + ] + }, + { + "name": "removed_call_21", + "index": 21, + "docs": [ + "REMOVED, was cancel_leave_delegators" + ] + }, + { + "name": "schedule_revoke_delegation", + "fields": [ + { + "name": "collator", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 22, + "docs": [ + "Request to revoke an existing delegation. If successful, the delegation is scheduled", + "to be allowed to be revoked via the `execute_delegation_request` extrinsic.", + "The delegation receives no rewards for the rounds while a revoke is pending.", + "A revoke may not be performed if any other scheduled request is pending." + ] + }, + { + "name": "delegator_bond_more", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "more", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 23, + "docs": [ + "Bond more for delegators wrt a specific collator candidate." + ] + }, + { + "name": "schedule_delegator_bond_less", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "less", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 24, + "docs": [ + "Request bond less for delegators wrt a specific collator candidate. The delegation's", + "rewards for rounds while the request is pending use the reduced bonded amount.", + "A bond less may not be performed if any other scheduled request is pending." + ] + }, + { + "name": "execute_delegation_request", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 25, + "docs": [ + "Execute pending request to change an existing delegation" + ] + }, + { + "name": "cancel_delegation_request", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 26, + "docs": [ + "Cancel request to change an existing delegation." + ] + }, + { + "name": "set_auto_compound", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "value", + "type": 55, + "typeName": "Percent" + }, + { + "name": "candidate_auto_compounding_delegation_count_hint", + "type": 4, + "typeName": "u32" + }, + { + "name": "delegation_count_hint", + "type": 4, + "typeName": "u32" + } + ], + "index": 27, + "docs": [ + "Sets the auto-compounding reward percentage for a delegation." + ] + }, + { + "name": "hotfix_remove_delegation_requests_exited_candidates", + "fields": [ + { + "name": "candidates", + "type": 252, + "typeName": "Vec" + } + ], + "index": 28, + "docs": [ + "Hotfix to remove existing empty entries for candidates that have left." + ] + }, + { + "name": "notify_inactive_collator", + "fields": [ + { + "name": "collator", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 29, + "docs": [ + "Notify a collator is inactive during MaxOfflineRounds" + ] + }, + { + "name": "enable_marking_offline", + "fields": [ + { + "name": "value", + "type": 8, + "typeName": "bool" + } + ], + "index": 30, + "docs": [ + "Enable/Disable marking offline feature" + ] + }, + { + "name": "force_join_candidates", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "candidate_count", + "type": 4, + "typeName": "u32" + } + ], + "index": 31, + "docs": [ + "Force join the set of collator candidates.", + "It will skip the minimum required bond check." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_parachain_staking", + "inflation", + "Range" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min", + "type": 6, + "typeName": "T" + }, + { + "name": "ideal", + "type": 6, + "typeName": "T" + }, + { + "name": "max", + "type": 6, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 305, + "type": { + "path": [ + "pallet_parachain_staking", + "inflation", + "Range" + ], + "params": [ + { + "name": "T", + "type": 56 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min", + "type": 56, + "typeName": "T" + }, + { + "name": "ideal", + "type": 56, + "typeName": "T" + }, + { + "name": "max", + "type": 56, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 306, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "suspend_xcm_execution", + "index": 1, + "docs": [ + "Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "resume_xcm_execution", + "index": 2, + "docs": [ + "Resumes all XCM executions for the XCMP queue.", + "", + "Note that this function doesn't change the status of the in/out bound channels.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "update_suspend_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Overwrites the number of pages which must be in the queue for the other side to be", + "told to suspend their sending.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.suspend_value`" + ] + }, + { + "name": "update_drop_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Overwrites the number of pages which must be in the queue after which we drop any", + "further messages from the channel.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.drop_threshold`" + ] + }, + { + "name": "update_resume_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Overwrites the number of pages which the queue must be reduced to before it signals", + "that message sending may recommence after it has been suspended.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.resume_threshold`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 307, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "message", + "type": 308, + "typeName": "Box>" + } + ], + "index": 0 + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from", + " relay to parachain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from", + " relay to parachain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 333, + "typeName": "Box::RuntimeCall>>" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Box" + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion" + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 206, + "typeName": "Option" + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 131, + "typeName": "Box" + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 131, + "typeName": "Box" + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from", + " relay to parachain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from", + " relay to parachain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool" + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send", + " from relay to parachain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "beneficiary", + "type": 131, + "typeName": "Box" + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 131, + "typeName": "Box" + }, + { + "name": "assets", + "type": 106, + "typeName": "Box" + }, + { + "name": "assets_transfer_type", + "type": 344, + "typeName": "Box" + }, + { + "name": "remote_fees_id", + "type": 345, + "typeName": "Box" + }, + { + "name": "fees_transfer_type", + "type": 344, + "typeName": "Box" + }, + { + "name": "custom_xcm_on_dest", + "type": 308, + "typeName": "Box>" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from", + " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " parachain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 308, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "type": 309, + "typeName": "v2::Xcm" + } + ], + "index": 2 + }, + { + "name": "V3", + "fields": [ + { + "type": 320, + "typeName": "v3::Xcm" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 78, + "typeName": "v4::Xcm" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 309, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 310, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 310, + "type": { + "def": { + "sequence": { + "type": 311 + } + } + } + }, + { + "id": 311, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 312, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "beneficiary", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 11, + "typeName": "u64" + }, + { + "name": "call", + "type": 100, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 112, + "typeName": "InteriorMultiLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_assets", + "type": 65, + "typeName": "u32" + }, + { + "name": "beneficiary", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_assets", + "type": 65, + "typeName": "u32" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "receive", + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "reserve", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 109, + "typeName": "MultiAsset" + }, + { + "name": "weight_limit", + "type": 319, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 309, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 309, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "ticket", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + } + ] + } + } + } + }, + { + "id": 312, + "type": { + "path": [ + "xcm", + "v2", + "Response" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "index": 0 + }, + { + "name": "Assets", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ExecutionResult", + "fields": [ + { + "type": 313, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 2 + }, + { + "name": "Version", + "fields": [ + { + "type": 4, + "typeName": "super::Version" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 313, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 314 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 314 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 314, + "type": { + "def": { + "tuple": [ + 4, + 315 + ] + } + } + }, + { + "id": 315, + "type": { + "path": [ + "xcm", + "v2", + "traits", + "Error" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "index": 0 + }, + { + "name": "Unimplemented", + "index": 1 + }, + { + "name": "UntrustedReserveLocation", + "index": 2 + }, + { + "name": "UntrustedTeleportLocation", + "index": 3 + }, + { + "name": "MultiLocationFull", + "index": 4 + }, + { + "name": "MultiLocationNotInvertible", + "index": 5 + }, + { + "name": "BadOrigin", + "index": 6 + }, + { + "name": "InvalidLocation", + "index": 7 + }, + { + "name": "AssetNotFound", + "index": 8 + }, + { + "name": "FailedToTransactAsset", + "index": 9 + }, + { + "name": "NotWithdrawable", + "index": 10 + }, + { + "name": "LocationCannotHold", + "index": 11 + }, + { + "name": "ExceedsMaxMessageSize", + "index": 12 + }, + { + "name": "DestinationUnsupported", + "index": 13 + }, + { + "name": "Transport", + "index": 14 + }, + { + "name": "Unroutable", + "index": 15 + }, + { + "name": "UnknownClaim", + "index": 16 + }, + { + "name": "FailedToDecode", + "index": 17 + }, + { + "name": "MaxWeightInvalid", + "index": 18 + }, + { + "name": "NotHoldingFees", + "index": 19 + }, + { + "name": "TooExpensive", + "index": 20 + }, + { + "name": "Trap", + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ], + "index": 21 + }, + { + "name": "UnhandledXcmVersion", + "index": 22 + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "type": 12, + "typeName": "Weight" + } + ], + "index": 23 + }, + { + "name": "Barrier", + "index": 24 + }, + { + "name": "WeightNotComputable", + "index": 25 + } + ] + } + } + } + }, + { + "id": 316, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssetFilter" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "Wild", + "fields": [ + { + "type": 317, + "typeName": "WildMultiAsset" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 317, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildMultiAsset" + ], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "index": 0 + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 110, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 318, + "typeName": "WildFungibility" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 318, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildFungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "index": 0 + }, + { + "name": "NonFungible", + "index": 1 + } + ] + } + } + } + }, + { + "id": 319, + "type": { + "path": [ + "xcm", + "v2", + "WeightLimit" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "index": 0 + }, + { + "name": "Limited", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 320, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 321, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 321, + "type": { + "def": { + "sequence": { + "type": 322 + } + } + } + }, + { + "id": 322, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 323, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "querier", + "type": 328, + "typeName": "Option" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "beneficiary", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight" + }, + { + "name": "call", + "type": 100, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 125, + "typeName": "InteriorMultiLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "beneficiary", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "want", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "reserve", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 329, + "typeName": "QueryResponseInfo" + }, + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 320, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 320, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "ticket", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + }, + { + "name": "BurnAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 28 + }, + { + "name": "ExpectAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 29 + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "type": 328, + "typeName": "Option" + } + ], + "index": 30 + }, + { + "name": "ExpectError", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 31 + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 32 + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "response_info", + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 33 + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "crate_major", + "type": 65, + "typeName": "u32" + }, + { + "name": "min_crate_minor", + "type": 65, + "typeName": "u32" + } + ], + "index": 34 + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 35 + }, + { + "name": "ClearTransactStatus", + "index": 36 + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 37 + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 128, + "typeName": "NetworkId" + }, + { + "name": "destination", + "type": 125, + "typeName": "InteriorMultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 38 + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "unlocker", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 39 + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "target", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 40 + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "owner", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 41 + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "locker", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 42 + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool" + } + ], + "index": 43 + }, + { + "name": "SetTopic", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 44 + }, + { + "name": "ClearTopic", + "index": 45 + }, + { + "name": "AliasOrigin", + "fields": [ + { + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 46 + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + }, + { + "name": "check_origin", + "type": 328, + "typeName": "Option" + } + ], + "index": 47 + } + ] + } + } + } + }, + { + "id": 323, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "index": 0 + }, + { + "name": "Assets", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ExecutionResult", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 2 + }, + { + "name": "Version", + "fields": [ + { + "type": 4, + "typeName": "super::Version" + } + ], + "index": 3 + }, + { + "name": "PalletsInfo", + "fields": [ + { + "type": 324, + "typeName": "BoundedVec" + } + ], + "index": 4 + }, + { + "name": "DispatchResult", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 324, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 325 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 327, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 325, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 326, + "typeName": "BoundedVec" + }, + { + "name": "module_name", + "type": 326, + "typeName": "BoundedVec" + }, + { + "name": "major", + "type": 65, + "typeName": "u32" + }, + { + "name": "minor", + "type": 65, + "typeName": "u32" + }, + { + "name": "patch", + "type": 65, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 326, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 327, + "type": { + "def": { + "sequence": { + "type": 325 + } + } + } + }, + { + "id": 328, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 124 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 124 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 329, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + } + ] + } + } + } + }, + { + "id": 330, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "Wild", + "fields": [ + { + "type": 331, + "typeName": "WildMultiAsset" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 331, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "index": 0 + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 123, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 332, + "typeName": "WildFungibility" + } + ], + "index": 1 + }, + { + "name": "AllCounted", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 123, + "typeName": "AssetId" + }, + { + "name": "fun", + "type": 332, + "typeName": "WildFungibility" + }, + { + "name": "count", + "type": 65, + "typeName": "u32" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 332, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "index": 0 + }, + { + "name": "NonFungible", + "index": 1 + } + ] + } + } + } + }, + { + "id": 333, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "type": 334, + "typeName": "v2::Xcm" + } + ], + "index": 2 + }, + { + "name": "V3", + "fields": [ + { + "type": 338, + "typeName": "v3::Xcm" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 341, + "typeName": "v4::Xcm" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 334, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 335, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 335, + "type": { + "def": { + "sequence": { + "type": 336 + } + } + } + }, + { + "id": 336, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 312, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "beneficiary", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 11, + "typeName": "u64" + }, + { + "name": "call", + "type": 337, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 112, + "typeName": "InteriorMultiLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_assets", + "type": 65, + "typeName": "u32" + }, + { + "name": "beneficiary", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_assets", + "type": 65, + "typeName": "u32" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "receive", + "type": 107, + "typeName": "MultiAssets" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "reserve", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 309, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "dest", + "type": 111, + "typeName": "MultiLocation" + }, + { + "name": "assets", + "type": 316, + "typeName": "MultiAssetFilter" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 109, + "typeName": "MultiAsset" + }, + { + "name": "weight_limit", + "type": 319, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 334, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 334, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 107, + "typeName": "MultiAssets" + }, + { + "name": "ticket", + "type": 111, + "typeName": "MultiLocation" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + } + ] + } + } + } + }, + { + "id": 337, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 338, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 339, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 339, + "type": { + "def": { + "sequence": { + "type": 340 + } + } + } + }, + { + "id": 340, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 323, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "querier", + "type": 328, + "typeName": "Option" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "beneficiary", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight" + }, + { + "name": "call", + "type": 337, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 125, + "typeName": "InteriorMultiLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "beneficiary", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "want", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "reserve", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + }, + { + "name": "dest", + "type": 124, + "typeName": "MultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 329, + "typeName": "QueryResponseInfo" + }, + { + "name": "assets", + "type": 330, + "typeName": "MultiAssetFilter" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 338, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 338, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "MultiAssets" + }, + { + "name": "ticket", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + }, + { + "name": "BurnAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 28 + }, + { + "name": "ExpectAsset", + "fields": [ + { + "type": 120, + "typeName": "MultiAssets" + } + ], + "index": 29 + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "type": 328, + "typeName": "Option" + } + ], + "index": 30 + }, + { + "name": "ExpectError", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 31 + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 32 + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "response_info", + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 33 + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "crate_major", + "type": 65, + "typeName": "u32" + }, + { + "name": "min_crate_minor", + "type": 65, + "typeName": "u32" + } + ], + "index": 34 + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "type": 329, + "typeName": "QueryResponseInfo" + } + ], + "index": 35 + }, + { + "name": "ClearTransactStatus", + "index": 36 + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "type": 126, + "typeName": "Junction" + } + ], + "index": 37 + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 128, + "typeName": "NetworkId" + }, + { + "name": "destination", + "type": 125, + "typeName": "InteriorMultiLocation" + }, + { + "name": "xcm", + "type": 320, + "typeName": "Xcm<()>" + } + ], + "index": 38 + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "unlocker", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 39 + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "target", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 40 + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "owner", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 41 + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 122, + "typeName": "MultiAsset" + }, + { + "name": "locker", + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 42 + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool" + } + ], + "index": 43 + }, + { + "name": "SetTopic", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 44 + }, + { + "name": "ClearTopic", + "index": 45 + }, + { + "name": "AliasOrigin", + "fields": [ + { + "type": 124, + "typeName": "MultiLocation" + } + ], + "index": 46 + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + }, + { + "name": "check_origin", + "type": 328, + "typeName": "Option" + } + ], + "index": 47 + } + ] + } + } + } + }, + { + "id": 341, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 342, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 342, + "type": { + "def": { + "sequence": { + "type": 343 + } + } + } + }, + { + "id": 343, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 0 + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 1 + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 2 + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "response", + "type": 89, + "typeName": "Response" + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "querier", + "type": 98, + "typeName": "Option" + } + ], + "index": 3 + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location" + } + ], + "index": 4 + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 5 + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 99, + "typeName": "OriginKind" + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight" + }, + { + "name": "call", + "type": 337, + "typeName": "DoubleEncoded" + } + ], + "index": 6 + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_message_size", + "type": 65, + "typeName": "u32" + }, + { + "name": "max_capacity", + "type": 65, + "typeName": "u32" + } + ], + "index": 7 + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 8 + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 65, + "typeName": "u32" + }, + { + "name": "sender", + "type": 65, + "typeName": "u32" + }, + { + "name": "recipient", + "type": 65, + "typeName": "u32" + } + ], + "index": 9 + }, + { + "name": "ClearOrigin", + "index": 10 + }, + { + "name": "DescendOrigin", + "fields": [ + { + "type": 62, + "typeName": "InteriorLocation" + } + ], + "index": 11 + }, + { + "name": "ReportError", + "fields": [ + { + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 12 + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location" + } + ], + "index": 13 + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 14 + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "want", + "type": 81, + "typeName": "Assets" + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool" + } + ], + "index": 15 + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "reserve", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 16 + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + }, + { + "name": "dest", + "type": 61, + "typeName": "Location" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 17 + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 101, + "typeName": "QueryResponseInfo" + }, + { + "name": "assets", + "type": 102, + "typeName": "AssetFilter" + } + ], + "index": 18 + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 83, + "typeName": "Asset" + }, + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + } + ], + "index": 19 + }, + { + "name": "RefundSurplus", + "index": 20 + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "type": 341, + "typeName": "Xcm" + } + ], + "index": 21 + }, + { + "name": "SetAppendix", + "fields": [ + { + "type": 341, + "typeName": "Xcm" + } + ], + "index": 22 + }, + { + "name": "ClearError", + "index": 23 + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 81, + "typeName": "Assets" + }, + { + "name": "ticket", + "type": 61, + "typeName": "Location" + } + ], + "index": 24 + }, + { + "name": "Trap", + "fields": [ + { + "type": 11, + "typeName": "u64" + } + ], + "index": 25 + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId" + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight" + } + ], + "index": 26 + }, + { + "name": "UnsubscribeVersion", + "index": 27 + }, + { + "name": "BurnAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 28 + }, + { + "name": "ExpectAsset", + "fields": [ + { + "type": 81, + "typeName": "Assets" + } + ], + "index": 29 + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "type": 98, + "typeName": "Option" + } + ], + "index": 30 + }, + { + "name": "ExpectError", + "fields": [ + { + "type": 90, + "typeName": "Option<(u32, Error)>" + } + ], + "index": 31 + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "type": 96, + "typeName": "MaybeErrorCode" + } + ], + "index": 32 + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "response_info", + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 33 + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 65, + "typeName": "u32" + }, + { + "name": "name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "module_name", + "type": 15, + "typeName": "Vec" + }, + { + "name": "crate_major", + "type": 65, + "typeName": "u32" + }, + { + "name": "min_crate_minor", + "type": 65, + "typeName": "u32" + } + ], + "index": 34 + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "type": 101, + "typeName": "QueryResponseInfo" + } + ], + "index": 35 + }, + { + "name": "ClearTransactStatus", + "index": 36 + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "type": 64, + "typeName": "Junction" + } + ], + "index": 37 + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 67, + "typeName": "NetworkId" + }, + { + "name": "destination", + "type": 62, + "typeName": "InteriorLocation" + }, + { + "name": "xcm", + "type": 78, + "typeName": "Xcm<()>" + } + ], + "index": 38 + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "unlocker", + "type": 61, + "typeName": "Location" + } + ], + "index": 39 + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "target", + "type": 61, + "typeName": "Location" + } + ], + "index": 40 + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "owner", + "type": 61, + "typeName": "Location" + } + ], + "index": 41 + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 83, + "typeName": "Asset" + }, + { + "name": "locker", + "type": 61, + "typeName": "Location" + } + ], + "index": 42 + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool" + } + ], + "index": 43 + }, + { + "name": "SetTopic", + "fields": [ + { + "type": 14, + "typeName": "[u8; 32]" + } + ], + "index": 44 + }, + { + "name": "ClearTopic", + "index": 45 + }, + { + "name": "AliasOrigin", + "fields": [ + { + "type": 61, + "typeName": "Location" + } + ], + "index": 46 + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 105, + "typeName": "WeightLimit" + }, + { + "name": "check_origin", + "type": 98, + "typeName": "Option" + } + ], + "index": 47 + } + ] + } + } + } + }, + { + "id": 344, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "index": 0 + }, + { + "name": "LocalReserve", + "index": 1 + }, + { + "name": "DestinationReserve", + "index": 2 + }, + { + "name": "RemoteReserve", + "fields": [ + { + "type": 131, + "typeName": "VersionedLocation" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 345, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "type": 123, + "typeName": "v3::AssetId" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 84, + "typeName": "v4::AssetId" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 346, + "type": { + "path": [ + "cumulus_pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": {} + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 347, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 134, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 134, + "typeName": "MessageOriginOf" + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size" + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 252, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 37, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 240, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 65, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 240, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 65, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 8, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 65, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_spend", + "fields": [ + { + "name": "value", + "type": 68, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Put forward a suggestion for spending.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "A deposit proportional to the value is reserved and slashed if the proposal is rejected.", + "It is returned once the proposal is awarded.", + "", + "### Complexity", + "- O(1)", + "", + "## Events", + "", + "Emits [`Event::Proposed`] if successful." + ] + }, + { + "name": "reject_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 65, + "typeName": "ProposalIndex" + } + ], + "index": 1, + "docs": [ + "Reject a proposed spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "The original deposit will be slashed.", + "", + "### Complexity", + "- O(1)", + "", + "## Events", + "", + "Emits [`Event::Rejected`] if successful." + ] + }, + { + "name": "approve_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 65, + "typeName": "ProposalIndex" + } + ], + "index": 2, + "docs": [ + "Approve a proposal.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::ApproveOrigin`].", + "", + "## Details", + "", + "At a later time, the proposal will be allocated to the beneficiary and the original", + "deposit will be returned.", + "", + "### Complexity", + " - O(1).", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + }, + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 68, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 65, + "typeName": "ProposalIndex" + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 36, + "typeName": "Box" + }, + { + "name": "amount", + "type": 68, + "typeName": "AssetBalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "Box>" + }, + { + "name": "valid_from", + "type": 206, + "typeName": "Option>" + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex" + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 252, + "typeName": "Vec" + }, + { + "name": "value", + "type": 68, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 65, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 351, + "typeName": "Renouncing" + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "slash_bond", + "type": 8, + "typeName": "bool" + }, + { + "name": "rerun_election", + "type": 8, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32" + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "index": 0 + }, + { + "name": "RunnerUp", + "index": 1 + }, + { + "name": "Candidate", + "fields": [ + { + "type": 65, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 15, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 164, + "typeName": "Vec" + } + ], + "index": 4, + "docs": [ + "Ensure that the a bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 252, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 37, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 240, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 65, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 240, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 65, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 8, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 65, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 65, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "maybe_periodic", + "type": 355, + "typeName": "Option>>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "TaskName" + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "maybe_periodic", + "type": 355, + "typeName": "Option>>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "TaskName" + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "maybe_periodic", + "type": 355, + "typeName": "Option>>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "TaskName" + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "maybe_periodic", + "type": 355, + "typeName": "Option>>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 240, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + }, + { + "name": "retries", + "type": 2, + "typeName": "u8" + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "TaskName" + }, + { + "name": "retries", + "type": 2, + "typeName": "u8" + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 145, + "typeName": "TaskAddress>" + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 14, + "typeName": "TaskName" + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 355, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 145 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 145 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 357, + "typeName": "BoundedCallOf" + }, + { + "name": "value", + "type": 68, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 65, + "typeName": "PropIndex" + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 65, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 148, + "typeName": "AccountVote>" + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 357, + "typeName": "BoundedCallOf" + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 357, + "typeName": "BoundedCallOf" + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 357, + "typeName": "BoundedCallOf" + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "voting_period", + "type": 4, + "typeName": "BlockNumberFor" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor" + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 65, + "typeName": "ReferendumIndex" + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 360, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash" + }, + { + "name": "maybe_ref_index", + "type": 206, + "typeName": "Option" + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 65, + "typeName": "PropIndex" + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 150, + "typeName": "MetadataOwner" + }, + { + "name": "maybe_hash", + "type": 202, + "typeName": "Option" + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 357, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 240 + }, + { + "name": "H", + "type": 358 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output" + } + ], + "index": 0 + }, + { + "name": "Inline", + "fields": [ + { + "type": 359, + "typeName": "BoundedInline" + } + ], + "index": 1 + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 358, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 359, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 0, + "typeName": "AccountIdLookupOf" + }, + { + "name": "add", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 252, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_ethereum", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transact", + "fields": [ + { + "name": "transaction", + "type": 363, + "typeName": "Transaction" + } + ], + "index": 0, + "docs": [ + "Transact an Ethereum transaction." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 363, + "type": { + "path": [ + "ethereum", + "transaction", + "TransactionV2" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "type": 364, + "typeName": "LegacyTransaction" + } + ], + "index": 0 + }, + { + "name": "EIP2930", + "fields": [ + { + "type": 368, + "typeName": "EIP2930Transaction" + } + ], + "index": 1 + }, + { + "name": "EIP1559", + "fields": [ + { + "type": 371, + "typeName": "EIP1559Transaction" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 364, + "type": { + "path": [ + "ethereum", + "transaction", + "LegacyTransaction" + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_price", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 166, + "typeName": "U256" + }, + { + "name": "action", + "type": 365, + "typeName": "TransactionAction" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "input", + "type": 15, + "typeName": "Bytes" + }, + { + "name": "signature", + "type": 366, + "typeName": "TransactionSignature" + } + ] + } + } + } + }, + { + "id": 365, + "type": { + "path": [ + "ethereum", + "transaction", + "TransactionAction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [ + { + "type": 153, + "typeName": "H160" + } + ], + "index": 0 + }, + { + "name": "Create", + "index": 1 + } + ] + } + } + } + }, + { + "id": 366, + "type": { + "path": [ + "ethereum", + "transaction", + "TransactionSignature" + ], + "def": { + "composite": { + "fields": [ + { + "name": "v", + "type": 367, + "typeName": "TransactionRecoveryId" + }, + { + "name": "r", + "type": 13, + "typeName": "H256" + }, + { + "name": "s", + "type": 13, + "typeName": "H256" + } + ] + } + } + } + }, + { + "id": 367, + "type": { + "path": [ + "ethereum", + "transaction", + "TransactionRecoveryId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 368, + "type": { + "path": [ + "ethereum", + "transaction", + "EIP2930Transaction" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chain_id", + "type": 12, + "typeName": "u64" + }, + { + "name": "nonce", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_price", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 166, + "typeName": "U256" + }, + { + "name": "action", + "type": 365, + "typeName": "TransactionAction" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "input", + "type": 15, + "typeName": "Bytes" + }, + { + "name": "access_list", + "type": 369, + "typeName": "AccessList" + }, + { + "name": "odd_y_parity", + "type": 8, + "typeName": "bool" + }, + { + "name": "r", + "type": 13, + "typeName": "H256" + }, + { + "name": "s", + "type": 13, + "typeName": "H256" + } + ] + } + } + } + }, + { + "id": 369, + "type": { + "def": { + "sequence": { + "type": 370 + } + } + } + }, + { + "id": 370, + "type": { + "path": [ + "ethereum", + "transaction", + "AccessListItem" + ], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "Address" + }, + { + "name": "storage_keys", + "type": 164, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 371, + "type": { + "path": [ + "ethereum", + "transaction", + "EIP1559Transaction" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chain_id", + "type": 12, + "typeName": "u64" + }, + { + "name": "nonce", + "type": 166, + "typeName": "U256" + }, + { + "name": "max_priority_fee_per_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "max_fee_per_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 166, + "typeName": "U256" + }, + { + "name": "action", + "type": 365, + "typeName": "TransactionAction" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "input", + "type": 15, + "typeName": "Bytes" + }, + { + "name": "access_list", + "type": 369, + "typeName": "AccessList" + }, + { + "name": "odd_y_parity", + "type": 8, + "typeName": "bool" + }, + { + "name": "r", + "type": 13, + "typeName": "H256" + }, + { + "name": "s", + "type": 13, + "typeName": "H256" + } + ] + } + } + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_evm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "withdraw", + "fields": [ + { + "name": "address", + "type": 153, + "typeName": "H160" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Withdraw balance from EVM into currency/balances pallet." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "source", + "type": 153, + "typeName": "H160" + }, + { + "name": "target", + "type": 153, + "typeName": "H160" + }, + { + "name": "input", + "type": 15, + "typeName": "Vec" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 12, + "typeName": "u64" + }, + { + "name": "max_fee_per_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "max_priority_fee_per_gas", + "type": 373, + "typeName": "Option" + }, + { + "name": "nonce", + "type": 373, + "typeName": "Option" + }, + { + "name": "access_list", + "type": 374, + "typeName": "Vec<(H160, Vec)>" + } + ], + "index": 1, + "docs": [ + "Issue an EVM call operation. This is similar to a message call transaction in Ethereum." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "source", + "type": 153, + "typeName": "H160" + }, + { + "name": "init", + "type": 15, + "typeName": "Vec" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 12, + "typeName": "u64" + }, + { + "name": "max_fee_per_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "max_priority_fee_per_gas", + "type": 373, + "typeName": "Option" + }, + { + "name": "nonce", + "type": 373, + "typeName": "Option" + }, + { + "name": "access_list", + "type": 374, + "typeName": "Vec<(H160, Vec)>" + } + ], + "index": 2, + "docs": [ + "Issue an EVM create operation. This is similar to a contract creation transaction in", + "Ethereum." + ] + }, + { + "name": "create2", + "fields": [ + { + "name": "source", + "type": 153, + "typeName": "H160" + }, + { + "name": "init", + "type": 15, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 13, + "typeName": "H256" + }, + { + "name": "value", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 12, + "typeName": "u64" + }, + { + "name": "max_fee_per_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "max_priority_fee_per_gas", + "type": 373, + "typeName": "Option" + }, + { + "name": "nonce", + "type": 373, + "typeName": "Option" + }, + { + "name": "access_list", + "type": 374, + "typeName": "Vec<(H160, Vec)>" + } + ], + "index": 3, + "docs": [ + "Issue an EVM create2 operation." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 373, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 166 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 166 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 374, + "type": { + "def": { + "sequence": { + "type": 375 + } + } + } + }, + { + "id": 375, + "type": { + "def": { + "tuple": [ + 153, + 164 + ] + } + } + }, + { + "id": 376, + "type": { + "path": [ + "pallet_base_fee", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_base_fee_per_gas", + "fields": [ + { + "name": "fee", + "type": 166, + "typeName": "U256" + } + ], + "index": 0 + }, + { + "name": "set_elasticity", + "fields": [ + { + "name": "elasticity", + "type": 168, + "typeName": "Permill" + } + ], + "index": 1 + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 377, + "type": { + "path": [ + "pallet_laos_evolution", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": {} + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 378, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "index": 0, + "docs": [ + "Sender must be the Sudo account." + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet." + ] + } + }, + { + "id": 379, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 380, + "type": { + "def": { + "tuple": [ + 0, + 14 + ] + } + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 40, + "typeName": "Timepoint" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approvals", + "type": 382, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 382, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 384, + "type": { + "def": { + "tuple": [ + 385, + 6 + ] + } + } + }, + { + "id": 385, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 386 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 387, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 386, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 42 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "proxy_type", + "type": 42, + "typeName": "ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 387, + "type": { + "def": { + "sequence": { + "type": 386 + } + } + } + }, + { + "id": 388, + "type": { + "def": { + "tuple": [ + 389, + 6 + ] + } + } + }, + { + "id": 389, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 390 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 391, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash" + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 391, + "type": { + "def": { + "sequence": { + "type": 390 + } + } + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 393, + "type": { + "def": { + "tuple": [ + 394, + 398 + ] + } + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "IdentityInfo", + "type": 257 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 395, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "info", + "type": 257, + "typeName": "IdentityInfo" + } + ] + } + } + } + }, + { + "id": 395, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 396 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 397, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 396, + "type": { + "def": { + "tuple": [ + 4, + 292 + ] + } + } + }, + { + "id": 397, + "type": { + "def": { + "sequence": { + "type": 396 + } + } + } + }, + { + "id": 398, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 45 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 45 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 399, + "type": { + "def": { + "tuple": [ + 6, + 400 + ] + } + } + }, + { + "id": 400, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 401, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 402 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 404, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 402, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 403 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 403 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "IdField", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fields", + "type": 12, + "typeName": "IdField" + } + ] + } + } + } + }, + { + "id": 404, + "type": { + "def": { + "sequence": { + "type": 402 + } + } + } + }, + { + "id": 405, + "type": { + "path": [ + "pallet_identity", + "types", + "AuthorityProperties" + ], + "params": [ + { + "name": "Suffix", + "type": 406 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "suffix", + "type": 406, + "typeName": "Suffix" + }, + { + "name": "allocation", + "type": 4, + "typeName": "Allocation" + } + ] + } + } + } + }, + { + "id": 406, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 407, + "type": { + "def": { + "tuple": [ + 0, + 4 + ] + } + } + }, + { + "id": 408, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyRegistrars", + "index": 11, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "index": 12, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "index": 13, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "index": 14, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "index": 15, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "index": 16, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + }, + { + "name": "InvalidSuffix", + "index": 17, + "docs": [ + "The provided suffix is too long." + ] + }, + { + "name": "NotUsernameAuthority", + "index": 18, + "docs": [ + "The sender does not have permission to issue a username." + ] + }, + { + "name": "NoAllocation", + "index": 19, + "docs": [ + "The authority cannot allocate any more usernames." + ] + }, + { + "name": "InvalidSignature", + "index": 20, + "docs": [ + "The signature on a username was not valid." + ] + }, + { + "name": "RequiresSignature", + "index": 21, + "docs": [ + "Setting this username requires a signature, but none was provided." + ] + }, + { + "name": "InvalidUsername", + "index": 22, + "docs": [ + "The username does not meet the requirements." + ] + }, + { + "name": "UsernameTaken", + "index": 23, + "docs": [ + "The username is already taken." + ] + }, + { + "name": "NoUsername", + "index": 24, + "docs": [ + "The requested username does not exist." + ] + }, + { + "name": "NotExpired", + "index": 25, + "docs": [ + "The username cannot be forcefully removed because it can still be accepted." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 409, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 410 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 412, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 410, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "LockIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reasons", + "type": 411, + "typeName": "Reasons" + } + ] + } + } + } + }, + { + "id": 411, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "index": 0 + }, + { + "name": "Misc", + "index": 1 + }, + { + "name": "All", + "index": 2 + } + ] + } + } + } + }, + { + "id": 412, + "type": { + "def": { + "sequence": { + "type": 410 + } + } + } + }, + { + "id": 413, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 414 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 415, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 87 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "ReserveIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 415, + "type": { + "def": { + "sequence": { + "type": 414 + } + } + } + }, + { + "id": 416, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 417 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 420, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 417, + "type": { + "path": [ + "pallet_balances", + "types", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 418 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 418, + "typeName": "Id" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 418, + "type": { + "path": [ + "laos_runtime", + "RuntimeHoldReason" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "type": 419, + "typeName": "pallet_preimage::HoldReason" + } + ], + "index": 43 + } + ] + } + } + } + }, + { + "id": 419, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "index": 0 + } + ] + } + } + } + }, + { + "id": 420, + "type": { + "def": { + "sequence": { + "type": 417 + } + } + } + }, + { + "id": 421, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 422 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 424, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 422, + "type": { + "path": [ + "pallet_balances", + "types", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 423 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 423, + "typeName": "Id" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 423, + "type": { + "path": [ + "laos_runtime", + "RuntimeFreezeReason" + ], + "def": { + "variant": {} + } + } + }, + { + "id": 424, + "type": { + "def": { + "sequence": { + "type": 422 + } + } + } + }, + { + "id": 425, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 426, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "index": 0 + }, + { + "name": "V2", + "index": 1 + } + ] + } + } + } + }, + { + "id": 427, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 299 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 428, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 428, + "type": { + "def": { + "sequence": { + "type": 299 + } + } + } + }, + { + "id": 429, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 430, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 431, + "type": { + "def": { + "sequence": { + "type": 432 + } + } + } + }, + { + "id": 432, + "type": { + "def": { + "tuple": [ + 0, + 301 + ] + } + } + }, + { + "id": 433, + "type": { + "def": { + "sequence": { + "type": 4 + } + } + } + }, + { + "id": 434, + "type": { + "def": { + "tuple": [ + 435, + 15 + ] + } + } + }, + { + "id": 435, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 19, + "typeName": "[u8; 4]" + } + ] + } + } + } + }, + { + "id": 436, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 437, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 302 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 438, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 438, + "type": { + "def": { + "sequence": { + "type": 302 + } + } + } + }, + { + "id": 439, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 440, + "type": { + "def": { + "tuple": [ + 439, + 4 + ] + } + } + }, + { + "id": 441, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "ParachainBondConfig" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "percent", + "type": 55, + "typeName": "Percent" + } + ] + } + } + } + }, + { + "id": 442, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "RoundInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "first", + "type": 12, + "typeName": "BlockNumber" + }, + { + "name": "length", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 443, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "Delegator" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "delegations", + "type": 444, + "typeName": "OrderedSet>" + }, + { + "name": "total", + "type": 6, + "typeName": "Balance" + }, + { + "name": "less_total", + "type": 6, + "typeName": "Balance" + }, + { + "name": "status", + "type": 447, + "typeName": "DelegatorStatus" + } + ] + } + } + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_parachain_staking", + "set", + "OrderedSet" + ], + "params": [ + { + "name": "T", + "type": 445 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 446, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "Bond" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 446, + "type": { + "def": { + "sequence": { + "type": 445 + } + } + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "DelegatorStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "index": 0 + }, + { + "name": "Leaving", + "fields": [ + { + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 448, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "CandidateMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bond", + "type": 6, + "typeName": "Balance" + }, + { + "name": "delegation_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "total_counted", + "type": 6, + "typeName": "Balance" + }, + { + "name": "lowest_top_delegation_amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "highest_bottom_delegation_amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "lowest_bottom_delegation_amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "top_capacity", + "type": 449, + "typeName": "CapacityStatus" + }, + { + "name": "bottom_capacity", + "type": 449, + "typeName": "CapacityStatus" + }, + { + "name": "request", + "type": 450, + "typeName": "Option>" + }, + { + "name": "status", + "type": 452, + "typeName": "CollatorStatus" + } + ] + } + } + } + }, + { + "id": 449, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "CapacityStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Full", + "index": 0 + }, + { + "name": "Empty", + "index": 1 + }, + { + "name": "Partial", + "index": 2 + } + ] + } + } + } + }, + { + "id": 450, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 451 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 451 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "CandidateBondLessRequest" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "when_executable", + "type": 4, + "typeName": "RoundIndex" + } + ] + } + } + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "CollatorStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "index": 0 + }, + { + "name": "Idle", + "index": 1 + }, + { + "name": "Leaving", + "fields": [ + { + "type": 4, + "typeName": "RoundIndex" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 453, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 454 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 455, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 454, + "type": { + "path": [ + "pallet_parachain_staking", + "delegation_requests", + "ScheduledRequest" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "when_executable", + "type": 4, + "typeName": "RoundIndex" + }, + { + "name": "action", + "type": 53, + "typeName": "DelegationAction" + } + ] + } + } + } + }, + { + "id": 455, + "type": { + "def": { + "sequence": { + "type": 454 + } + } + } + }, + { + "id": 456, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 457 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 458, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 457, + "type": { + "path": [ + "pallet_parachain_staking", + "auto_compound", + "AutoCompoundConfig" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 55, + "typeName": "Percent" + } + ] + } + } + } + }, + { + "id": 458, + "type": { + "def": { + "sequence": { + "type": 457 + } + } + } + }, + { + "id": 459, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "Delegations" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegations", + "type": 446, + "typeName": "Vec>" + }, + { + "name": "total", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 460, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 461, + "type": { + "path": [ + "pallet_parachain_staking", + "set", + "BoundedOrderedSet" + ], + "params": [ + { + "name": "T", + "type": 445 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 462, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 462, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 445 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 446, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 463, + "type": { + "def": { + "tuple": [ + 4, + 0 + ] + } + } + }, + { + "id": 464, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "CollatorSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bond", + "type": 6, + "typeName": "Balance" + }, + { + "name": "delegations", + "type": 465, + "typeName": "Vec>" + }, + { + "name": "total", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 465, + "type": { + "def": { + "sequence": { + "type": 466 + } + } + } + }, + { + "id": 466, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "BondWithAutoCompound" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "auto_compound", + "type": 55, + "typeName": "Percent" + } + ] + } + } + } + }, + { + "id": 467, + "type": { + "path": [ + "pallet_parachain_staking", + "types", + "DelayedPayout" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_issuance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "total_staking_reward", + "type": 6, + "typeName": "Balance" + }, + { + "name": "collator_commission", + "type": 56, + "typeName": "Perbill" + } + ] + } + } + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_parachain_staking", + "inflation", + "InflationInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "expect", + "type": 304, + "typeName": "Range" + }, + { + "name": "annual", + "type": 305, + "typeName": "Range" + }, + { + "name": "round", + "type": 305, + "typeName": "Range" + } + ] + } + } + } + }, + { + "id": 469, + "type": { + "path": [ + "pallet_parachain_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DelegatorDNE", + "index": 0 + }, + { + "name": "DelegatorDNEinTopNorBottom", + "index": 1 + }, + { + "name": "DelegatorDNEInDelegatorSet", + "index": 2 + }, + { + "name": "CandidateDNE", + "index": 3 + }, + { + "name": "DelegationDNE", + "index": 4 + }, + { + "name": "DelegatorExists", + "index": 5 + }, + { + "name": "CandidateExists", + "index": 6 + }, + { + "name": "CandidateBondBelowMin", + "index": 7 + }, + { + "name": "InsufficientBalance", + "index": 8 + }, + { + "name": "DelegatorBondBelowMin", + "index": 9 + }, + { + "name": "DelegationBelowMin", + "index": 10 + }, + { + "name": "AlreadyOffline", + "index": 11 + }, + { + "name": "AlreadyActive", + "index": 12 + }, + { + "name": "DelegatorAlreadyLeaving", + "index": 13 + }, + { + "name": "DelegatorNotLeaving", + "index": 14 + }, + { + "name": "DelegatorCannotLeaveYet", + "index": 15 + }, + { + "name": "CannotDelegateIfLeaving", + "index": 16 + }, + { + "name": "CandidateAlreadyLeaving", + "index": 17 + }, + { + "name": "CandidateNotLeaving", + "index": 18 + }, + { + "name": "CandidateCannotLeaveYet", + "index": 19 + }, + { + "name": "CannotGoOnlineIfLeaving", + "index": 20 + }, + { + "name": "ExceedMaxDelegationsPerDelegator", + "index": 21 + }, + { + "name": "AlreadyDelegatedCandidate", + "index": 22 + }, + { + "name": "InvalidSchedule", + "index": 23 + }, + { + "name": "CannotSetBelowMin", + "index": 24 + }, + { + "name": "RoundLengthMustBeGreaterThanTotalSelectedCollators", + "index": 25 + }, + { + "name": "NoWritingSameValue", + "index": 26 + }, + { + "name": "TooLowCandidateCountWeightHintJoinCandidates", + "index": 27 + }, + { + "name": "TooLowCandidateCountWeightHintCancelLeaveCandidates", + "index": 28 + }, + { + "name": "TooLowCandidateCountToLeaveCandidates", + "index": 29 + }, + { + "name": "TooLowDelegationCountToDelegate", + "index": 30 + }, + { + "name": "TooLowCandidateDelegationCountToDelegate", + "index": 31 + }, + { + "name": "TooLowCandidateDelegationCountToLeaveCandidates", + "index": 32 + }, + { + "name": "TooLowDelegationCountToLeaveDelegators", + "index": 33 + }, + { + "name": "PendingCandidateRequestsDNE", + "index": 34 + }, + { + "name": "PendingCandidateRequestAlreadyExists", + "index": 35 + }, + { + "name": "PendingCandidateRequestNotDueYet", + "index": 36 + }, + { + "name": "PendingDelegationRequestDNE", + "index": 37 + }, + { + "name": "PendingDelegationRequestAlreadyExists", + "index": 38 + }, + { + "name": "PendingDelegationRequestNotDueYet", + "index": 39 + }, + { + "name": "CannotDelegateLessThanOrEqualToLowestBottomWhenFull", + "index": 40 + }, + { + "name": "PendingDelegationRevoke", + "index": 41 + }, + { + "name": "TooLowDelegationCountToAutoCompound", + "index": 42 + }, + { + "name": "TooLowCandidateAutoCompoundingDelegationCountToAutoCompound", + "index": 43 + }, + { + "name": "TooLowCandidateAutoCompoundingDelegationCountToDelegate", + "index": 44 + }, + { + "name": "TooLowCollatorCountToNotifyAsInactive", + "index": 45 + }, + { + "name": "CannotBeNotifiedAsInactive", + "index": 46 + }, + { + "name": "TooLowCandidateAutoCompoundingDelegationCountToLeaveCandidates", + "index": 47 + }, + { + "name": "TooLowCandidateCountWeightHint", + "index": 48 + }, + { + "name": "TooLowCandidateCountWeightHintGoOffline", + "index": 49 + }, + { + "name": "CandidateLimitReached", + "index": 50 + }, + { + "name": "CannotSetAboveMaxCandidates", + "index": 51 + }, + { + "name": "RemovedCall", + "index": 52 + }, + { + "name": "MarkingOfflineNotEnabled", + "index": 53 + }, + { + "name": "CurrentRoundTooLow", + "index": 54 + }, + { + "name": "DeadAccount", + "index": 55 + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 470, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 135 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 471, + "typeName": "BTreeSet" + } + ] + } + } + } + }, + { + "id": 471, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 135 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 472 + } + ] + } + } + } + }, + { + "id": 472, + "type": { + "def": { + "sequence": { + "type": 135 + } + } + } + }, + { + "id": 473, + "type": { + "def": { + "sequence": { + "type": 474 + } + } + } + }, + { + "id": 474, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "OutboundChannelDetails" + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 135, + "typeName": "ParaId" + }, + { + "name": "state", + "type": 475, + "typeName": "OutboundState" + }, + { + "name": "signals_exist", + "type": 8, + "typeName": "bool" + }, + { + "name": "first_index", + "type": 43, + "typeName": "u16" + }, + { + "name": "last_index", + "type": 43, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 475, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "OutboundState" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "index": 0 + }, + { + "name": "Suspended", + "index": 1 + } + ] + } + } + } + }, + { + "id": 476, + "type": { + "def": { + "tuple": [ + 135, + 43 + ] + } + } + }, + { + "id": 477, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "QueueConfigData" + ], + "def": { + "composite": { + "fields": [ + { + "name": "suspend_threshold", + "type": 4, + "typeName": "u32" + }, + { + "name": "drop_threshold", + "type": 4, + "typeName": "u32" + }, + { + "name": "resume_threshold", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 478, + "type": { + "path": [ + "cumulus_pallet_xcmp_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadQueueConfig", + "index": 0, + "docs": [ + "Setting the queue config failed since one of its values was invalid." + ] + }, + { + "name": "AlreadySuspended", + "index": 1, + "docs": [ + "The execution is already suspended." + ] + }, + { + "name": "AlreadyResumed", + "index": 2, + "docs": [ + "The execution is already resumed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 479, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 131, + "typeName": "VersionedLocation" + }, + { + "name": "maybe_match_querier", + "type": 480, + "typeName": "Option" + }, + { + "name": "maybe_notify", + "type": 481, + "typeName": "Option<(u8, u8)>" + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 0 + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 131, + "typeName": "VersionedLocation" + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool" + } + ], + "index": 1 + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 483, + "typeName": "VersionedResponse" + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 480, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 131 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 131 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 481, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 482 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 482 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 482, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 483, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "type": 312, + "typeName": "v2::Response" + } + ], + "index": 2 + }, + { + "name": "V3", + "fields": [ + { + "type": 323, + "typeName": "v3::Response" + } + ], + "index": 3 + }, + { + "name": "V4", + "fields": [ + { + "type": 89, + "typeName": "v4::Response" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 484, + "type": { + "def": { + "tuple": [ + 4, + 131 + ] + } + } + }, + { + "id": 485, + "type": { + "def": { + "tuple": [ + 12, + 10, + 4 + ] + } + } + }, + { + "id": 486, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 487 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 488, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 487, + "type": { + "def": { + "tuple": [ + 131, + 4 + ] + } + } + }, + { + "id": 488, + "type": { + "def": { + "sequence": { + "type": 487 + } + } + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "index": 0 + }, + { + "name": "MigrateVersionNotifiers", + "index": 1 + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "type": 490, + "typeName": "Option>" + } + ], + "index": 2 + }, + { + "name": "MigrateAndNotifyOldTargets", + "index": 3 + } + ] + } + } + } + }, + { + "id": 490, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 15 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 15 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 491, + "type": { + "def": { + "tuple": [ + 4, + 0, + 345 + ] + } + } + }, + { + "id": 492, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 36 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128" + }, + { + "name": "owner", + "type": 131, + "typeName": "VersionedLocation" + }, + { + "name": "locker", + "type": 131, + "typeName": "VersionedLocation" + }, + { + "name": "consumers", + "type": 493, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>" + } + ] + } + } + } + }, + { + "id": 493, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 494 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 495, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 494, + "type": { + "def": { + "tuple": [ + 36, + 6 + ] + } + } + }, + { + "id": 495, + "type": { + "def": { + "sequence": { + "type": 494 + } + } + } + }, + { + "id": 496, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 497 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 498, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 497, + "type": { + "def": { + "tuple": [ + 6, + 131 + ] + } + } + }, + { + "id": 498, + "type": { + "def": { + "sequence": { + "type": 497 + } + } + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 134 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "ready_neighbours", + "type": 501, + "typeName": "Option>" + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64" + }, + { + "name": "size", + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 501, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 502 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 502 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 502, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 134 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 134, + "typeName": "MessageOrigin" + }, + { + "name": "next", + "type": 134, + "typeName": "MessageOrigin" + } + ] + } + } + } + }, + { + "id": 503, + "type": { + "def": { + "tuple": [ + 134, + 4 + ] + } + } + }, + { + "id": 504, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size" + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size" + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size" + }, + { + "name": "first", + "type": 4, + "typeName": "Size" + }, + { + "name": "last", + "type": 4, + "typeName": "Size" + }, + { + "name": "heap", + "type": 505, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 505, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 507, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 164, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 508, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "ayes", + "type": 252, + "typeName": "Vec" + }, + { + "name": "nays", + "type": 252, + "typeName": "Vec" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "index": 10, + "docs": [ + "Prime account is not a member" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 510, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 511, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 433, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 512, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 36 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 36 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 36, + "typeName": "AssetKind" + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "Beneficiary" + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "status", + "type": 513, + "typeName": "PaymentState" + } + ] + } + } + } + }, + { + "id": 513, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 36 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "index": 0 + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "Id" + } + ], + "index": 1 + }, + { + "name": "Failed", + "index": 2 + } + ] + } + } + } + }, + { + "id": 514, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 6 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 515, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 87, + "typeName": "[u8; 8]" + } + ] + } + } + } + }, + { + "id": 516, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "index": 1, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "index": 2, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "index": 3, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "index": 4, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "index": 5, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "index": 6, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "index": 7, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "index": 8, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "index": 9, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "index": 10, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "index": 11, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 517, + "type": { + "def": { + "sequence": { + "type": 518 + } + } + } + }, + { + "id": 518, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 519, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 252, + "typeName": "Vec" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 521, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 141, + "typeName": "(AccountId, Balance)" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 522, + "typeName": "Option<(AccountId, Balance)>" + }, + { + "name": "count", + "type": 4, + "typeName": "u32" + }, + { + "name": "len", + "type": 206, + "typeName": "Option" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 522, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 141 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 141 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 524 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 525, + "typeName": "(AccountId, Ticket)" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 526, + "typeName": "Option<(AccountId, Ticket)>" + }, + { + "name": "count", + "type": 4, + "typeName": "u32" + }, + { + "name": "maybe_len", + "type": 206, + "typeName": "Option" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 524, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "F::Balance" + } + ] + } + } + } + }, + { + "id": 525, + "type": { + "def": { + "tuple": [ + 0, + 524 + ] + } + } + }, + { + "id": 526, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 525 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 525 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 527, + "type": { + "def": { + "tuple": [ + 13, + 4 + ] + } + } + }, + { + "id": 528, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 530, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "index": 10, + "docs": [ + "Prime account is not a member" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 531, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 532 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 534, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 532, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 533 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 533 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 533, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 14 + }, + { + "name": "Call", + "type": 357 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 243 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 33, + "typeName": "Option" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 357, + "typeName": "Call" + }, + { + "name": "maybe_periodic", + "type": 355, + "typeName": "Option>" + }, + { + "name": "origin", + "type": 243, + "typeName": "PalletsOrigin" + } + ] + } + } + } + }, + { + "id": 534, + "type": { + "def": { + "sequence": { + "type": 532 + } + } + } + }, + { + "id": 535, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8" + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8" + }, + { + "name": "period", + "type": 4, + "typeName": "Period" + } + ] + } + } + } + }, + { + "id": 536, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 537, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 538 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 539, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 538, + "type": { + "def": { + "tuple": [ + 4, + 357, + 0 + ] + } + } + }, + { + "id": 539, + "type": { + "def": { + "sequence": { + "type": 538 + } + } + } + }, + { + "id": 540, + "type": { + "def": { + "tuple": [ + 541, + 6 + ] + } + } + }, + { + "id": 541, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 542, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 357 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 543, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 8, + "typeName": "bool" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 357 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "proposal", + "type": 357, + "typeName": "Proposal" + }, + { + "name": "threshold", + "type": 147, + "typeName": "VoteThreshold" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "tally", + "type": 544, + "typeName": "Tally" + } + ] + } + } + } + }, + { + "id": 544, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance" + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 546, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>" + }, + { + "name": "delegations", + "type": 549, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 550, + "typeName": "PriorLock" + } + ], + "index": 0 + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "conviction", + "type": 360, + "typeName": "Conviction" + }, + { + "name": "delegations", + "type": 549, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 550, + "typeName": "PriorLock" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 546, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 547 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 548, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 547, + "type": { + "def": { + "tuple": [ + 4, + 148 + ] + } + } + }, + { + "id": 548, + "type": { + "def": { + "sequence": { + "type": 547 + } + } + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 550, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + }, + { + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 551, + "type": { + "def": { + "tuple": [ + 357, + 147 + ] + } + } + }, + { + "id": 552, + "type": { + "def": { + "tuple": [ + 4, + 553 + ] + } + } + }, + { + "id": 553, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 554, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 555, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 252, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 556, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 557, + "type": { + "def": { + "sequence": { + "type": 558 + } + } + } + }, + { + "id": 558, + "type": { + "def": { + "tuple": [ + 363, + 559, + 564 + ] + } + } + }, + { + "id": 559, + "type": { + "path": [ + "fp_rpc", + "TransactionStatus" + ], + "def": { + "composite": { + "fields": [ + { + "name": "transaction_hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "transaction_index", + "type": 4, + "typeName": "u32" + }, + { + "name": "from", + "type": 153, + "typeName": "Address" + }, + { + "name": "to", + "type": 560, + "typeName": "Option
" + }, + { + "name": "contract_address", + "type": 560, + "typeName": "Option
" + }, + { + "name": "logs", + "type": 561, + "typeName": "Vec" + }, + { + "name": "logs_bloom", + "type": 562, + "typeName": "Bloom" + } + ] + } + } + } + }, + { + "id": 560, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 153 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 153 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 561, + "type": { + "def": { + "sequence": { + "type": 163 + } + } + } + }, + { + "id": 562, + "type": { + "path": [ + "ethbloom", + "Bloom" + ], + "def": { + "composite": { + "fields": [ + { + "type": 563, + "typeName": "[u8; BLOOM_SIZE]" + } + ] + } + } + } + }, + { + "id": 563, + "type": { + "def": { + "array": { + "len": 256, + "type": 2 + } + } + } + }, + { + "id": 564, + "type": { + "path": [ + "ethereum", + "receipt", + "ReceiptV3" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "type": 565, + "typeName": "EIP658ReceiptData" + } + ], + "index": 0 + }, + { + "name": "EIP2930", + "fields": [ + { + "type": 565, + "typeName": "EIP2930ReceiptData" + } + ], + "index": 1 + }, + { + "name": "EIP1559", + "fields": [ + { + "type": 565, + "typeName": "EIP1559ReceiptData" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 565, + "type": { + "path": [ + "ethereum", + "receipt", + "EIP658ReceiptData" + ], + "def": { + "composite": { + "fields": [ + { + "name": "status_code", + "type": 2, + "typeName": "u8" + }, + { + "name": "used_gas", + "type": 166, + "typeName": "U256" + }, + { + "name": "logs_bloom", + "type": 562, + "typeName": "Bloom" + }, + { + "name": "logs", + "type": 561, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 566, + "type": { + "path": [ + "ethereum", + "block", + "Block" + ], + "params": [ + { + "name": "T", + "type": 363 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 567, + "typeName": "Header" + }, + { + "name": "transactions", + "type": 569, + "typeName": "Vec" + }, + { + "name": "ommers", + "type": 570, + "typeName": "Vec
" + } + ] + } + } + } + }, + { + "id": 567, + "type": { + "path": [ + "ethereum", + "header", + "Header" + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "ommers_hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "beneficiary", + "type": 153, + "typeName": "H160" + }, + { + "name": "state_root", + "type": 13, + "typeName": "H256" + }, + { + "name": "transactions_root", + "type": 13, + "typeName": "H256" + }, + { + "name": "receipts_root", + "type": 13, + "typeName": "H256" + }, + { + "name": "logs_bloom", + "type": 562, + "typeName": "Bloom" + }, + { + "name": "difficulty", + "type": 166, + "typeName": "U256" + }, + { + "name": "number", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_limit", + "type": 166, + "typeName": "U256" + }, + { + "name": "gas_used", + "type": 166, + "typeName": "U256" + }, + { + "name": "timestamp", + "type": 12, + "typeName": "u64" + }, + { + "name": "extra_data", + "type": 15, + "typeName": "Bytes" + }, + { + "name": "mix_hash", + "type": 13, + "typeName": "H256" + }, + { + "name": "nonce", + "type": 568, + "typeName": "H64" + } + ] + } + } + } + }, + { + "id": 568, + "type": { + "path": [ + "ethereum_types", + "hash", + "H64" + ], + "def": { + "composite": { + "fields": [ + { + "type": 87, + "typeName": "[u8; 8]" + } + ] + } + } + } + }, + { + "id": 569, + "type": { + "def": { + "sequence": { + "type": 363 + } + } + } + }, + { + "id": 570, + "type": { + "def": { + "sequence": { + "type": 567 + } + } + } + }, + { + "id": 571, + "type": { + "def": { + "sequence": { + "type": 564 + } + } + } + }, + { + "id": 572, + "type": { + "def": { + "sequence": { + "type": 559 + } + } + } + }, + { + "id": 573, + "type": { + "path": [ + "pallet_ethereum", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSignature", + "index": 0, + "docs": [ + "Signature is invalid." + ] + }, + { + "name": "PreLogExists", + "index": 1, + "docs": [ + "Pre-log is present, therefore transact is not allowed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_evm", + "CodeMetadata" + ], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 12, + "typeName": "u64" + }, + { + "name": "hash", + "type": 13, + "typeName": "H256" + } + ] + } + } + } + }, + { + "id": 575, + "type": { + "def": { + "tuple": [ + 153, + 13 + ] + } + } + }, + { + "id": 576, + "type": { + "path": [ + "pallet_evm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "index": 0, + "docs": [ + "Not enough balance to perform action" + ] + }, + { + "name": "FeeOverflow", + "index": 1, + "docs": [ + "Calculating total fee overflowed" + ] + }, + { + "name": "PaymentOverflow", + "index": 2, + "docs": [ + "Calculating total payment overflowed" + ] + }, + { + "name": "WithdrawFailed", + "index": 3, + "docs": [ + "Withdraw fee failed" + ] + }, + { + "name": "GasPriceTooLow", + "index": 4, + "docs": [ + "Gas price is too low." + ] + }, + { + "name": "InvalidNonce", + "index": 5, + "docs": [ + "Nonce is invalid" + ] + }, + { + "name": "GasLimitTooLow", + "index": 6, + "docs": [ + "Gas limit is too low." + ] + }, + { + "name": "GasLimitTooHigh", + "index": 7, + "docs": [ + "Gas limit is too high." + ] + }, + { + "name": "InvalidChainId", + "index": 8, + "docs": [ + "The chain id is invalid." + ] + }, + { + "name": "InvalidSignature", + "index": 9, + "docs": [ + "the signature is invalid." + ] + }, + { + "name": "Reentrancy", + "index": 10, + "docs": [ + "EVM reentrancy" + ] + }, + { + "name": "TransactionMustComeFromEOA", + "index": 11, + "docs": [ + "EIP-3607," + ] + }, + { + "name": "Undefined", + "index": 12, + "docs": [ + "Undefined error." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 577, + "type": { + "def": { + "tuple": [ + 12, + 166 + ] + } + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_laos_evolution", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CollectionDoesNotExist", + "index": 0, + "docs": [ + "Collection does not exist" + ] + }, + { + "name": "NoPermission", + "index": 1, + "docs": [ + "Not the owner of the collection" + ] + }, + { + "name": "AlreadyMinted", + "index": 2, + "docs": [ + "[`Slot`] is already minted" + ] + }, + { + "name": "AssetDoesNotExist", + "index": 3, + "docs": [ + "Asset does not exist" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 579, + "type": { + "def": { + "tuple": [ + 174, + 4 + ] + } + } + }, + { + "id": 580, + "type": { + "def": { + "tuple": [ + 0, + 174 + ] + } + } + }, + { + "id": 581, + "type": { + "path": [ + "pallet_asset_metadata_extender", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtensionAlreadyExists", + "index": 0, + "docs": [ + "A claimer can perform one extension for a given universal location" + ] + }, + { + "name": "ExtensionDoesNotExist", + "index": 1, + "docs": [ + "A claimer can update an extension only if it exists" + ] + } + ] + } + }, + "docs": [ + "Customs errors for this pallet" + ] + } + }, + { + "id": 582, + "type": { + "def": { + "tuple": [ + 583, + 584, + 585, + 586, + 587, + 589, + 590, + 591 + ] + } + } + }, + { + "id": 583, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 584, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 585, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 586, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 587, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 588, + "typeName": "Era" + } + ] + } + } + } + }, + { + "id": 588, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "index": 0 + }, + { + "name": "Mortal1", + "fields": [ + { + "type": 2 + } + ], + "index": 1 + }, + { + "name": "Mortal2", + "fields": [ + { + "type": 2 + } + ], + "index": 2 + }, + { + "name": "Mortal3", + "fields": [ + { + "type": 2 + } + ], + "index": 3 + }, + { + "name": "Mortal4", + "fields": [ + { + "type": 2 + } + ], + "index": 4 + }, + { + "name": "Mortal5", + "fields": [ + { + "type": 2 + } + ], + "index": 5 + }, + { + "name": "Mortal6", + "fields": [ + { + "type": 2 + } + ], + "index": 6 + }, + { + "name": "Mortal7", + "fields": [ + { + "type": 2 + } + ], + "index": 7 + }, + { + "name": "Mortal8", + "fields": [ + { + "type": 2 + } + ], + "index": 8 + }, + { + "name": "Mortal9", + "fields": [ + { + "type": 2 + } + ], + "index": 9 + }, + { + "name": "Mortal10", + "fields": [ + { + "type": 2 + } + ], + "index": 10 + }, + { + "name": "Mortal11", + "fields": [ + { + "type": 2 + } + ], + "index": 11 + }, + { + "name": "Mortal12", + "fields": [ + { + "type": 2 + } + ], + "index": 12 + }, + { + "name": "Mortal13", + "fields": [ + { + "type": 2 + } + ], + "index": 13 + }, + { + "name": "Mortal14", + "fields": [ + { + "type": 2 + } + ], + "index": 14 + }, + { + "name": "Mortal15", + "fields": [ + { + "type": 2 + } + ], + "index": 15 + }, + { + "name": "Mortal16", + "fields": [ + { + "type": 2 + } + ], + "index": 16 + }, + { + "name": "Mortal17", + "fields": [ + { + "type": 2 + } + ], + "index": 17 + }, + { + "name": "Mortal18", + "fields": [ + { + "type": 2 + } + ], + "index": 18 + }, + { + "name": "Mortal19", + "fields": [ + { + "type": 2 + } + ], + "index": 19 + }, + { + "name": "Mortal20", + "fields": [ + { + "type": 2 + } + ], + "index": 20 + }, + { + "name": "Mortal21", + "fields": [ + { + "type": 2 + } + ], + "index": 21 + }, + { + "name": "Mortal22", + "fields": [ + { + "type": 2 + } + ], + "index": 22 + }, + { + "name": "Mortal23", + "fields": [ + { + "type": 2 + } + ], + "index": 23 + }, + { + "name": "Mortal24", + "fields": [ + { + "type": 2 + } + ], + "index": 24 + }, + { + "name": "Mortal25", + "fields": [ + { + "type": 2 + } + ], + "index": 25 + }, + { + "name": "Mortal26", + "fields": [ + { + "type": 2 + } + ], + "index": 26 + }, + { + "name": "Mortal27", + "fields": [ + { + "type": 2 + } + ], + "index": 27 + }, + { + "name": "Mortal28", + "fields": [ + { + "type": 2 + } + ], + "index": 28 + }, + { + "name": "Mortal29", + "fields": [ + { + "type": 2 + } + ], + "index": 29 + }, + { + "name": "Mortal30", + "fields": [ + { + "type": 2 + } + ], + "index": 30 + }, + { + "name": "Mortal31", + "fields": [ + { + "type": 2 + } + ], + "index": 31 + }, + { + "name": "Mortal32", + "fields": [ + { + "type": 2 + } + ], + "index": 32 + }, + { + "name": "Mortal33", + "fields": [ + { + "type": 2 + } + ], + "index": 33 + }, + { + "name": "Mortal34", + "fields": [ + { + "type": 2 + } + ], + "index": 34 + }, + { + "name": "Mortal35", + "fields": [ + { + "type": 2 + } + ], + "index": 35 + }, + { + "name": "Mortal36", + "fields": [ + { + "type": 2 + } + ], + "index": 36 + }, + { + "name": "Mortal37", + "fields": [ + { + "type": 2 + } + ], + "index": 37 + }, + { + "name": "Mortal38", + "fields": [ + { + "type": 2 + } + ], + "index": 38 + }, + { + "name": "Mortal39", + "fields": [ + { + "type": 2 + } + ], + "index": 39 + }, + { + "name": "Mortal40", + "fields": [ + { + "type": 2 + } + ], + "index": 40 + }, + { + "name": "Mortal41", + "fields": [ + { + "type": 2 + } + ], + "index": 41 + }, + { + "name": "Mortal42", + "fields": [ + { + "type": 2 + } + ], + "index": 42 + }, + { + "name": "Mortal43", + "fields": [ + { + "type": 2 + } + ], + "index": 43 + }, + { + "name": "Mortal44", + "fields": [ + { + "type": 2 + } + ], + "index": 44 + }, + { + "name": "Mortal45", + "fields": [ + { + "type": 2 + } + ], + "index": 45 + }, + { + "name": "Mortal46", + "fields": [ + { + "type": 2 + } + ], + "index": 46 + }, + { + "name": "Mortal47", + "fields": [ + { + "type": 2 + } + ], + "index": 47 + }, + { + "name": "Mortal48", + "fields": [ + { + "type": 2 + } + ], + "index": 48 + }, + { + "name": "Mortal49", + "fields": [ + { + "type": 2 + } + ], + "index": 49 + }, + { + "name": "Mortal50", + "fields": [ + { + "type": 2 + } + ], + "index": 50 + }, + { + "name": "Mortal51", + "fields": [ + { + "type": 2 + } + ], + "index": 51 + }, + { + "name": "Mortal52", + "fields": [ + { + "type": 2 + } + ], + "index": 52 + }, + { + "name": "Mortal53", + "fields": [ + { + "type": 2 + } + ], + "index": 53 + }, + { + "name": "Mortal54", + "fields": [ + { + "type": 2 + } + ], + "index": 54 + }, + { + "name": "Mortal55", + "fields": [ + { + "type": 2 + } + ], + "index": 55 + }, + { + "name": "Mortal56", + "fields": [ + { + "type": 2 + } + ], + "index": 56 + }, + { + "name": "Mortal57", + "fields": [ + { + "type": 2 + } + ], + "index": 57 + }, + { + "name": "Mortal58", + "fields": [ + { + "type": 2 + } + ], + "index": 58 + }, + { + "name": "Mortal59", + "fields": [ + { + "type": 2 + } + ], + "index": 59 + }, + { + "name": "Mortal60", + "fields": [ + { + "type": 2 + } + ], + "index": 60 + }, + { + "name": "Mortal61", + "fields": [ + { + "type": 2 + } + ], + "index": 61 + }, + { + "name": "Mortal62", + "fields": [ + { + "type": 2 + } + ], + "index": 62 + }, + { + "name": "Mortal63", + "fields": [ + { + "type": 2 + } + ], + "index": 63 + }, + { + "name": "Mortal64", + "fields": [ + { + "type": 2 + } + ], + "index": 64 + }, + { + "name": "Mortal65", + "fields": [ + { + "type": 2 + } + ], + "index": 65 + }, + { + "name": "Mortal66", + "fields": [ + { + "type": 2 + } + ], + "index": 66 + }, + { + "name": "Mortal67", + "fields": [ + { + "type": 2 + } + ], + "index": 67 + }, + { + "name": "Mortal68", + "fields": [ + { + "type": 2 + } + ], + "index": 68 + }, + { + "name": "Mortal69", + "fields": [ + { + "type": 2 + } + ], + "index": 69 + }, + { + "name": "Mortal70", + "fields": [ + { + "type": 2 + } + ], + "index": 70 + }, + { + "name": "Mortal71", + "fields": [ + { + "type": 2 + } + ], + "index": 71 + }, + { + "name": "Mortal72", + "fields": [ + { + "type": 2 + } + ], + "index": 72 + }, + { + "name": "Mortal73", + "fields": [ + { + "type": 2 + } + ], + "index": 73 + }, + { + "name": "Mortal74", + "fields": [ + { + "type": 2 + } + ], + "index": 74 + }, + { + "name": "Mortal75", + "fields": [ + { + "type": 2 + } + ], + "index": 75 + }, + { + "name": "Mortal76", + "fields": [ + { + "type": 2 + } + ], + "index": 76 + }, + { + "name": "Mortal77", + "fields": [ + { + "type": 2 + } + ], + "index": 77 + }, + { + "name": "Mortal78", + "fields": [ + { + "type": 2 + } + ], + "index": 78 + }, + { + "name": "Mortal79", + "fields": [ + { + "type": 2 + } + ], + "index": 79 + }, + { + "name": "Mortal80", + "fields": [ + { + "type": 2 + } + ], + "index": 80 + }, + { + "name": "Mortal81", + "fields": [ + { + "type": 2 + } + ], + "index": 81 + }, + { + "name": "Mortal82", + "fields": [ + { + "type": 2 + } + ], + "index": 82 + }, + { + "name": "Mortal83", + "fields": [ + { + "type": 2 + } + ], + "index": 83 + }, + { + "name": "Mortal84", + "fields": [ + { + "type": 2 + } + ], + "index": 84 + }, + { + "name": "Mortal85", + "fields": [ + { + "type": 2 + } + ], + "index": 85 + }, + { + "name": "Mortal86", + "fields": [ + { + "type": 2 + } + ], + "index": 86 + }, + { + "name": "Mortal87", + "fields": [ + { + "type": 2 + } + ], + "index": 87 + }, + { + "name": "Mortal88", + "fields": [ + { + "type": 2 + } + ], + "index": 88 + }, + { + "name": "Mortal89", + "fields": [ + { + "type": 2 + } + ], + "index": 89 + }, + { + "name": "Mortal90", + "fields": [ + { + "type": 2 + } + ], + "index": 90 + }, + { + "name": "Mortal91", + "fields": [ + { + "type": 2 + } + ], + "index": 91 + }, + { + "name": "Mortal92", + "fields": [ + { + "type": 2 + } + ], + "index": 92 + }, + { + "name": "Mortal93", + "fields": [ + { + "type": 2 + } + ], + "index": 93 + }, + { + "name": "Mortal94", + "fields": [ + { + "type": 2 + } + ], + "index": 94 + }, + { + "name": "Mortal95", + "fields": [ + { + "type": 2 + } + ], + "index": 95 + }, + { + "name": "Mortal96", + "fields": [ + { + "type": 2 + } + ], + "index": 96 + }, + { + "name": "Mortal97", + "fields": [ + { + "type": 2 + } + ], + "index": 97 + }, + { + "name": "Mortal98", + "fields": [ + { + "type": 2 + } + ], + "index": 98 + }, + { + "name": "Mortal99", + "fields": [ + { + "type": 2 + } + ], + "index": 99 + }, + { + "name": "Mortal100", + "fields": [ + { + "type": 2 + } + ], + "index": 100 + }, + { + "name": "Mortal101", + "fields": [ + { + "type": 2 + } + ], + "index": 101 + }, + { + "name": "Mortal102", + "fields": [ + { + "type": 2 + } + ], + "index": 102 + }, + { + "name": "Mortal103", + "fields": [ + { + "type": 2 + } + ], + "index": 103 + }, + { + "name": "Mortal104", + "fields": [ + { + "type": 2 + } + ], + "index": 104 + }, + { + "name": "Mortal105", + "fields": [ + { + "type": 2 + } + ], + "index": 105 + }, + { + "name": "Mortal106", + "fields": [ + { + "type": 2 + } + ], + "index": 106 + }, + { + "name": "Mortal107", + "fields": [ + { + "type": 2 + } + ], + "index": 107 + }, + { + "name": "Mortal108", + "fields": [ + { + "type": 2 + } + ], + "index": 108 + }, + { + "name": "Mortal109", + "fields": [ + { + "type": 2 + } + ], + "index": 109 + }, + { + "name": "Mortal110", + "fields": [ + { + "type": 2 + } + ], + "index": 110 + }, + { + "name": "Mortal111", + "fields": [ + { + "type": 2 + } + ], + "index": 111 + }, + { + "name": "Mortal112", + "fields": [ + { + "type": 2 + } + ], + "index": 112 + }, + { + "name": "Mortal113", + "fields": [ + { + "type": 2 + } + ], + "index": 113 + }, + { + "name": "Mortal114", + "fields": [ + { + "type": 2 + } + ], + "index": 114 + }, + { + "name": "Mortal115", + "fields": [ + { + "type": 2 + } + ], + "index": 115 + }, + { + "name": "Mortal116", + "fields": [ + { + "type": 2 + } + ], + "index": 116 + }, + { + "name": "Mortal117", + "fields": [ + { + "type": 2 + } + ], + "index": 117 + }, + { + "name": "Mortal118", + "fields": [ + { + "type": 2 + } + ], + "index": 118 + }, + { + "name": "Mortal119", + "fields": [ + { + "type": 2 + } + ], + "index": 119 + }, + { + "name": "Mortal120", + "fields": [ + { + "type": 2 + } + ], + "index": 120 + }, + { + "name": "Mortal121", + "fields": [ + { + "type": 2 + } + ], + "index": 121 + }, + { + "name": "Mortal122", + "fields": [ + { + "type": 2 + } + ], + "index": 122 + }, + { + "name": "Mortal123", + "fields": [ + { + "type": 2 + } + ], + "index": 123 + }, + { + "name": "Mortal124", + "fields": [ + { + "type": 2 + } + ], + "index": 124 + }, + { + "name": "Mortal125", + "fields": [ + { + "type": 2 + } + ], + "index": 125 + }, + { + "name": "Mortal126", + "fields": [ + { + "type": 2 + } + ], + "index": 126 + }, + { + "name": "Mortal127", + "fields": [ + { + "type": 2 + } + ], + "index": 127 + }, + { + "name": "Mortal128", + "fields": [ + { + "type": 2 + } + ], + "index": 128 + }, + { + "name": "Mortal129", + "fields": [ + { + "type": 2 + } + ], + "index": 129 + }, + { + "name": "Mortal130", + "fields": [ + { + "type": 2 + } + ], + "index": 130 + }, + { + "name": "Mortal131", + "fields": [ + { + "type": 2 + } + ], + "index": 131 + }, + { + "name": "Mortal132", + "fields": [ + { + "type": 2 + } + ], + "index": 132 + }, + { + "name": "Mortal133", + "fields": [ + { + "type": 2 + } + ], + "index": 133 + }, + { + "name": "Mortal134", + "fields": [ + { + "type": 2 + } + ], + "index": 134 + }, + { + "name": "Mortal135", + "fields": [ + { + "type": 2 + } + ], + "index": 135 + }, + { + "name": "Mortal136", + "fields": [ + { + "type": 2 + } + ], + "index": 136 + }, + { + "name": "Mortal137", + "fields": [ + { + "type": 2 + } + ], + "index": 137 + }, + { + "name": "Mortal138", + "fields": [ + { + "type": 2 + } + ], + "index": 138 + }, + { + "name": "Mortal139", + "fields": [ + { + "type": 2 + } + ], + "index": 139 + }, + { + "name": "Mortal140", + "fields": [ + { + "type": 2 + } + ], + "index": 140 + }, + { + "name": "Mortal141", + "fields": [ + { + "type": 2 + } + ], + "index": 141 + }, + { + "name": "Mortal142", + "fields": [ + { + "type": 2 + } + ], + "index": 142 + }, + { + "name": "Mortal143", + "fields": [ + { + "type": 2 + } + ], + "index": 143 + }, + { + "name": "Mortal144", + "fields": [ + { + "type": 2 + } + ], + "index": 144 + }, + { + "name": "Mortal145", + "fields": [ + { + "type": 2 + } + ], + "index": 145 + }, + { + "name": "Mortal146", + "fields": [ + { + "type": 2 + } + ], + "index": 146 + }, + { + "name": "Mortal147", + "fields": [ + { + "type": 2 + } + ], + "index": 147 + }, + { + "name": "Mortal148", + "fields": [ + { + "type": 2 + } + ], + "index": 148 + }, + { + "name": "Mortal149", + "fields": [ + { + "type": 2 + } + ], + "index": 149 + }, + { + "name": "Mortal150", + "fields": [ + { + "type": 2 + } + ], + "index": 150 + }, + { + "name": "Mortal151", + "fields": [ + { + "type": 2 + } + ], + "index": 151 + }, + { + "name": "Mortal152", + "fields": [ + { + "type": 2 + } + ], + "index": 152 + }, + { + "name": "Mortal153", + "fields": [ + { + "type": 2 + } + ], + "index": 153 + }, + { + "name": "Mortal154", + "fields": [ + { + "type": 2 + } + ], + "index": 154 + }, + { + "name": "Mortal155", + "fields": [ + { + "type": 2 + } + ], + "index": 155 + }, + { + "name": "Mortal156", + "fields": [ + { + "type": 2 + } + ], + "index": 156 + }, + { + "name": "Mortal157", + "fields": [ + { + "type": 2 + } + ], + "index": 157 + }, + { + "name": "Mortal158", + "fields": [ + { + "type": 2 + } + ], + "index": 158 + }, + { + "name": "Mortal159", + "fields": [ + { + "type": 2 + } + ], + "index": 159 + }, + { + "name": "Mortal160", + "fields": [ + { + "type": 2 + } + ], + "index": 160 + }, + { + "name": "Mortal161", + "fields": [ + { + "type": 2 + } + ], + "index": 161 + }, + { + "name": "Mortal162", + "fields": [ + { + "type": 2 + } + ], + "index": 162 + }, + { + "name": "Mortal163", + "fields": [ + { + "type": 2 + } + ], + "index": 163 + }, + { + "name": "Mortal164", + "fields": [ + { + "type": 2 + } + ], + "index": 164 + }, + { + "name": "Mortal165", + "fields": [ + { + "type": 2 + } + ], + "index": 165 + }, + { + "name": "Mortal166", + "fields": [ + { + "type": 2 + } + ], + "index": 166 + }, + { + "name": "Mortal167", + "fields": [ + { + "type": 2 + } + ], + "index": 167 + }, + { + "name": "Mortal168", + "fields": [ + { + "type": 2 + } + ], + "index": 168 + }, + { + "name": "Mortal169", + "fields": [ + { + "type": 2 + } + ], + "index": 169 + }, + { + "name": "Mortal170", + "fields": [ + { + "type": 2 + } + ], + "index": 170 + }, + { + "name": "Mortal171", + "fields": [ + { + "type": 2 + } + ], + "index": 171 + }, + { + "name": "Mortal172", + "fields": [ + { + "type": 2 + } + ], + "index": 172 + }, + { + "name": "Mortal173", + "fields": [ + { + "type": 2 + } + ], + "index": 173 + }, + { + "name": "Mortal174", + "fields": [ + { + "type": 2 + } + ], + "index": 174 + }, + { + "name": "Mortal175", + "fields": [ + { + "type": 2 + } + ], + "index": 175 + }, + { + "name": "Mortal176", + "fields": [ + { + "type": 2 + } + ], + "index": 176 + }, + { + "name": "Mortal177", + "fields": [ + { + "type": 2 + } + ], + "index": 177 + }, + { + "name": "Mortal178", + "fields": [ + { + "type": 2 + } + ], + "index": 178 + }, + { + "name": "Mortal179", + "fields": [ + { + "type": 2 + } + ], + "index": 179 + }, + { + "name": "Mortal180", + "fields": [ + { + "type": 2 + } + ], + "index": 180 + }, + { + "name": "Mortal181", + "fields": [ + { + "type": 2 + } + ], + "index": 181 + }, + { + "name": "Mortal182", + "fields": [ + { + "type": 2 + } + ], + "index": 182 + }, + { + "name": "Mortal183", + "fields": [ + { + "type": 2 + } + ], + "index": 183 + }, + { + "name": "Mortal184", + "fields": [ + { + "type": 2 + } + ], + "index": 184 + }, + { + "name": "Mortal185", + "fields": [ + { + "type": 2 + } + ], + "index": 185 + }, + { + "name": "Mortal186", + "fields": [ + { + "type": 2 + } + ], + "index": 186 + }, + { + "name": "Mortal187", + "fields": [ + { + "type": 2 + } + ], + "index": 187 + }, + { + "name": "Mortal188", + "fields": [ + { + "type": 2 + } + ], + "index": 188 + }, + { + "name": "Mortal189", + "fields": [ + { + "type": 2 + } + ], + "index": 189 + }, + { + "name": "Mortal190", + "fields": [ + { + "type": 2 + } + ], + "index": 190 + }, + { + "name": "Mortal191", + "fields": [ + { + "type": 2 + } + ], + "index": 191 + }, + { + "name": "Mortal192", + "fields": [ + { + "type": 2 + } + ], + "index": 192 + }, + { + "name": "Mortal193", + "fields": [ + { + "type": 2 + } + ], + "index": 193 + }, + { + "name": "Mortal194", + "fields": [ + { + "type": 2 + } + ], + "index": 194 + }, + { + "name": "Mortal195", + "fields": [ + { + "type": 2 + } + ], + "index": 195 + }, + { + "name": "Mortal196", + "fields": [ + { + "type": 2 + } + ], + "index": 196 + }, + { + "name": "Mortal197", + "fields": [ + { + "type": 2 + } + ], + "index": 197 + }, + { + "name": "Mortal198", + "fields": [ + { + "type": 2 + } + ], + "index": 198 + }, + { + "name": "Mortal199", + "fields": [ + { + "type": 2 + } + ], + "index": 199 + }, + { + "name": "Mortal200", + "fields": [ + { + "type": 2 + } + ], + "index": 200 + }, + { + "name": "Mortal201", + "fields": [ + { + "type": 2 + } + ], + "index": 201 + }, + { + "name": "Mortal202", + "fields": [ + { + "type": 2 + } + ], + "index": 202 + }, + { + "name": "Mortal203", + "fields": [ + { + "type": 2 + } + ], + "index": 203 + }, + { + "name": "Mortal204", + "fields": [ + { + "type": 2 + } + ], + "index": 204 + }, + { + "name": "Mortal205", + "fields": [ + { + "type": 2 + } + ], + "index": 205 + }, + { + "name": "Mortal206", + "fields": [ + { + "type": 2 + } + ], + "index": 206 + }, + { + "name": "Mortal207", + "fields": [ + { + "type": 2 + } + ], + "index": 207 + }, + { + "name": "Mortal208", + "fields": [ + { + "type": 2 + } + ], + "index": 208 + }, + { + "name": "Mortal209", + "fields": [ + { + "type": 2 + } + ], + "index": 209 + }, + { + "name": "Mortal210", + "fields": [ + { + "type": 2 + } + ], + "index": 210 + }, + { + "name": "Mortal211", + "fields": [ + { + "type": 2 + } + ], + "index": 211 + }, + { + "name": "Mortal212", + "fields": [ + { + "type": 2 + } + ], + "index": 212 + }, + { + "name": "Mortal213", + "fields": [ + { + "type": 2 + } + ], + "index": 213 + }, + { + "name": "Mortal214", + "fields": [ + { + "type": 2 + } + ], + "index": 214 + }, + { + "name": "Mortal215", + "fields": [ + { + "type": 2 + } + ], + "index": 215 + }, + { + "name": "Mortal216", + "fields": [ + { + "type": 2 + } + ], + "index": 216 + }, + { + "name": "Mortal217", + "fields": [ + { + "type": 2 + } + ], + "index": 217 + }, + { + "name": "Mortal218", + "fields": [ + { + "type": 2 + } + ], + "index": 218 + }, + { + "name": "Mortal219", + "fields": [ + { + "type": 2 + } + ], + "index": 219 + }, + { + "name": "Mortal220", + "fields": [ + { + "type": 2 + } + ], + "index": 220 + }, + { + "name": "Mortal221", + "fields": [ + { + "type": 2 + } + ], + "index": 221 + }, + { + "name": "Mortal222", + "fields": [ + { + "type": 2 + } + ], + "index": 222 + }, + { + "name": "Mortal223", + "fields": [ + { + "type": 2 + } + ], + "index": 223 + }, + { + "name": "Mortal224", + "fields": [ + { + "type": 2 + } + ], + "index": 224 + }, + { + "name": "Mortal225", + "fields": [ + { + "type": 2 + } + ], + "index": 225 + }, + { + "name": "Mortal226", + "fields": [ + { + "type": 2 + } + ], + "index": 226 + }, + { + "name": "Mortal227", + "fields": [ + { + "type": 2 + } + ], + "index": 227 + }, + { + "name": "Mortal228", + "fields": [ + { + "type": 2 + } + ], + "index": 228 + }, + { + "name": "Mortal229", + "fields": [ + { + "type": 2 + } + ], + "index": 229 + }, + { + "name": "Mortal230", + "fields": [ + { + "type": 2 + } + ], + "index": 230 + }, + { + "name": "Mortal231", + "fields": [ + { + "type": 2 + } + ], + "index": 231 + }, + { + "name": "Mortal232", + "fields": [ + { + "type": 2 + } + ], + "index": 232 + }, + { + "name": "Mortal233", + "fields": [ + { + "type": 2 + } + ], + "index": 233 + }, + { + "name": "Mortal234", + "fields": [ + { + "type": 2 + } + ], + "index": 234 + }, + { + "name": "Mortal235", + "fields": [ + { + "type": 2 + } + ], + "index": 235 + }, + { + "name": "Mortal236", + "fields": [ + { + "type": 2 + } + ], + "index": 236 + }, + { + "name": "Mortal237", + "fields": [ + { + "type": 2 + } + ], + "index": 237 + }, + { + "name": "Mortal238", + "fields": [ + { + "type": 2 + } + ], + "index": 238 + }, + { + "name": "Mortal239", + "fields": [ + { + "type": 2 + } + ], + "index": 239 + }, + { + "name": "Mortal240", + "fields": [ + { + "type": 2 + } + ], + "index": 240 + }, + { + "name": "Mortal241", + "fields": [ + { + "type": 2 + } + ], + "index": 241 + }, + { + "name": "Mortal242", + "fields": [ + { + "type": 2 + } + ], + "index": 242 + }, + { + "name": "Mortal243", + "fields": [ + { + "type": 2 + } + ], + "index": 243 + }, + { + "name": "Mortal244", + "fields": [ + { + "type": 2 + } + ], + "index": 244 + }, + { + "name": "Mortal245", + "fields": [ + { + "type": 2 + } + ], + "index": 245 + }, + { + "name": "Mortal246", + "fields": [ + { + "type": 2 + } + ], + "index": 246 + }, + { + "name": "Mortal247", + "fields": [ + { + "type": 2 + } + ], + "index": 247 + }, + { + "name": "Mortal248", + "fields": [ + { + "type": 2 + } + ], + "index": 248 + }, + { + "name": "Mortal249", + "fields": [ + { + "type": 2 + } + ], + "index": 249 + }, + { + "name": "Mortal250", + "fields": [ + { + "type": 2 + } + ], + "index": 250 + }, + { + "name": "Mortal251", + "fields": [ + { + "type": 2 + } + ], + "index": 251 + }, + { + "name": "Mortal252", + "fields": [ + { + "type": 2 + } + ], + "index": 252 + }, + { + "name": "Mortal253", + "fields": [ + { + "type": 2 + } + ], + "index": 253 + }, + { + "name": "Mortal254", + "fields": [ + { + "type": 2 + } + ], + "index": 254 + }, + { + "name": "Mortal255", + "fields": [ + { + "type": 2 + } + ], + "index": 255 + } + ] + } + } + } + }, + { + "id": 589, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 65, + "typeName": "T::Nonce" + } + ] + } + } + } + }, + { + "id": 590, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 591, + "type": { + "path": [ + "pallet_transaction_payment", + "ChargeTransactionPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 68, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 592, + "type": { + "path": [ + "laos_runtime", + "Runtime" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 593, + "type": { + "path": [ + "sp_consensus_slots", + "SlotDuration" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 594, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 595 + }, + { + "name": "Extrinsic", + "type": 596 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 595, + "typeName": "Header" + }, + { + "name": "extrinsics", + "type": 598, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 595, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output" + }, + { + "name": "number", + "type": 65, + "typeName": "Number" + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output" + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output" + }, + { + "name": "digest", + "type": 16, + "typeName": "Digest" + } + ] + } + } + } + }, + { + "id": 596, + "type": { + "path": [ + "fp_self_contained", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 0 + }, + { + "name": "Call", + "type": 240 + }, + { + "name": "Signature", + "type": 294 + }, + { + "name": "Extra", + "type": 582 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 597, + "typeName": "sp_runtime::generic::UncheckedExtrinsic" + } + ] + } + } + } + }, + { + "id": 597, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 0 + }, + { + "name": "Call", + "type": 240 + }, + { + "name": "Signature", + "type": 294 + }, + { + "name": "Extra", + "type": 582 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 15 + } + ] + } + } + } + }, + { + "id": 598, + "type": { + "def": { + "sequence": { + "type": 596 + } + } + } + }, + { + "id": 599, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "index": 0 + }, + { + "name": "OnlyInherents", + "index": 1 + } + ] + } + } + } + }, + { + "id": 600, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 601, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 600 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 600 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 602, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 35 + }, + { + "name": "E", + "type": 603 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 35 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 603 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 603, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "type": 604, + "typeName": "InvalidTransaction" + } + ], + "index": 0 + }, + { + "name": "Unknown", + "fields": [ + { + "type": 605, + "typeName": "UnknownTransaction" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 604, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "index": 0 + }, + { + "name": "Payment", + "index": 1 + }, + { + "name": "Future", + "index": 2 + }, + { + "name": "Stale", + "index": 3 + }, + { + "name": "BadProof", + "index": 4 + }, + { + "name": "AncientBirthBlock", + "index": 5 + }, + { + "name": "ExhaustsResources", + "index": 6 + }, + { + "name": "Custom", + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 7 + }, + { + "name": "BadMandatory", + "index": 8 + }, + { + "name": "MandatoryValidation", + "index": 9 + }, + { + "name": "BadSigner", + "index": 10 + } + ] + } + } + } + }, + { + "id": 605, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "index": 0 + }, + { + "name": "NoUnsignedValidator", + "index": 1 + }, + { + "name": "Custom", + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 606, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 607, + "typeName": "BTreeMap>" + } + ] + } + } + } + }, + { + "id": 607, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 87 + }, + { + "name": "V", + "type": 15 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 608 + } + ] + } + } + } + }, + { + "id": 608, + "type": { + "def": { + "sequence": { + "type": 609 + } + } + } + }, + { + "id": 609, + "type": { + "def": { + "tuple": [ + 87, + 15 + ] + } + } + }, + { + "id": 610, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool" + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool" + }, + { + "name": "errors", + "type": 606, + "typeName": "InherentData" + } + ] + } + } + } + }, + { + "id": 611, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "index": 0 + }, + { + "name": "Local", + "index": 1 + }, + { + "name": "External", + "index": 2 + } + ] + } + } + } + }, + { + "id": 612, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 613 + }, + { + "name": "E", + "type": 603 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 613 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 603 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 613, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority" + }, + { + "name": "requires", + "type": 182, + "typeName": "Vec" + }, + { + "name": "provides", + "type": 182, + "typeName": "Vec" + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity" + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 614, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 615 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 615 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 615, + "type": { + "def": { + "sequence": { + "type": 616 + } + } + } + }, + { + "id": 616, + "type": { + "def": { + "tuple": [ + 15, + 435 + ] + } + } + }, + { + "id": 617, + "type": { + "path": [ + "evm", + "backend", + "Basic" + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 166, + "typeName": "U256" + }, + { + "name": "nonce", + "type": 166, + "typeName": "U256" + } + ] + } + } + } + }, + { + "id": 618, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 374 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 374 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 619, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 620 + }, + { + "name": "E", + "type": 27 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 620 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 27 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 620, + "type": { + "path": [ + "fp_evm", + "ExecutionInfoV2" + ], + "params": [ + { + "name": "T", + "type": 15 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "exit_reason", + "type": 154, + "typeName": "ExitReason" + }, + { + "name": "value", + "type": 15, + "typeName": "T" + }, + { + "name": "used_gas", + "type": 621, + "typeName": "UsedGas" + }, + { + "name": "weight_info", + "type": 622, + "typeName": "Option" + }, + { + "name": "logs", + "type": 561, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 621, + "type": { + "path": [ + "fp_evm", + "UsedGas" + ], + "def": { + "composite": { + "fields": [ + { + "name": "standard", + "type": 166, + "typeName": "U256" + }, + { + "name": "effective", + "type": 166, + "typeName": "U256" + } + ] + } + } + } + }, + { + "id": 622, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 623 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 623 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 623, + "type": { + "path": [ + "fp_evm", + "WeightInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time_limit", + "type": 624, + "typeName": "Option" + }, + { + "name": "proof_size_limit", + "type": 624, + "typeName": "Option" + }, + { + "name": "ref_time_usage", + "type": 624, + "typeName": "Option" + }, + { + "name": "proof_size_usage", + "type": 624, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 624, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 12 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 625, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 626 + }, + { + "name": "E", + "type": 27 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 626 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 27 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 626, + "type": { + "path": [ + "fp_evm", + "ExecutionInfoV2" + ], + "params": [ + { + "name": "T", + "type": 153 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "exit_reason", + "type": 154, + "typeName": "ExitReason" + }, + { + "name": "value", + "type": 153, + "typeName": "T" + }, + { + "name": "used_gas", + "type": 621, + "typeName": "UsedGas" + }, + { + "name": "weight_info", + "type": 622, + "typeName": "Option" + }, + { + "name": "logs", + "type": 561, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 627, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 566 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 566 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 628, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 571 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 571 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 629, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 572 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 572 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 630, + "type": { + "def": { + "tuple": [ + 627, + 628, + 629 + ] + } + } + }, + { + "id": 631, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 168 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 168 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 632, + "type": { + "def": { + "tuple": [ + 627, + 629 + ] + } + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight" + }, + { + "name": "class", + "type": 25, + "typeName": "DispatchClass" + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 634, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 635, + "typeName": "Option>" + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 635, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 636 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 636 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 636, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 637, + "type": { + "path": [ + "cumulus_primitives_core", + "CollationInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 182, + "typeName": "Vec" + }, + { + "name": "horizontal_messages", + "type": 224, + "typeName": "Vec" + }, + { + "name": "new_validation_code", + "type": 638, + "typeName": "Option" + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32" + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "relay_chain::BlockNumber" + }, + { + "name": "head_data", + "type": 208, + "typeName": "HeadData" + } + ] + } + } + } + }, + { + "id": 638, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 639 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 639 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 639, + "type": { + "path": [ + "polkadot_parachain_primitives", + "primitives", + "ValidationCode" + ], + "def": { + "composite": { + "fields": [ + { + "type": 15, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 640, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 159 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 36 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 159 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 641, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 159 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 159 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 642, + "type": { + "def": { + "sequence": { + "type": 159 + } + } + } + }, + { + "id": 643, + "type": { + "path": [ + "laos_runtime", + "RuntimeError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 194, + "typeName": "frame_system::Error" + } + ], + "index": 0 + }, + { + "name": "ParachainSystem", + "fields": [ + { + "type": 236, + "typeName": "cumulus_pallet_parachain_system::Error" + } + ], + "index": 1 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 378, + "typeName": "pallet_sudo::Error" + } + ], + "index": 4 + }, + { + "name": "Utility", + "fields": [ + { + "type": 379, + "typeName": "pallet_utility::Error" + } + ], + "index": 5 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 383, + "typeName": "pallet_multisig::Error" + } + ], + "index": 6 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 392, + "typeName": "pallet_proxy::Error" + } + ], + "index": 7 + }, + { + "name": "Identity", + "fields": [ + { + "type": 408, + "typeName": "pallet_identity::Error" + } + ], + "index": 8 + }, + { + "name": "Balances", + "fields": [ + { + "type": 425, + "typeName": "pallet_balances::Error" + } + ], + "index": 10 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 430, + "typeName": "pallet_vesting::Error" + } + ], + "index": 12 + }, + { + "name": "Session", + "fields": [ + { + "type": 436, + "typeName": "pallet_session::Error" + } + ], + "index": 21 + }, + { + "name": "ParachainStaking", + "fields": [ + { + "type": 469, + "typeName": "pallet_parachain_staking::Error" + } + ], + "index": 24 + }, + { + "name": "XcmpQueue", + "fields": [ + { + "type": 478, + "typeName": "cumulus_pallet_xcmp_queue::Error" + } + ], + "index": 30 + }, + { + "name": "PolkadotXcm", + "fields": [ + { + "type": 499, + "typeName": "pallet_xcm::Error" + } + ], + "index": 31 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 506, + "typeName": "pallet_message_queue::Error" + } + ], + "index": 34 + }, + { + "name": "Council", + "fields": [ + { + "type": 509, + "typeName": "pallet_collective::Error" + } + ], + "index": 40 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 516, + "typeName": "pallet_treasury::Error" + } + ], + "index": 41 + }, + { + "name": "Elections", + "fields": [ + { + "type": 520, + "typeName": "pallet_elections_phragmen::Error" + } + ], + "index": 42 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 529, + "typeName": "pallet_preimage::Error" + } + ], + "index": 43 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 530, + "typeName": "pallet_collective::Error" + } + ], + "index": 44 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 536, + "typeName": "pallet_scheduler::Error" + } + ], + "index": 45 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 554, + "typeName": "pallet_democracy::Error" + } + ], + "index": 46 + }, + { + "name": "TechnicalCommitteeMembership", + "fields": [ + { + "type": 556, + "typeName": "pallet_membership::Error" + } + ], + "index": 47 + }, + { + "name": "Ethereum", + "fields": [ + { + "type": 573, + "typeName": "pallet_ethereum::Error" + } + ], + "index": 50 + }, + { + "name": "EVM", + "fields": [ + { + "type": 576, + "typeName": "pallet_evm::Error" + } + ], + "index": 51 + }, + { + "name": "LaosEvolution", + "fields": [ + { + "type": 578, + "typeName": "pallet_laos_evolution::Error" + } + ], + "index": 100 + }, + { + "name": "AssetMetadataExtender", + "fields": [ + { + "type": 581, + "typeName": "pallet_asset_metadata_extender::Error" + } + ], + "index": 101 + } + ] + } + } + } + } + ] + }, + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "entries": [ + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "ty": { + "Plain": 9 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 15 + } + }, + "default": [ + 0 + ], + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "ty": { + "Plain": 13 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "ty": { + "Plain": 16 + }, + "default": [ + 0 + ], + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "ty": { + "Plain": 20 + }, + "default": [ + 0 + ], + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 176 + } + }, + "default": [ + 0 + ], + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "ty": { + "Plain": 177 + }, + "default": [ + 0 + ], + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "ty": { + "Plain": 175 + }, + "default": [ + 0 + ], + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "ty": { + "Plain": 178 + }, + "default": [ + 0 + ], + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + } + ] + }, + "calls": { + "ty": 179 + }, + "event": { + "ty": 23 + }, + "constants": [ + { + "name": "BlockWeights", + "ty": 183, + "value": [ + 98, + 77, + 24, + 108, + 0, + 7, + 0, + 136, + 82, + 106, + 116, + 2, + 0, + 64, + 1, + 66, + 71, + 135, + 25, + 0, + 1, + 7, + 48, + 160, + 32, + 165, + 75, + 2, + 0, + 208, + 0, + 1, + 7, + 0, + 230, + 189, + 79, + 87, + 2, + 0, + 240, + 0, + 1, + 0, + 0, + 66, + 71, + 135, + 25, + 0, + 1, + 7, + 48, + 66, + 181, + 191, + 104, + 2, + 0, + 32, + 1, + 1, + 7, + 0, + 136, + 82, + 106, + 116, + 2, + 0, + 64, + 1, + 1, + 7, + 0, + 162, + 148, + 26, + 29, + 2, + 0, + 80, + 0, + 66, + 71, + 135, + 25, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "ty": 187, + "value": [ + 0, + 0, + 60, + 0, + 0, + 0, + 80, + 0, + 0, + 0, + 80, + 0 + ], + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "ty": 189, + "value": [ + 64, + 120, + 125, + 1, + 0, + 0, + 0, + 0, + 0, + 225, + 245, + 5, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "ty": 190, + "value": [ + 16, + 108, + 97, + 111, + 115, + 16, + 108, + 97, + 111, + 115, + 1, + 0, + 0, + 0, + 244, + 8, + 0, + 0, + 0, + 0, + 0, + 0, + 56, + 221, + 113, + 141, + 92, + 197, + 50, + 98, + 212, + 1, + 0, + 0, + 0, + 223, + 106, + 203, + 104, + 153, + 7, + 96, + 155, + 5, + 0, + 0, + 0, + 55, + 227, + 151, + 252, + 124, + 145, + 245, + 228, + 2, + 0, + 0, + 0, + 64, + 254, + 58, + 212, + 1, + 248, + 149, + 154, + 6, + 0, + 0, + 0, + 210, + 188, + 152, + 151, + 238, + 208, + 143, + 21, + 3, + 0, + 0, + 0, + 247, + 139, + 39, + 139, + 229, + 63, + 69, + 76, + 2, + 0, + 0, + 0, + 171, + 60, + 5, + 114, + 41, + 31, + 235, + 139, + 1, + 0, + 0, + 0, + 188, + 157, + 137, + 144, + 79, + 91, + 146, + 63, + 1, + 0, + 0, + 0, + 88, + 34, + 17, + 246, + 91, + 177, + 75, + 137, + 5, + 0, + 0, + 0, + 230, + 91, + 0, + 228, + 108, + 237, + 208, + 170, + 2, + 0, + 0, + 0, + 55, + 200, + 187, + 19, + 80, + 169, + 162, + 168, + 4, + 0, + 0, + 0, + 243, + 255, + 20, + 213, + 171, + 82, + 112, + 89, + 3, + 0, + 0, + 0, + 234, + 147, + 227, + 241, + 111, + 61, + 105, + 98, + 2, + 0, + 0, + 0, + 251, + 197, + 119, + 185, + 215, + 71, + 239, + 214, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 + ], + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "ty": 43, + "value": [ + 42, + 0 + ], + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "error": { + "ty": 194 + }, + "index": 0, + "docs": [] + }, + { + "name": "ParachainSystem", + "storage": { + "prefix": "ParachainSystem", + "entries": [ + { + "name": "UnincludedSegment", + "modifier": "Default", + "ty": { + "Plain": 195 + }, + "default": [ + 0 + ], + "docs": [ + " Latest included block descendants the runtime accepted. In other words, these are", + " ancestors of the currently executing block which have not been included in the observed", + " relay-chain state.", + "", + " The segment length is limited by the capacity returned from the [`ConsensusHook`] configured", + " in the pallet." + ] + }, + { + "name": "AggregatedUnincludedSegment", + "modifier": "Optional", + "ty": { + "Plain": 205 + }, + "default": [ + 0 + ], + "docs": [ + " Storage field that keeps track of bandwidth used by the unincluded segment along with the", + " latest HRMP watermark. Used for limiting the acceptance of new blocks with", + " respect to relay chain constraints." + ] + }, + { + "name": "PendingValidationCode", + "modifier": "Default", + "ty": { + "Plain": 15 + }, + "default": [ + 0 + ], + "docs": [ + " In case of a scheduled upgrade, this storage field contains the validation code to be", + " applied.", + "", + " As soon as the relay chain gives us the go-ahead signal, we will overwrite the", + " [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process", + " with the new validation code. This concludes the upgrade process." + ] + }, + { + "name": "NewValidationCode", + "modifier": "Optional", + "ty": { + "Plain": 15 + }, + "default": [ + 0 + ], + "docs": [ + " Validation code that is set by the parachain and is to be communicated to collator and", + " consequently the relay-chain.", + "", + " This will be cleared in `on_initialize` of each new block if no other pallet already set", + " the value." + ] + }, + { + "name": "ValidationData", + "modifier": "Optional", + "ty": { + "Plain": 207 + }, + "default": [ + 0 + ], + "docs": [ + " The [`PersistedValidationData`] set for this block.", + " This value is expected to be set only once per block and it's never stored", + " in the trie." + ] + }, + { + "name": "DidSetValidationCode", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Were the validation data set to notify the relay chain?" + ] + }, + { + "name": "LastRelayChainBlockNumber", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The relay chain block number associated with the last parachain block.", + "", + " This is updated in `on_finalize`." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Default", + "ty": { + "Plain": 209 + }, + "default": [ + 0 + ], + "docs": [ + " An option which indicates if the relay-chain restricts signalling a validation code upgrade.", + " In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced", + " candidate will be invalid.", + "", + " This storage item is a mirror of the corresponding value for the current parachain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "UpgradeGoAhead", + "modifier": "Default", + "ty": { + "Plain": 203 + }, + "default": [ + 0 + ], + "docs": [ + " Optional upgrade go-ahead signal from the relay-chain.", + "", + " This storage item is a mirror of the corresponding value for the current parachain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "RelayStateProof", + "modifier": "Optional", + "ty": { + "Plain": 211 + }, + "default": [ + 0 + ], + "docs": [ + " The state proof for the last relay parent block.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "RelevantMessagingState", + "modifier": "Optional", + "ty": { + "Plain": 213 + }, + "default": [ + 0 + ], + "docs": [ + " The snapshot of some state related to messaging relevant to the current parachain as per", + " the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "HostConfiguration", + "modifier": "Optional", + "ty": { + "Plain": 218 + }, + "default": [ + 0 + ], + "docs": [ + " The parachain host configuration that was obtained from the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "LastDmqMqcHead", + "modifier": "Default", + "ty": { + "Plain": 220 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The last downward message queue chain head we have observed.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "LastHrmpMqcHeads", + "modifier": "Default", + "ty": { + "Plain": 221 + }, + "default": [ + 0 + ], + "docs": [ + " The message queue chain heads we have observed per each channel incoming channel.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "ProcessedDownwardMessages", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of downward messages processed in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "HrmpWatermark", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " HRMP watermark that was set in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "HrmpOutboundMessages", + "modifier": "Default", + "ty": { + "Plain": 224 + }, + "default": [ + 0 + ], + "docs": [ + " HRMP messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "UpwardMessages", + "modifier": "Default", + "ty": { + "Plain": 182 + }, + "default": [ + 0 + ], + "docs": [ + " Upward messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "PendingUpwardMessages", + "modifier": "Default", + "ty": { + "Plain": 182 + }, + "default": [ + 0 + ], + "docs": [ + " Upward messages that are still pending and not yet send to the relay chain." + ] + }, + { + "name": "UpwardDeliveryFeeFactor", + "modifier": "Default", + "ty": { + "Plain": 226 + }, + "default": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The factor to multiply the base delivery fee by for UMP." + ] + }, + { + "name": "AnnouncedHrmpMessagesPerCandidate", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of HRMP messages we observed in `on_initialize` and thus used that number for", + " announcing the weight of `on_initialize` and `on_finalize`." + ] + }, + { + "name": "ReservedXcmpWeightOverride", + "modifier": "Optional", + "ty": { + "Plain": 10 + }, + "default": [ + 0 + ], + "docs": [ + " The weight we reserve at the beginning of the block for processing XCMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "ReservedDmpWeightOverride", + "modifier": "Optional", + "ty": { + "Plain": 10 + }, + "default": [ + 0 + ], + "docs": [ + " The weight we reserve at the beginning of the block for processing DMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "CustomValidationHeadData", + "modifier": "Optional", + "ty": { + "Plain": 15 + }, + "default": [ + 0 + ], + "docs": [ + " A custom head data that should be returned as result of `validate_block`.", + "", + " See `Pallet::set_custom_validation_head_data` for more information." + ] + } + ] + }, + "calls": { + "ty": 227 + }, + "event": { + "ty": 32 + }, + "constants": [ + { + "name": "SelfParaId", + "ty": 135, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Returns the parachain ID we are running with." + ] + } + ], + "error": { + "ty": 236 + }, + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "entries": [ + { + "name": "Now", + "modifier": "Default", + "ty": { + "Plain": 12 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "ty": 237 + }, + "event": null, + "constants": [ + { + "name": "MinimumPeriod", + "ty": 12, + "value": [ + 112, + 23, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "error": null, + "index": 2, + "docs": [] + }, + { + "name": "ParachainInfo", + "storage": { + "prefix": "ParachainInfo", + "entries": [ + { + "name": "ParachainId", + "modifier": "Default", + "ty": { + "Plain": 135 + }, + "default": [ + 100, + 0, + 0, + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 238 + }, + "event": null, + "constants": [], + "error": null, + "index": 3, + "docs": [] + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "entries": [ + { + "name": "Key", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": { + "ty": 239 + }, + "event": { + "ty": 34 + }, + "constants": [], + "error": { + "ty": 378 + }, + "index": 4, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "ty": 241 + }, + "event": { + "ty": 38 + }, + "constants": [ + { + "name": "batched_calls_limit", + "ty": 4, + "value": [ + 170, + 42, + 0, + 0 + ], + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "error": { + "ty": 379 + }, + "index": 5, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "entries": [ + { + "name": "Multisigs", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 380, + "value": 381 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "ty": 251 + }, + "event": { + "ty": 39 + }, + "constants": [ + { + "name": "DepositBase", + "ty": 6, + "value": [ + 0, + 0, + 32, + 252, + 12, + 168, + 140, + 146, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "ty": 6, + "value": [ + 0, + 0, + 32, + 248, + 77, + 222, + 112, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "error": { + "ty": 383 + }, + "index": 6, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "entries": [ + { + "name": "Proxies", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 384 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 388 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "ty": 254 + }, + "event": { + "ty": 41 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "ty": 6, + "value": [ + 0, + 0, + 240, + 7, + 152, + 90, + 227, + 139, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "ty": 6, + "value": [ + 0, + 0, + 213, + 42, + 227, + 17, + 234, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "ty": 6, + "value": [ + 0, + 0, + 240, + 7, + 152, + 90, + 227, + 139, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "ty": 6, + "value": [ + 0, + 0, + 56, + 114, + 8, + 133, + 197, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "error": { + "ty": 392 + }, + "index": 7, + "docs": [] + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "entries": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 393 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information that is pertinent to identify the entity behind an account. First item is the", + " registration, second is the account's primary username.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 291 + } + }, + "default": [ + 0 + ], + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 399 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "ty": { + "Plain": 401 + }, + "default": [ + 0 + ], + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + }, + { + "name": "UsernameAuthorities", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 405 + } + }, + "default": [ + 0 + ], + "docs": [ + " A map of the accounts who are authorized to grant usernames." + ] + }, + { + "name": "AccountOfUsername", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 45, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Reverse lookup from `username` to the `AccountId` that has registered it. The value should", + " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity.", + "", + " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one", + " primary username." + ] + }, + { + "name": "PendingUsernames", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 45, + "value": 407 + } + }, + "default": [ + 0 + ], + "docs": [ + " Usernames that an authority has granted, but that the account controller has not confirmed", + " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature", + " because they are a pure proxy, multisig, etc. In order to confirm it, they should call", + " [`Call::accept_username`].", + "", + " First tuple item is the account and second is the acceptance deadline." + ] + } + ] + }, + "calls": { + "ty": 256 + }, + "event": { + "ty": 44 + }, + "constants": [ + { + "name": "BasicDeposit", + "ty": 6, + "value": [ + 0, + 0, + 106, + 42, + 89, + 35, + 149, + 174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "ByteDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per encoded byte for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "ty": 6, + "value": [ + 0, + 0, + 245, + 34, + 49, + 240, + 90, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxRegistrars", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + }, + { + "name": "PendingUsernameExpiration", + "ty": 4, + "value": [ + 224, + 196, + 0, + 0 + ], + "docs": [ + " The number of blocks within which a username grant must be accepted." + ] + }, + { + "name": "MaxSuffixLength", + "ty": 4, + "value": [ + 7, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a suffix." + ] + }, + { + "name": "MaxUsernameLength", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a username, including its suffix and any system-added delimiters." + ] + } + ], + "error": { + "ty": 408 + }, + "index": 8, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "entries": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 409 + } + }, + "default": [ + 0 + ], + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 413 + } + }, + "default": [ + 0 + ], + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 416 + } + }, + "default": [ + 0 + ], + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 421 + } + }, + "default": [ + 0 + ], + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "ty": 296 + }, + "event": { + "ty": 46 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "ty": 6, + "value": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "error": { + "ty": 425 + }, + "index": 10, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "entries": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "ty": { + "Plain": 226 + }, + "default": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 426 + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": null, + "event": { + "ty": 48 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "ty": 2, + "value": [ + 5 + ], + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "error": null, + "index": 11, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "entries": [ + { + "name": "Vesting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 427 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 429 + }, + "default": [ + 0 + ], + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "ty": 298 + }, + "event": { + "ty": 49 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "ty": 6, + "value": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [] + } + ], + "error": { + "ty": 430 + }, + "index": 12, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "entries": [ + { + "name": "Author", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 20, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "entries": [ + { + "name": "Validators", + "modifier": "Default", + "ty": { + "Plain": 252 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "ty": { + "Plain": 431 + }, + "default": [ + 0 + ], + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "ty": { + "Plain": 433 + }, + "default": [ + 0 + ], + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 301 + } + }, + "default": [ + 0 + ], + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 434, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "ty": 300 + }, + "event": { + "ty": 50 + }, + "constants": [], + "error": { + "ty": 436 + }, + "index": 21, + "docs": [] + }, + { + "name": "Aura", + "storage": { + "prefix": "Aura", + "entries": [ + { + "name": "Authorities", + "modifier": "Default", + "ty": { + "Plain": 437 + }, + "default": [ + 0 + ], + "docs": [ + " The current authority set." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "ty": { + "Plain": 439 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current slot of this block.", + "", + " This will be set in `on_initialize`." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [ + { + "name": "SlotDuration", + "ty": 12, + "value": [ + 224, + 46, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The slot duration Aura should run with, expressed in milliseconds.", + " The effective value of this type should not change while the chain is running.", + "", + " For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const." + ] + } + ], + "error": null, + "index": 22, + "docs": [] + }, + { + "name": "AuraExt", + "storage": { + "prefix": "AuraExt", + "entries": [ + { + "name": "Authorities", + "modifier": "Default", + "ty": { + "Plain": 437 + }, + "default": [ + 0 + ], + "docs": [ + " Serves as cache for the authorities.", + "", + " The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session,", + " but we require the old authorities to verify the seal when validating a PoV. This will", + " always be updated to the latest AuRa authorities in `on_finalize`." + ] + }, + { + "name": "SlotInfo", + "modifier": "Optional", + "ty": { + "Plain": 440 + }, + "default": [ + 0 + ], + "docs": [ + " Current slot paired with a number of authored blocks.", + "", + " Updated on each block initialization." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 23, + "docs": [] + }, + { + "name": "ParachainStaking", + "storage": { + "prefix": "ParachainStaking", + "entries": [ + { + "name": "CollatorCommission", + "modifier": "Default", + "ty": { + "Plain": 56 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Commission percent taken off of rewards for all collators" + ] + }, + { + "name": "TotalSelected", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total candidates selected every round" + ] + }, + { + "name": "ParachainBondInfo", + "modifier": "Default", + "ty": { + "Plain": 441 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Parachain bond config info { account, percent_of_inflation }" + ] + }, + { + "name": "Round", + "modifier": "Default", + "ty": { + "Plain": 442 + }, + "default": [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20, + 0, + 0, + 0 + ], + "docs": [ + " Current round index and next round scheduled transition" + ] + }, + { + "name": "DelegatorState", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 443 + } + }, + "default": [ + 0 + ], + "docs": [ + " Get delegator state associated with an account if account is delegating else None" + ] + }, + { + "name": "CandidateInfo", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 448 + } + }, + "default": [ + 0 + ], + "docs": [ + " Get collator candidate info associated with an account if account is candidate else None" + ] + }, + { + "name": "DelegationScheduledRequests", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 453 + } + }, + "default": [ + 0 + ], + "docs": [ + " Stores outstanding delegation requests per collator." + ] + }, + { + "name": "AutoCompoundingDelegations", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 456 + } + }, + "default": [ + 0 + ], + "docs": [ + " Stores auto-compounding configuration per collator." + ] + }, + { + "name": "TopDelegations", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 459 + } + }, + "default": [ + 0 + ], + "docs": [ + " Top delegations for collator candidate" + ] + }, + { + "name": "BottomDelegations", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 459 + } + }, + "default": [ + 0 + ], + "docs": [ + " Bottom delegations for collator candidate" + ] + }, + { + "name": "SelectedCandidates", + "modifier": "Default", + "ty": { + "Plain": 460 + }, + "default": [ + 0 + ], + "docs": [ + " The collator candidates selected for the current round" + ] + }, + { + "name": "Total", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Total capital locked by this staking pallet" + ] + }, + { + "name": "CandidatePool", + "modifier": "Default", + "ty": { + "Plain": 461 + }, + "default": [ + 0 + ], + "docs": [ + " The pool of collator candidates, each with their total backing stake" + ] + }, + { + "name": "AtStake", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 463, + "value": 464 + } + }, + "default": [ + 0 + ], + "docs": [ + " Snapshot of collator delegation stake at the start of the round" + ] + }, + { + "name": "DelayedPayouts", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 467 + } + }, + "default": [ + 0 + ], + "docs": [ + " Delayed payouts" + ] + }, + { + "name": "Staked", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Total counted stake for selected candidates in the round" + ] + }, + { + "name": "InflationConfig", + "modifier": "Default", + "ty": { + "Plain": 468 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Inflation configuration" + ] + }, + { + "name": "Points", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Total points awarded to collators for block production in the round" + ] + }, + { + "name": "AwardedPts", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 463, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Points for each collator per round" + ] + }, + { + "name": "EnableMarkingOffline", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Killswitch to enable/disable marking offline feature." + ] + }, + { + "name": "RewardsAccount", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " Source of rewards for block producers" + ] + } + ] + }, + "calls": { + "ty": 303 + }, + "event": { + "ty": 51 + }, + "constants": [ + { + "name": "MinBlocksPerRound", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " Minimum number of blocks per round" + ] + }, + { + "name": "MaxOfflineRounds", + "ty": 4, + "value": [ + 1, + 0, + 0, + 0 + ], + "docs": [ + " If a collator doesn't produce any block on this number of rounds, it is notified as", + " inactive. This value must be less than or equal to RewardPaymentDelay." + ] + }, + { + "name": "LeaveCandidatesDelay", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds that candidates remain bonded before exit request is executable" + ] + }, + { + "name": "CandidateBondLessDelay", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds candidate requests to decrease self-bond must wait to be executable" + ] + }, + { + "name": "LeaveDelegatorsDelay", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds that delegators remain bonded before exit request is executable" + ] + }, + { + "name": "RevokeDelegationDelay", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds that delegations remain bonded before revocation request is executable" + ] + }, + { + "name": "DelegationBondLessDelay", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds that delegation less requests must wait before executable" + ] + }, + { + "name": "RewardPaymentDelay", + "ty": 4, + "value": [ + 2, + 0, + 0, + 0 + ], + "docs": [ + " Number of rounds after which block authors are rewarded" + ] + }, + { + "name": "MinSelectedCandidates", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " Minimum number of selected candidates every round" + ] + }, + { + "name": "MaxTopDelegationsPerCandidate", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Maximum top delegations counted per candidate" + ] + }, + { + "name": "MaxBottomDelegationsPerCandidate", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " Maximum bottom delegations (not counted) per candidate" + ] + }, + { + "name": "MaxDelegationsPerDelegator", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum delegations per delegator" + ] + }, + { + "name": "MinCandidateStk", + "ty": 6, + "value": [ + 0, + 0, + 128, + 100, + 117, + 147, + 193, + 51, + 60, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum stake required for any account to be a collator candidate" + ] + }, + { + "name": "MinDelegation", + "ty": 6, + "value": [ + 0, + 0, + 80, + 239, + 226, + 214, + 228, + 26, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum stake for any registered on-chain account to delegate" + ] + }, + { + "name": "MaxCandidates", + "ty": 4, + "value": [ + 200, + 0, + 0, + 0 + ], + "docs": [ + " Maximum candidates" + ] + } + ], + "error": { + "ty": 469 + }, + "index": 24, + "docs": [] + }, + { + "name": "XcmpQueue", + "storage": { + "prefix": "XcmpQueue", + "entries": [ + { + "name": "InboundXcmpSuspended", + "modifier": "Default", + "ty": { + "Plain": 470 + }, + "default": [ + 0 + ], + "docs": [ + " The suspended inbound XCMP channels. All others are not suspended.", + "", + " This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block", + " to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached", + " within the block and therefore only included once in the proof size.", + "", + " NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof", + " will be smaller." + ] + }, + { + "name": "OutboundXcmpStatus", + "modifier": "Default", + "ty": { + "Plain": 473 + }, + "default": [ + 0 + ], + "docs": [ + " The non-empty XCMP channels in order of becoming non-empty, and the index of the first", + " and last outbound message. If the two indices are equal, then it indicates an empty", + " queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater", + " than 65535 items. Queue indices for normal messages begin at one; zero is reserved in", + " case of the need to send a high-priority signal message this block.", + " The bool is true if there is a signal message waiting to be sent." + ] + }, + { + "name": "OutboundXcmpMessages", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 476, + "value": 15 + } + }, + "default": [ + 0 + ], + "docs": [ + " The messages outbound in a given XCMP channel." + ] + }, + { + "name": "SignalMessages", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 135, + "value": 15 + } + }, + "default": [ + 0 + ], + "docs": [ + " Any signal messages waiting to be sent." + ] + }, + { + "name": "QueueConfig", + "modifier": "Default", + "ty": { + "Plain": 477 + }, + "default": [ + 32, + 0, + 0, + 0, + 48, + 0, + 0, + 0, + 8, + 0, + 0, + 0 + ], + "docs": [ + " The configuration which controls the dynamics of the outbound queue." + ] + }, + { + "name": "QueueSuspended", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Whether or not the XCMP queue is suspended from executing incoming XCMs or not." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 135, + "value": 226 + } + }, + "default": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": { + "ty": 306 + }, + "event": { + "ty": 57 + }, + "constants": [ + { + "name": "MaxInboundSuspended", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " The maximum number of inbound XCMP channels that can be suspended simultaneously.", + "", + " Any further channel suspensions will fail and messages may get dropped without further", + " notice. Choosing a high value (1000) is okay; the trade-off that is described in", + " [`InboundXcmpSuspended`] still applies at that scale." + ] + } + ], + "error": { + "ty": 478 + }, + "index": 30, + "docs": [] + }, + { + "name": "PolkadotXcm", + "storage": { + "prefix": "PolkadotXcm", + "entries": [ + { + "name": "QueryCounter", + "modifier": "Default", + "ty": { + "Plain": 12 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 479 + } + }, + "default": [ + 0 + ], + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 484, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 484, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 484, + "value": 485 + } + }, + "default": [ + 0 + ], + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "ty": { + "Plain": 486 + }, + "default": [ + 0 + ], + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "ty": { + "Plain": 489 + }, + "default": [ + 0 + ], + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 491, + "value": 492 + } + }, + "default": [ + 0 + ], + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 496 + } + }, + "default": [ + 0 + ], + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " Global suspension state of the XCM executor." + ] + } + ] + }, + "calls": { + "ty": 307 + }, + "event": { + "ty": 58 + }, + "constants": [], + "error": { + "ty": 499 + }, + "index": 31, + "docs": [] + }, + { + "name": "CumulusXcm", + "storage": null, + "calls": { + "ty": 346 + }, + "event": { + "ty": 132 + }, + "constants": [], + "error": null, + "index": 32, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "entries": [ + { + "name": "BookStateFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 134, + "value": 500 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "ty": { + "Plain": 134 + }, + "default": [ + 0 + ], + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 504 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "ty": 347 + }, + "event": { + "ty": 133 + }, + "constants": [ + { + "name": "HeapSize", + "ty": 4, + "value": [ + 0, + 0, + 1, + 0 + ], + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "ty": 4, + "value": [ + 8, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "ty": 186, + "value": [ + 1, + 7, + 0, + 162, + 148, + 26, + 29, + 2, + 0, + 80, + 0 + ], + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "ty": 186, + "value": [ + 0 + ], + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for parachains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "error": { + "ty": 506 + }, + "index": 34, + "docs": [] + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 507 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 240 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 508 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 252 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "ty": 348 + }, + "event": { + "ty": 137 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "ty": 10, + "value": [ + 7, + 0, + 68, + 41, + 53, + 58, + 2, + 0, + 160, + 0 + ], + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "error": { + "ty": 509 + }, + "index": 40, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "entries": [ + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 510 + } + }, + "default": [ + 0 + ], + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "ty": { + "Plain": 511 + }, + "default": [ + 0 + ], + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 512 + } + }, + "default": [ + 0 + ], + "docs": [ + " Spends that have been approved and being processed." + ] + } + ] + }, + "calls": { + "ty": 349 + }, + "event": { + "ty": 138 + }, + "constants": [ + { + "name": "ProposalBond", + "ty": 168, + "value": [ + 80, + 195, + 0, + 0 + ], + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "ty": 6, + "value": [ + 0, + 0, + 16, + 99, + 45, + 94, + 199, + 107, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "ProposalBondMaximum", + "ty": 514, + "value": [ + 0 + ], + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "ty": 4, + "value": [ + 224, + 196, + 0, + 0 + ], + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "ty": 168, + "value": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "ty": 515, + "value": [ + 112, + 121, + 47, + 116, + 114, + 115, + 114, + 121 + ], + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + } + ], + "error": { + "ty": 516 + }, + "index": 41, + "docs": [] + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 517 + }, + "default": [ + 0 + ], + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "ty": { + "Plain": 517 + }, + "default": [ + 0 + ], + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "ty": { + "Plain": 140 + }, + "default": [ + 0 + ], + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 519 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": { + "ty": 350 + }, + "event": { + "ty": 139 + }, + "constants": [ + { + "name": "PalletId", + "ty": 87, + "value": [ + 112, + 104, + 114, + 101, + 108, + 101, + 99, + 116 + ], + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "ty": 6, + "value": [ + 0, + 0, + 160, + 222, + 197, + 173, + 201, + 53, + 54, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "ty": 6, + "value": [ + 0, + 0, + 160, + 222, + 197, + 173, + 201, + 53, + 54, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "ty": 6, + "value": [ + 0, + 0, + 16, + 99, + 45, + 94, + 199, + 107, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "ty": 4, + "value": [ + 7, + 0, + 0, + 0 + ], + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "ty": 4, + "value": [ + 128, + 19, + 3, + 0 + ], + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + }, + { + "name": "MaxCandidates", + "ty": 4, + "value": [ + 30, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ] + }, + { + "name": "MaxVoters", + "ty": 4, + "value": [ + 200, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ] + }, + { + "name": "MaxVotesPerVoter", + "ty": 4, + "value": [ + 8, + 0, + 0, + 0 + ], + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ] + } + ], + "error": { + "ty": 520 + }, + "index": 42, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "entries": [ + { + "name": "StatusFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 521 + } + }, + "default": [ + 0 + ], + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 523 + } + }, + "default": [ + 0 + ], + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 527, + "value": 528 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 352 + }, + "event": { + "ty": 142 + }, + "constants": [], + "error": { + "ty": 529 + }, + "index": 43, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 507 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 240 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 508 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 252 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "ty": 353 + }, + "event": { + "ty": 143 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "ty": 10, + "value": [ + 7, + 0, + 68, + 41, + 53, + 58, + 2, + 0, + 160, + 0 + ], + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "error": { + "ty": 530 + }, + "index": 44, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "entries": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 531 + } + }, + "default": [ + 0 + ], + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 145, + "value": 535 + } + }, + "default": [ + 0 + ], + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 14, + "value": 145 + } + }, + "default": [ + 0 + ], + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "ty": 354 + }, + "event": { + "ty": 144 + }, + "constants": [ + { + "name": "MaximumWeight", + "ty": 10, + "value": [ + 7, + 0, + 230, + 189, + 79, + 87, + 2, + 0, + 240, + 0 + ], + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "error": { + "ty": 536 + }, + "index": 45, + "docs": [] + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "entries": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "ty": { + "Plain": 537 + }, + "default": [ + 0 + ], + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 540 + } + }, + "default": [ + 0 + ], + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 542 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 545 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "ty": { + "Plain": 8 + }, + "default": [ + 0 + ], + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "ty": { + "Plain": 551 + }, + "default": [ + 0 + ], + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 552 + } + }, + "default": [ + 0 + ], + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 8 + } + }, + "default": [ + 0 + ], + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 150, + "value": 13 + } + }, + "default": [ + 0 + ], + "docs": [ + " General information concerning any proposal or referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "ty": 356 + }, + "event": { + "ty": 146 + }, + "constants": [ + { + "name": "EnactmentPeriod", + "ty": 4, + "value": [ + 0, + 225, + 0, + 0 + ], + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "ty": 4, + "value": [ + 224, + 196, + 0, + 0 + ], + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "ty": 4, + "value": [ + 224, + 196, + 0, + 0 + ], + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "ty": 4, + "value": [ + 0, + 225, + 0, + 0 + ], + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "ty": 6, + "value": [ + 0, + 0, + 160, + 222, + 197, + 173, + 201, + 53, + 54, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "ty": 8, + "value": [ + 1 + ], + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "ty": 4, + "value": [ + 132, + 3, + 0, + 0 + ], + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "ty": 4, + "value": [ + 224, + 196, + 0, + 0 + ], + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "MaxVotes", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + }, + { + "name": "MaxDeposits", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ] + }, + { + "name": "MaxBlacklisted", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of items which can be blacklisted." + ] + } + ], + "error": { + "ty": 554 + }, + "index": 46, + "docs": [] + }, + { + "name": "TechnicalCommitteeMembership", + "storage": { + "prefix": "TechnicalCommitteeMembership", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 555 + }, + "default": [ + 0 + ], + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": { + "ty": 361 + }, + "event": { + "ty": 151 + }, + "constants": [], + "error": { + "ty": 556 + }, + "index": 47, + "docs": [] + }, + { + "name": "Ethereum", + "storage": { + "prefix": "Ethereum", + "entries": [ + { + "name": "Pending", + "modifier": "Default", + "ty": { + "Plain": 557 + }, + "default": [ + 0 + ], + "docs": [ + " Current building block's transactions and receipts." + ] + }, + { + "name": "CurrentBlock", + "modifier": "Optional", + "ty": { + "Plain": 566 + }, + "default": [ + 0 + ], + "docs": [ + " The current Ethereum block." + ] + }, + { + "name": "CurrentReceipts", + "modifier": "Optional", + "ty": { + "Plain": 571 + }, + "default": [ + 0 + ], + "docs": [ + " The current Ethereum receipts." + ] + }, + { + "name": "CurrentTransactionStatuses", + "modifier": "Optional", + "ty": { + "Plain": 572 + }, + "default": [ + 0 + ], + "docs": [ + " The current transaction statuses." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 166, + "value": 13 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 362 + }, + "event": { + "ty": 152 + }, + "constants": [], + "error": { + "ty": 573 + }, + "index": 50, + "docs": [] + }, + { + "name": "EVM", + "storage": { + "prefix": "EVM", + "entries": [ + { + "name": "AccountCodes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 153, + "value": 15 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "AccountCodesMetadata", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 153, + "value": 574 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "AccountStorages", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 575, + "value": 13 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "Suicided", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 153, + "value": 36 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 372 + }, + "event": { + "ty": 162 + }, + "constants": [], + "error": { + "ty": 576 + }, + "index": 51, + "docs": [] + }, + { + "name": "EVMChainId", + "storage": { + "prefix": "EVMChainId", + "entries": [ + { + "name": "ChainId", + "modifier": "Default", + "ty": { + "Plain": 12 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The EVM chain ID." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 52, + "docs": [] + }, + { + "name": "BaseFee", + "storage": { + "prefix": "BaseFee", + "entries": [ + { + "name": "BaseFeePerGas", + "modifier": "Default", + "ty": { + "Plain": 166 + }, + "default": [ + 0, + 202, + 154, + 59, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "Elasticity", + "modifier": "Default", + "ty": { + "Plain": 168 + }, + "default": [ + 72, + 232, + 1, + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 376 + }, + "event": { + "ty": 165 + }, + "constants": [], + "error": null, + "index": 53, + "docs": [] + }, + { + "name": "LaosEvolution", + "storage": { + "prefix": "LaosEvolution", + "entries": [ + { + "name": "CollectionCounter", + "modifier": "Default", + "ty": { + "Plain": 12 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Collection counter" + ] + }, + { + "name": "CollectionOwner", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Storage for the ownership of collections" + ] + }, + { + "name": "TokenURI", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 577, + "value": 172 + } + }, + "default": [ + 0 + ], + "docs": [ + " Token URI which can override the default URI scheme and set explicitly", + " This will contain external URI in a raw form" + ] + } + ] + }, + "calls": { + "ty": 377 + }, + "event": { + "ty": 169 + }, + "constants": [ + { + "name": "MaxTokenUriLength", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " Limit for the length of `token_uri`" + ] + } + ], + "error": { + "ty": 578 + }, + "index": 100, + "docs": [] + }, + { + "name": "AssetMetadataExtender", + "storage": { + "prefix": "AssetMetadataExtender", + "entries": [ + { + "name": "ExtensionsCounter", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 174, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Extensions counter for a given location" + ] + }, + { + "name": "ClaimersByLocationAndIndex", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 579, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Records all claimers with index that performed an extension for a given asset location" + ] + }, + { + "name": "TokenUrisByClaimerAndLocation", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 580, + "value": 172 + } + }, + "default": [ + 0 + ], + "docs": [ + " Records all the token uris associated with a universal location performed by a claimer." + ] + } + ] + }, + "calls": null, + "event": { + "ty": 173 + }, + "constants": [ + { + "name": "MaxTokenUriLength", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " Limit for the length of `token_uri`" + ] + }, + { + "name": "MaxUniversalLocationLength", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " Limit for the length of `universal_location`" + ] + } + ], + "error": { + "ty": 581 + }, + "index": 101, + "docs": [] + }, + { + "name": "PrecompilesBenchmark", + "storage": null, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 102, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "address_ty": 0, + "call_ty": 240, + "signature_ty": 294, + "extra_ty": 582, + "signed_extensions": [ + { + "identifier": "CheckNonZeroSender", + "ty": 583, + "additional_signed": 36 + }, + { + "identifier": "CheckSpecVersion", + "ty": 584, + "additional_signed": 4 + }, + { + "identifier": "CheckTxVersion", + "ty": 585, + "additional_signed": 4 + }, + { + "identifier": "CheckGenesis", + "ty": 586, + "additional_signed": 13 + }, + { + "identifier": "CheckMortality", + "ty": 587, + "additional_signed": 13 + }, + { + "identifier": "CheckNonce", + "ty": 589, + "additional_signed": 36 + }, + { + "identifier": "CheckWeight", + "ty": 590, + "additional_signed": 36 + }, + { + "identifier": "ChargeTransactionPayment", + "ty": 591, + "additional_signed": 36 + } + ] + }, + "ty": 592, + "apis": [ + { + "name": "AuraApi", + "methods": [ + { + "name": "slot_duration", + "inputs": [], + "output": 593, + "docs": [ + " Returns the slot duration for Aura.", + "", + " Currently, only the value provided by this type at genesis will be used." + ] + }, + { + "name": "authorities", + "inputs": [], + "output": 438, + "docs": [ + " Return the current set of authorities." + ] + } + ], + "docs": [ + " API necessary for block authorship with aura." + ] + }, + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 190, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "ty": 594 + } + ], + "output": 36, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "ty": 595 + } + ], + "output": 599, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Substrate runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 600, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "ty": 4 + } + ], + "output": 601, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 433, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "ty": 596 + } + ], + "output": 602, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 595, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "ty": 606 + } + ], + "output": 598, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "ty": 594 + }, + { + "name": "data", + "ty": 606 + } + ], + "output": 610, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "ty": 611 + }, + { + "name": "tx", + "ty": 596 + }, + { + "name": "block_hash", + "ty": 13 + } + ], + "output": 612, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "ty": 595 + } + ], + "output": 36, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "ty": 490 + } + ], + "output": 15, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "ty": 15 + } + ], + "output": 614, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "ty": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "EthereumRuntimeRPCApi", + "methods": [ + { + "name": "chain_id", + "inputs": [], + "output": 12, + "docs": [ + " Returns runtime defined pallet_evm::ChainId." + ] + }, + { + "name": "account_basic", + "inputs": [ + { + "name": "address", + "ty": 153 + } + ], + "output": 617, + "docs": [ + " Returns pallet_evm::Accounts by address." + ] + }, + { + "name": "gas_price", + "inputs": [], + "output": 166, + "docs": [ + " Returns FixedGasPrice::min_gas_price" + ] + }, + { + "name": "account_code_at", + "inputs": [ + { + "name": "address", + "ty": 153 + } + ], + "output": 15, + "docs": [ + " For a given account address, returns pallet_evm::AccountCodes." + ] + }, + { + "name": "author", + "inputs": [], + "output": 153, + "docs": [ + " Returns the converted FindAuthor::find_author authority id." + ] + }, + { + "name": "storage_at", + "inputs": [ + { + "name": "address", + "ty": 153 + }, + { + "name": "index", + "ty": 166 + } + ], + "output": 13, + "docs": [ + " For a given account address and index, returns pallet_evm::AccountStorages." + ] + }, + { + "name": "call", + "inputs": [ + { + "name": "from", + "ty": 153 + }, + { + "name": "to", + "ty": 153 + }, + { + "name": "data", + "ty": 15 + }, + { + "name": "value", + "ty": 166 + }, + { + "name": "gas_limit", + "ty": 166 + }, + { + "name": "max_fee_per_gas", + "ty": 373 + }, + { + "name": "max_priority_fee_per_gas", + "ty": 373 + }, + { + "name": "nonce", + "ty": 373 + }, + { + "name": "estimate", + "ty": 8 + }, + { + "name": "access_list", + "ty": 618 + } + ], + "output": 619, + "docs": [] + }, + { + "name": "create", + "inputs": [ + { + "name": "from", + "ty": 153 + }, + { + "name": "data", + "ty": 15 + }, + { + "name": "value", + "ty": 166 + }, + { + "name": "gas_limit", + "ty": 166 + }, + { + "name": "max_fee_per_gas", + "ty": 373 + }, + { + "name": "max_priority_fee_per_gas", + "ty": 373 + }, + { + "name": "nonce", + "ty": 373 + }, + { + "name": "estimate", + "ty": 8 + }, + { + "name": "access_list", + "ty": 618 + } + ], + "output": 625, + "docs": [] + }, + { + "name": "current_block", + "inputs": [], + "output": 627, + "docs": [ + " Return the current block." + ] + }, + { + "name": "current_receipts", + "inputs": [], + "output": 628, + "docs": [ + " Return the current receipt." + ] + }, + { + "name": "current_transaction_statuses", + "inputs": [], + "output": 629, + "docs": [ + " Return the current transaction status." + ] + }, + { + "name": "current_all", + "inputs": [], + "output": 630, + "docs": [] + }, + { + "name": "extrinsic_filter", + "inputs": [ + { + "name": "xts", + "ty": 598 + } + ], + "output": 569, + "docs": [ + " Receives a `Vec` and filters all the ethereum transactions." + ] + }, + { + "name": "elasticity", + "inputs": [], + "output": 631, + "docs": [ + " Return the elasticity multiplier." + ] + }, + { + "name": "gas_limit_multiplier_support", + "inputs": [], + "output": 36, + "docs": [ + " Used to determine if gas limit multiplier for non-transactional calls (eth_call/estimateGas)", + " is supported." + ] + }, + { + "name": "pending_block", + "inputs": [ + { + "name": "xts", + "ty": 598 + } + ], + "output": 632, + "docs": [ + " Return the pending block." + ] + } + ], + "docs": [ + " API necessary for Ethereum-compatibility layer." + ] + }, + { + "name": "ConvertTransactionRuntimeApi", + "methods": [ + { + "name": "convert_transaction", + "inputs": [ + { + "name": "transaction", + "ty": 363 + } + ], + "output": 596, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "ty": 596 + }, + { + "name": "len", + "ty": 4 + } + ], + "output": 633, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "ty": 596 + }, + { + "name": "len", + "ty": 4 + } + ], + "output": 634, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "ty": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "ty": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "ty": 240 + }, + { + "name": "len", + "ty": 4 + } + ], + "output": 633, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "ty": 240 + }, + { + "name": "len", + "ty": 4 + } + ], + "output": 634, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "ty": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "ty": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "CollectCollationInfo", + "methods": [ + { + "name": "collect_collation_info", + "inputs": [ + { + "name": "header", + "ty": 595 + } + ], + "output": 637, + "docs": [ + " Collect information about a collation.", + "", + " The given `header` is the header of the built block for that", + " we are collecting the collation info for." + ] + } + ], + "docs": [ + " Runtime api to collect information about a collation." + ] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "ty": 15 + } + ], + "output": 640, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and", + " puts it into the storage. If the provided JSON blob is incorrect or incomplete or the", + " deserialization fails, an error is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "ty": 641 + } + ], + "output": 490, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function returns JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exists. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 642, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with RuntimeGenesisConfig for the runtime" + ] + } + ], + "outer_enums": { + "call_enum_ty": 240, + "event_enum_ty": 22, + "error_enum_ty": 643 + }, + "custom": { + "map": {} + } + } + } +] \ No newline at end of file diff --git a/runtime/laos/src/tests/mod.rs b/runtime/laos/src/tests/mod.rs index 35b9a8e76..ad9ae35aa 100644 --- a/runtime/laos/src/tests/mod.rs +++ b/runtime/laos/src/tests/mod.rs @@ -16,8 +16,10 @@ //! Runtime tests +mod metadata; mod precompile_tests; mod version_tests; + use core::str::FromStr; use sp_runtime::BuildStorage; From ea558d2c8791d4beedce699ffa22189376981303 Mon Sep 17 00:00:00 2001 From: Alessandro Siniscalchi Date: Thu, 17 Oct 2024 12:58:17 +0200 Subject: [PATCH 3/3] Add AssetHub to XCM simulator and laosish teleport test (#813) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init of integration * test cxm-simultor moved * add laos-runtime dep * renaming staging packages * add simulator * simulator example integrated * simulator example integrated * integrate simultaor * integrate simultaor * starign point * starign point * active DmpMessage * added mock msg queue * pallet mock msg queue compiling * thinking to the runtime * refactoring * xcm-simulator copiles * added laosish * added laosish * starting laosish * laos-primitives feature fix * laosish has lso balances * laosish uses laos system * rollback xcm_config * add laosish xcm_config * added types * using accountid20 * using accountid20 * balances is from laos * balances is from laos * system by laos * remove warning * removed unused code * xcm_config integration * removed mock * rollback some changes * remove staging_ * ParachainInfo integrated * facing xcm_cofig * remove warning * fixing Cargo.toml * using Cargo.lock of main * using workspace deps * fix comoilation * fmt * refactoring * add Laoish networjk * deactive insecure zero ED * clippy * added cumulus_xcm * active SiblingParachainAsNative * refactoring * refactoring * refactoring * added laosish ump test * refactoring * rafactoring: mod tests extracted * created module test laoish * initializing ethereum * funding account * clippy * add a failing tests * set the relay chain * added constants for chain ID * remove TODO * add dmp test * added test transfer balances * test laos is able to move its balance or relay chain * added reserve transfer between parachains * checking the sovereign account * comment the code of transfer para A -> B * xcm-simultaror parachains have pallet_assets * using parent * test on force create * name refactoring * using foreign location * added check for events * Instance2 * added pallet assets * sibling account id * all tests green * prefund sibling sovreign accounts * refactoring * prefund sovreign account in laosish * laosish is able to create assets in PAraB * removed unuseful code * fix clippy * fix compilation * add params for AssetHub * add params for AssetHub * configure teleporting * no reserve transfer are accepted * starting teleporting test * trying teleport * Trying to teleport * Teleport tokens burnt * Last version2 * Last version * renamed xcm-simulator crate * test ignored * LAOS xcm_config set for Polkadot * WIP: assethub from xcm workshop; change paras xcm v4 to v3 * switch back v3 to latest and fix compilation errors * remove todos; para_teleporter trusts assethub * fix teleport asset destination (broken test); weight unlimited in teleport asset; log events in assethub; genesis funding for sovereign accounts * ParaTeleporter decl parachain runtime fixed; send xcm create asset & commented out set metadata * fix loc conv assethub * Teleport working * Funding assetHub account correctly * Teleport back from AssetHub OK * fix clippy warnings * laosish teleport test (to be fixed); teleport filter accepts everything * assethub does not need parachaininfo; set para_id in laosish genesis * complete laosish roundtrip test * remove `ParaTeleporter` * remove todo and add comment about `IsTeleporter` * Fmt + clippy fixed * remove duplicated comments --------- Co-authored-by: Tomás Senovilla Polo Co-authored-by: luispdm <17044119+luispdm@users.noreply.github.com> --- xcm-simulator/src/asset_hub/mod.rs | 263 ++++++++++++ .../asset_hub/xcm_config/asset_transactor.rs | 72 ++++ .../src/asset_hub/xcm_config/barrier.rs | 26 ++ .../src/asset_hub/xcm_config/constants.rs | 16 + .../xcm_config/location_converter.rs | 15 + xcm-simulator/src/asset_hub/xcm_config/mod.rs | 47 +++ .../asset_hub/xcm_config/origin_converter.rs | 13 + .../src/asset_hub/xcm_config/reserve.rs | 12 + .../src/asset_hub/xcm_config/teleporter.rs | 43 ++ .../src/asset_hub/xcm_config/weigher.rs | 11 + .../src/laosish/configs/xcm_config.rs | 11 +- xcm-simulator/src/lib.rs | 54 ++- xcm-simulator/src/parachain.rs | 7 +- xcm-simulator/src/parachain_teleporter.rs | 385 ------------------ xcm-simulator/src/relay_chain.rs | 2 +- xcm-simulator/src/tests/laosish_xcm.rs | 76 +++- xcm-simulator/src/tests/mod.rs | 43 -- 17 files changed, 628 insertions(+), 468 deletions(-) create mode 100644 xcm-simulator/src/asset_hub/mod.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/asset_transactor.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/barrier.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/constants.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/location_converter.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/mod.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/origin_converter.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/reserve.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/teleporter.rs create mode 100644 xcm-simulator/src/asset_hub/xcm_config/weigher.rs delete mode 100644 xcm-simulator/src/parachain_teleporter.rs diff --git a/xcm-simulator/src/asset_hub/mod.rs b/xcm-simulator/src/asset_hub/mod.rs new file mode 100644 index 000000000..a0ca93232 --- /dev/null +++ b/xcm-simulator/src/asset_hub/mod.rs @@ -0,0 +1,263 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! AssetHub Parachain runtime mock. + +mod xcm_config; +use crate::mock_msg_queue; +pub use xcm_config::*; +use xcm_simulator::{Asset, AssetFilter}; + +use core::marker::PhantomData; +use frame_support::{ + construct_runtime, derive_impl, parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstU128, ContainsPair, EnsureOrigin, EnsureOriginWithArg, + Everything, + }, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, +}; +use frame_system::{EnsureRoot, EnsureSigned}; +use sp_core::ConstU32; +use sp_runtime::{ + traits::{Get, IdentityLookup}, + AccountId32, +}; +use sp_std::prelude::*; +use xcm::latest::prelude::*; +use xcm_builder::{EnsureXcmOrigin, SignedToAccountId32}; +use xcm_executor::{traits::ConvertLocation, XcmExecutor}; + +pub type AccountId = AccountId32; +pub type Balance = u128; + +parameter_types! { + pub const BlockHashCount: u64 = 250; +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl frame_system::Config for Runtime { + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type AccountData = pallet_balances::AccountData; +} + +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)] +impl pallet_balances::Config for Runtime { + type Balance = Balance; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; +} + +parameter_types! { + pub const AssetDeposit: Balance = 1; + pub const ApprovalDeposit: Balance = 1; + pub const AssetAccountDeposit: Balance = 1; + pub const MetadataDepositBase: Balance = 1; + pub const MetadataDepositPerByte: Balance = 1; +} + +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig)] +impl pallet_assets::Config for Runtime { + type Currency = Balances; + type Balance = Balance; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type ApprovalDeposit = ApprovalDeposit; + type AssetAccountDeposit = AssetAccountDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type Freezer = (); +} + +// `EnsureOriginWithArg` impl for `CreateOrigin` which allows only XCM origins +// which are locations containing the class location. +pub struct ForeignCreators; +impl EnsureOriginWithArg for ForeignCreators { + type Success = AccountId; + + fn try_origin( + o: RuntimeOrigin, + a: &Location, + ) -> sp_std::result::Result { + let origin_location = pallet_xcm::EnsureXcm::::try_origin(o.clone())?; + if !a.starts_with(&origin_location) { + return Err(o); + } + xcm_config::location_converter::LocationConverter::convert_location(&origin_location) + .ok_or(o) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin(a: &Location) -> Result { + Ok(pallet_xcm::Origin::Xcm(a.clone()).into()) + } +} + +/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. +#[cfg(feature = "runtime-benchmarks")] +pub struct XcmBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { + fn create_asset_id_parameter(id: u32) -> Location { + Location::new(1, Junction::Parachain(id)) + } +} + +pub type ForeignAssetsInstance = pallet_assets::Instance2; +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig)] +impl pallet_assets::Config for Runtime { + type AssetId = Location; + type AssetIdParameter = Location; + type Currency = Balances; + type Balance = Balance; + type CreateOrigin = ForeignCreators; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type ApprovalDeposit = ApprovalDeposit; + type AssetAccountDeposit = AssetAccountDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type Freezer = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = XcmBenchmarkHelper; +} + +#[cfg(feature = "runtime-benchmarks")] +pub struct UniquesHelper; +#[cfg(feature = "runtime-benchmarks")] +impl pallet_uniques::BenchmarkHelper for UniquesHelper { + fn collection(i: u16) -> Location { + GeneralIndex(i as u128).into() + } + fn item(i: u16) -> AssetInstance { + AssetInstance::Index(i as u128) + } +} + +impl pallet_uniques::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; // To identify collections. + type ItemId = u32; // To identify individual NFTs. + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type CollectionDeposit = ConstU128<1_000>; + type ItemDeposit = ConstU128<1_000>; + type MetadataDepositBase = ConstU128<1_000>; + type AttributeDepositBase = ConstU128<1_000>; + type DepositPerByte = ConstU128<1>; + type StringLimit = ConstU32<64>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<128>; + type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); + type CreateOrigin = AsEnsureOriginWithArg>; + type Locker = (); +} + +impl pallet_uniques::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = Location; + type ItemId = AssetInstance; + type Currency = Balances; + type CreateOrigin = ForeignCreators; + type ForceOrigin = EnsureRoot; + type CollectionDeposit = ConstU128<1_000>; + type ItemDeposit = ConstU128<1_000>; + type MetadataDepositBase = ConstU128<1_000>; + type AttributeDepositBase = ConstU128<1_000>; + type DepositPerByte = ConstU128<1>; + type StringLimit = ConstU32<64>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<128>; + type Locker = (); + type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type Helper = UniquesHelper; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_div(4), 0); + pub const ReservedDmpWeight: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_div(4), 0); +} + +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +pub type LocalOriginToLocation = + SignedToAccountId32; + +pub struct TrustedLockerCase(PhantomData); +impl> ContainsPair for TrustedLockerCase { + fn contains(origin: &Location, asset: &Asset) -> bool { + let (o, a) = T::get(); + a.matches(asset) && &o == origin + } +} + +parameter_types! { + pub RelayTokenForRelay: (Location, AssetFilter) = (Parent.into(), Wild(AllOf { id: Parent.into(), fun: WildFungible })); +} + +pub type TrustedLockers = TrustedLockerCase; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Everything; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = weigher::Weigher; + type UniversalLocation = constants::UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = TrustedLockers; + type SovereignAccountOf = location_converter::LocationConverter; + type MaxLockers = ConstU32<8>; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type WeightInfo = pallet_xcm::TestWeightInfo; + type AdminOrigin = EnsureRoot; +} + +type Block = frame_system::mocking::MockBlock; + +impl parachain_info::Config for Runtime {} +construct_runtime!( + pub enum Runtime + { + System: frame_system, + Balances: pallet_balances, + Assets: pallet_assets::, + MsgQueue: mock_msg_queue, + PolkadotXcm: pallet_xcm, + Uniques: pallet_uniques::, + ForeignUniques: pallet_uniques::, + ForeignAssets: pallet_assets::, + } +); diff --git a/xcm-simulator/src/asset_hub/xcm_config/asset_transactor.rs b/xcm-simulator/src/asset_hub/xcm_config/asset_transactor.rs new file mode 100644 index 000000000..a6221cf0f --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/asset_transactor.rs @@ -0,0 +1,72 @@ +pub use sandbox::*; + +mod sandbox { + use frame_support::{parameter_types, traits::EverythingBut}; + use xcm::prelude::*; + use xcm_builder::{ + FungibleAdapter, FungiblesAdapter, IsConcrete, MatchedConvertedConcreteId, NoChecking, + StartsWith, + }; + use xcm_executor::traits::JustTry; + + use crate::asset_hub::{ + location_converter::LocationConverter, AccountId, Balance, Balances, ForeignAssets, + PolkadotXcm, + }; + + /// AssetTransactor for handling the chain's native token. + pub type FungibleTransactor = FungibleAdapter< + // Use this implementation of the `fungible::*` traits. + // `Balances` is the name given to the balances pallet in this particular example. + // Any implementation of the traits would suffice. + Balances, + // This transactor deals with the native token of the Relay Chain. + // This token is referenced by the Location of the Relay Chain relative to this chain + // -- Location::parent(). + IsConcrete, + // How to convert an XCM Location into a local account id. + // This is also something that's configured in the XCM executor. + LocationConverter, + // The type for account ids, only needed because `fungible` is generic over it. + AccountId, + // Not tracking teleports. + // This recipe only uses reserve asset transfers to handle the Relay Chain token. + (), + >; + + parameter_types! { + pub ParentLocation: Location = Location::parent(); + pub LocalPrefix: Location = Location::here(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + } + + /// Type that matches foreign assets. + /// We do this by matching on all possible Locations and excluding the ones + /// inside our local chain. + pub type ForeignAssetsMatcher = MatchedConvertedConcreteId< + Location, // Asset id. + Balance, // Balance type. + EverythingBut>, // Location matcher. + JustTry, // How to convert from Location to AssetId. + JustTry, // How to convert from u128 to Balance. + >; + + /// AssetTransactor for handling other parachains' native tokens. + pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this implementation of the `fungibles::*` traits. + // `Balances` is the name given to the balances pallet in this particular example. + ForeignAssets, + // This transactor deals with the native token of sibling parachains. + ForeignAssetsMatcher, + // How we convert from a Location to an account id. + LocationConverter, + // The `AccountId` type. + AccountId, + // Not tracking teleports since we only use reserve asset transfers. + NoChecking, + // The account for checking. + CheckingAccount, + >; + + pub type AssetTransactor = (FungibleTransactor, ForeignFungiblesTransactor); +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/barrier.rs b/xcm-simulator/src/asset_hub/xcm_config/barrier.rs new file mode 100644 index 000000000..245a708c0 --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/barrier.rs @@ -0,0 +1,26 @@ +pub use sandbox::*; + +#[cfg(not(feature = "barrier"))] +mod sandbox { + use frame_support::traits::Everything; + use xcm_builder::AllowUnpaidExecutionFrom; + + pub type Barrier = AllowUnpaidExecutionFrom; +} + +#[cfg(feature = "barrier")] +mod sandbox { + use frame_support::traits::{Contains, Everything}; + use xcm::prelude::*; + use xcm_builder::{AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom}; + + pub struct ParentRelay; + impl Contains for ParentRelay { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, [])) + } + } + + pub type Barrier = + (AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom); +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/constants.rs b/xcm-simulator/src/asset_hub/xcm_config/constants.rs new file mode 100644 index 000000000..103b1a4ca --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/constants.rs @@ -0,0 +1,16 @@ +use frame_support::parameter_types; +use xcm::latest::prelude::*; + +use crate::asset_hub::MsgQueue; + +parameter_types! { + pub KsmPerSecondPerByte: (AssetId, u128, u128) = (Parent.into(), 1, 1); + pub const MaxAssetsIntoHolding: u32 = 64; +} + +// You are a parachain on Kusama, these are fixed constants for you. +parameter_types! { + pub const KsmLocation: Location = Location::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/location_converter.rs b/xcm-simulator/src/asset_hub/xcm_config/location_converter.rs new file mode 100644 index 000000000..05ae57cd7 --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/location_converter.rs @@ -0,0 +1,15 @@ +use super::{super::AccountId, constants::RelayNetwork}; +use polkadot_parachain_primitives::primitives::Sibling; +use xcm_builder::{ + AccountId32Aliases, DescribeAllTerminal, DescribeFamily, HashedDescription, ParentIsPreset, + SiblingParachainConvertsVia, +}; + +type LocationToAccountId = ( + ParentIsPreset, + SiblingParachainConvertsVia, + HashedDescription>, + AccountId32Aliases, +); + +pub type LocationConverter = LocationToAccountId; diff --git a/xcm-simulator/src/asset_hub/xcm_config/mod.rs b/xcm-simulator/src/asset_hub/xcm_config/mod.rs new file mode 100644 index 000000000..44616a061 --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/mod.rs @@ -0,0 +1,47 @@ +pub mod asset_transactor; +pub mod barrier; +pub mod constants; +pub mod location_converter; +pub mod origin_converter; +pub mod reserve; +pub mod teleporter; +pub mod weigher; + +use super::{MsgQueue, PolkadotXcm, RuntimeCall}; +use frame_support::traits::{Everything, Nothing}; +use xcm_builder::{FixedRateOfFungible, FrameTransactionalProcessor}; + +// Generated from `decl_test_network!` +pub type XcmRouter = crate::ParachainXcmRouter; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = asset_transactor::AssetTransactor; + type OriginConverter = origin_converter::OriginConverter; + type IsReserve = reserve::TrustedReserves; + type IsTeleporter = teleporter::TrustedTeleporters; + type UniversalLocation = constants::UniversalLocation; + type Barrier = barrier::Barrier; + type Weigher = weigher::Weigher; + type Trader = FixedRateOfFungible; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetLocker = PolkadotXcm; + type AssetExchanger = (); + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = (); + type FeeManager = (); + type MaxAssetsIntoHolding = constants::MaxAssetsIntoHolding; + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/origin_converter.rs b/xcm-simulator/src/asset_hub/xcm_config/origin_converter.rs new file mode 100644 index 000000000..efa416fde --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/origin_converter.rs @@ -0,0 +1,13 @@ +use crate::asset_hub::{ + constants::RelayNetwork, location_converter::LocationConverter, RuntimeOrigin, +}; +use pallet_xcm::XcmPassthrough; +use xcm_builder::{SignedAccountId32AsNative, SovereignSignedViaLocation}; + +type XcmOriginToCallOrigin = ( + SovereignSignedViaLocation, + SignedAccountId32AsNative, + XcmPassthrough, +); + +pub type OriginConverter = XcmOriginToCallOrigin; diff --git a/xcm-simulator/src/asset_hub/xcm_config/reserve.rs b/xcm-simulator/src/asset_hub/xcm_config/reserve.rs new file mode 100644 index 000000000..f01f2cdee --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/reserve.rs @@ -0,0 +1,12 @@ +pub use sandbox::*; + +#[cfg(feature = "start")] +mod sandbox { + pub type TrustedReserves = (); +} + +#[cfg(not(feature = "start"))] +mod sandbox { + /// We don't trust any chain as a reserve. + pub type TrustedReserves = (); +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/teleporter.rs b/xcm-simulator/src/asset_hub/xcm_config/teleporter.rs new file mode 100644 index 000000000..7ab70d2a5 --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/teleporter.rs @@ -0,0 +1,43 @@ +pub use sandbox::*; + +mod sandbox { + use frame_support::{parameter_types, traits::ContainsPair}; + use sp_runtime::traits::Get; + use xcm::latest::prelude::*; + use xcm_simulator::{Asset, ParaId}; + + pub struct IsForeignConcreteAsset(sp_std::marker::PhantomData); + impl> ContainsPair + for IsForeignConcreteAsset + { + fn contains(asset: &Asset, origin: &Location) -> bool { + log::trace!(target: "xcm::contains", "IsForeignConcreteAsset asset: {:?}, origin: {:?}", asset, origin); + matches!(asset.id, ref id if IsForeign::contains(&id.0, origin)) + } + } + + pub struct FromSiblingParachain(sp_std::marker::PhantomData); + impl> ContainsPair + for FromSiblingParachain + { + fn contains(a: &Location, b: &Location) -> bool { + // `a` needs to be from `b` at least. + if !a.starts_with(b) { + return false; + } + + // here we check if sibling + match a.unpack() { + (1, interior) => + matches!(interior.first(), Some(Parachain(sibling_para_id)) if sibling_para_id.ne(&u32::from(SelfParaId::get()))), + _ => false, + } + } + } + + parameter_types! { + pub SelfParaId: ParaId = 1000.into(); + } + + pub type TrustedTeleporters = IsForeignConcreteAsset>; +} diff --git a/xcm-simulator/src/asset_hub/xcm_config/weigher.rs b/xcm-simulator/src/asset_hub/xcm_config/weigher.rs new file mode 100644 index 000000000..b97c64373 --- /dev/null +++ b/xcm-simulator/src/asset_hub/xcm_config/weigher.rs @@ -0,0 +1,11 @@ +use crate::asset_hub::RuntimeCall; +use frame_support::parameter_types; +use xcm::latest::prelude::*; +use xcm_builder::FixedWeightBounds; + +parameter_types! { + pub const UnitWeightCost: Weight = Weight::from_parts(1, 1); + pub const MaxInstructions: u32 = 100; +} + +pub type Weigher = FixedWeightBounds; diff --git a/xcm-simulator/src/laosish/configs/xcm_config.rs b/xcm-simulator/src/laosish/configs/xcm_config.rs index e59c4199e..3032d517a 100644 --- a/xcm-simulator/src/laosish/configs/xcm_config.rs +++ b/xcm-simulator/src/laosish/configs/xcm_config.rs @@ -38,8 +38,7 @@ use xcm_builder::{ TakeWeightCredit, TrailingSetTopicAsId, WithComputedOrigin, }; use xcm_executor::XcmExecutor; - -pub const ASSET_HUB_ID: u32 = crate::PARA_B_ID; +use xcm_simulator::AssetFilter; parameter_types! { pub const RelayLocation: Location = Location::parent(); @@ -136,13 +135,13 @@ pub type Barrier = TrailingSetTopicAsId< >; parameter_types! { - pub ParentTokenPerSecondPerByte: (AssetId, u128, u128) = (AssetId(Parent.into()), 1, 1); + pub ParentTokenPerSecondPerByte: (AssetId, u128, u128) = (Parent.into(), 1, 1); } parameter_types! { pub NativeToken: AssetId = AssetId(Location::here()); pub NativeTokenFilter: AssetFilter = Wild(AllOf { fun: WildFungible, id: NativeToken::get() }); - pub AssetHubLocation: Location = Location::new(1, [Parachain(ASSET_HUB_ID)]); + pub AssetHubLocation: Location = Location::new(1, [Parachain(crate::PARA_ASSETHUB_ID)]); pub AssetHubTrustedTeleporter: (AssetFilter, Location) = (NativeTokenFilter::get(), AssetHubLocation::get()); } @@ -192,7 +191,9 @@ impl pallet_xcm::Config for Runtime { type ExecuteXcmOrigin = EnsureXcmOrigin; type XcmExecuteFilter = Nothing; type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Nothing; + // it is safe to have `Everything` as `IsTeleporter` performs an additional check on the + // parachain + type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; type UniversalLocation = UniversalLocation; diff --git a/xcm-simulator/src/lib.rs b/xcm-simulator/src/lib.rs index 25f24012f..83bcdbc08 100644 --- a/xcm-simulator/src/lib.rs +++ b/xcm-simulator/src/lib.rs @@ -14,11 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +mod asset_hub; mod laosish; mod parachain; -mod parachain_teleporter; mod relay_chain; +use std::marker::PhantomData; + use hex_literal::hex; use sp_runtime::BuildStorage; @@ -33,8 +35,8 @@ pub const INITIAL_BALANCE: u128 = 1_000_000_000; const PARA_A_ID: u32 = 1; const PARA_B_ID: u32 = 2; -const PARA_TELEPORTER_ID: u32 = 7; const PARA_LAOSISH_ID: u32 = 3; +const PARA_ASSETHUB_ID: u32 = 1000; decl_test_parachain! { pub struct ParaA { @@ -55,11 +57,11 @@ decl_test_parachain! { } decl_test_parachain! { - pub struct ParaTeleporter { - Runtime = parachain::Runtime, - XcmpMessageHandler = parachain::MsgQueue, - DmpMessageHandler = parachain::MsgQueue, - new_ext = para_ext(PARA_TELEPORTER_ID), + pub struct AssetHub { + Runtime = asset_hub::Runtime, + XcmpMessageHandler = asset_hub::MsgQueue, + DmpMessageHandler = asset_hub::MsgQueue, + new_ext = para_ext_asset_hub(PARA_ASSETHUB_ID), } } @@ -90,8 +92,8 @@ decl_test_network! { parachains = vec![ (PARA_A_ID, ParaA), (PARA_B_ID, ParaB), - (PARA_TELEPORTER_ID, ParaTeleporter), (PARA_LAOSISH_ID, Laosish), + (PARA_ASSETHUB_ID, AssetHub), ], } } @@ -137,8 +139,35 @@ pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { (parent_account_id(), INITIAL_BALANCE), (sibling_account_id(PARA_A_ID), INITIAL_BALANCE), (sibling_account_id(PARA_B_ID), INITIAL_BALANCE), - (sibling_account_id(PARA_TELEPORTER_ID), INITIAL_BALANCE), (sibling_account_id(PARA_LAOSISH_ID), INITIAL_BALANCE), + (sibling_account_id(PARA_ASSETHUB_ID), INITIAL_BALANCE), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + sp_tracing::try_init_simple(); + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn para_ext_asset_hub(para_id: u32) -> sp_io::TestExternalities { + use asset_hub::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (ALICE, INITIAL_BALANCE), + (parent_account_id(), INITIAL_BALANCE), + (sibling_account_id(PARA_A_ID), INITIAL_BALANCE), + (sibling_account_id(PARA_B_ID), INITIAL_BALANCE), + (sibling_account_id(PARA_LAOSISH_ID), INITIAL_BALANCE), + (sibling_account_id(PARA_ASSETHUB_ID), INITIAL_BALANCE), ], } .assimilate_storage(&mut t) @@ -162,6 +191,10 @@ pub fn para_ext_ethereum(para_id: u32) -> sp_io::TestExternalities { .assimilate_storage(&mut t) .unwrap(); + parachain_info::GenesisConfig:: { parachain_id: para_id.into(), _config: PhantomData } + .assimilate_storage(&mut t) + .unwrap(); + let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| { sp_tracing::try_init_simple(); @@ -182,6 +215,7 @@ pub fn relay_ext() -> sp_io::TestExternalities { (child_account_id(PARA_A_ID), INITIAL_BALANCE), (child_account_id(PARA_B_ID), INITIAL_BALANCE), (child_account_id(PARA_LAOSISH_ID), INITIAL_BALANCE), + (child_account_id(PARA_ASSETHUB_ID), INITIAL_BALANCE), ], } .assimilate_storage(&mut t) @@ -198,7 +232,7 @@ pub fn relay_ext() -> sp_io::TestExternalities { pub type RelayChainPalletXcm = pallet_xcm::Pallet; pub type ParachainPalletXcm = pallet_xcm::Pallet; -pub type ParachainTeleporterPalletXcm = pallet_xcm::Pallet; +pub type AssetHubPalletXcm = pallet_xcm::Pallet; pub type LaosishPalletXcm = pallet_xcm::Pallet; #[frame_support::pallet] diff --git a/xcm-simulator/src/parachain.rs b/xcm-simulator/src/parachain.rs index c0a91ad75..7263f5631 100644 --- a/xcm-simulator/src/parachain.rs +++ b/xcm-simulator/src/parachain.rs @@ -30,6 +30,7 @@ use sp_runtime::{ AccountId32, }; use sp_std::prelude::*; +use xcm_simulator::{Asset, AssetFilter}; use crate::mock_msg_queue; use assets_common::{foreign_creators::ForeignCreators, matching::FromSiblingParachain}; @@ -179,7 +180,7 @@ pub type XcmOriginToCallOrigin = ( parameter_types! { pub const UnitWeightCost: Weight = Weight::from_parts(1, 1); - pub KsmPerSecondPerByte: (AssetId, u128, u128) = (AssetId(Parent.into()), 1, 1); + pub KsmPerSecondPerByte: (AssetId, u128, u128) = (Parent.into(), 1, 1); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; pub ForeignPrefix: Location = (Parent,).into(); @@ -202,7 +203,7 @@ pub type Barrier = AllowUnpaidExecutionFrom; parameter_types! { pub NftCollectionOne: AssetFilter - = Wild(AllOf { fun: WildNonFungible, id: AssetId((Parent, GeneralIndex(1)).into()) }); + = Wild(AllOf { fun: WildNonFungible, id: (Parent, GeneralIndex(1)).into() }); pub NftCollectionOneForRelay: (AssetFilter, Location) = (NftCollectionOne::get(), (Parent,).into()); } @@ -257,7 +258,7 @@ impl> ContainsPair for TrustedL } parameter_types! { - pub RelayTokenForRelay: (Location, AssetFilter) = (Parent.into(), Wild(AllOf { id: AssetId(Parent.into()), fun: WildFungible })); + pub RelayTokenForRelay: (Location, AssetFilter) = (Parent.into(), Wild(AllOf { id: Parent.into(), fun: WildFungible })); } pub type TrustedLockers = TrustedLockerCase; diff --git a/xcm-simulator/src/parachain_teleporter.rs b/xcm-simulator/src/parachain_teleporter.rs deleted file mode 100644 index 1ca21d1d7..000000000 --- a/xcm-simulator/src/parachain_teleporter.rs +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Parachain runtime mock. - -use core::marker::PhantomData; -use frame_support::{ - construct_runtime, derive_impl, parameter_types, - traits::{ContainsPair, EnsureOrigin, EnsureOriginWithArg, Everything, Nothing}, - weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, -}; - -use frame_system::EnsureRoot; -use sp_core::ConstU32; -use sp_runtime::{ - traits::{Get, IdentityLookup}, - AccountId32, -}; -use sp_std::prelude::*; - -use crate::mock_msg_queue; -use assets_common::{foreign_creators::ForeignCreators, matching::FromSiblingParachain}; -use frame_support::traits::AsEnsureOriginWithArg; -use frame_system::EnsureSigned; -use pallet_xcm::XcmPassthrough; -use parachains_common::AssetIdForTrustBackedAssets; -use polkadot_parachain_primitives::primitives::Sibling; -use sp_runtime::codec; -use xcm::latest::prelude::*; -use xcm_builder::{ - Account32Hash, AccountId32Aliases, AllowUnpaidExecutionFrom, EnsureDecodableXcm, - EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FrameTransactionalProcessor, - FungibleAdapter, GlobalConsensusParachainConvertsFor, IsConcrete, MintLocation, ParentIsPreset, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, -}; -use xcm_executor::{traits::ConvertLocation, Config, XcmExecutor}; - -pub type SovereignAccountOf = ( - SiblingParachainConvertsVia, - AccountId32Aliases, - ParentIsPreset, -); - -pub type AccountId = AccountId32; -pub type Balance = u128; - -parameter_types! { - pub const BlockHashCount: u64 = 250; -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl frame_system::Config for Runtime { - type Nonce = u64; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type BlockHashCount = BlockHashCount; - type AccountData = pallet_balances::AccountData; -} - -parameter_types! { - pub ExistentialDeposit: Balance = 1; - pub const MaxLocks: u32 = 50; - pub const MaxReserves: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - type Balance = Balance; - type RuntimeEvent = RuntimeEvent; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = (); - type MaxReserves = MaxReserves; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<0>; -} - -#[cfg(feature = "runtime-benchmarks")] -pub struct UniquesHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_uniques::BenchmarkHelper for UniquesHelper { - fn collection(i: u16) -> Location { - GeneralIndex(i as u128).into() - } - fn item(i: u16) -> AssetInstance { - AssetInstance::Index(i as u128) - } -} - -impl pallet_uniques::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type CollectionId = Location; - type ItemId = AssetInstance; - type Currency = Balances; - type CreateOrigin = ForeignCreatorsUnique; - type ForceOrigin = frame_system::EnsureRoot; - type CollectionDeposit = frame_support::traits::ConstU128<1_000>; - type ItemDeposit = frame_support::traits::ConstU128<1_000>; - type MetadataDepositBase = frame_support::traits::ConstU128<1_000>; - type AttributeDepositBase = frame_support::traits::ConstU128<1_000>; - type DepositPerByte = frame_support::traits::ConstU128<1>; - type StringLimit = ConstU32<64>; - type KeyLimit = ConstU32<64>; - type ValueLimit = ConstU32<128>; - type Locker = (); - type WeightInfo = (); - #[cfg(feature = "runtime-benchmarks")] - type Helper = UniquesHelper; -} - -// `EnsureOriginWithArg` impl for `CreateOrigin` which allows only XCM origins -// which are locations containing the class location. -pub struct ForeignCreatorsUnique; -impl EnsureOriginWithArg for ForeignCreatorsUnique { - type Success = AccountId; - - fn try_origin( - o: RuntimeOrigin, - a: &Location, - ) -> sp_std::result::Result { - let origin_location = pallet_xcm::EnsureXcm::::try_origin(o.clone())?; - if !a.starts_with(&origin_location) { - return Err(o) - } - SovereignAccountOf::convert_location(&origin_location).ok_or(o) - } - - #[cfg(feature = "runtime-benchmarks")] - fn try_successful_origin(a: &Location) -> Result { - Ok(pallet_xcm::Origin::Xcm(a.clone()).into()) - } -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_div(4), 0); - pub const ReservedDmpWeight: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_div(4), 0); -} - -parameter_types! { - pub const RelayLocation: Location = Location::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Kusama; - pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); - pub HereLocation: Location = Location::here(); - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); - pub Checking: (AccountId, MintLocation) = (CheckingAccount::get(), MintLocation::Local); -} - -pub type LocationToAccountId = ( - ParentIsPreset, - SiblingParachainConvertsVia, - AccountId32Aliases, - Account32Hash<(), AccountId>, -); - -pub type XcmOriginToCallOrigin = ( - SovereignSignedViaLocation, - SignedAccountId32AsNative, - XcmPassthrough, -); - -parameter_types! { - pub const UnitWeightCost: Weight = Weight::from_parts(1, 1); - pub KsmPerSecondPerByte: (AssetId, u128, u128) = (AssetId(Parent.into()), 1, 1); - pub const MaxInstructions: u32 = 100; - pub const MaxAssetsIntoHolding: u32 = 64; - pub ForeignPrefix: Location = (Parent,).into(); -} - -/// Means for transacting assets on this chain. -pub type LocalAssetTransactor = FungibleAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple pun to convert an AccountId20 Location into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We track any teleports. - Checking, ->; - -pub type XcmRouter = EnsureDecodableXcm>; -pub type Barrier = AllowUnpaidExecutionFrom; -parameter_types! { - pub NativeToken: AssetId = AssetId(Location::here()); - pub NativeTokenFilter: AssetFilter = Wild(AllOf { fun: WildFungible, id: NativeToken::get() }); - pub AssetHubLocation: Location = Location::new(1, [Parachain(crate::PARA_A_ID)]); - pub AssetHubTrustedTeleporter: (AssetFilter, Location) = (NativeTokenFilter::get(), AssetHubLocation::get()); -} - -pub type TrustedTeleporters = xcm_builder::Case; - -pub struct XcmConfig; -impl Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = XcmOriginToCallOrigin; - type IsReserve = (); - type IsTeleporter = TrustedTeleporters; - type UniversalLocation = UniversalLocation; - type Barrier = Barrier; - type Weigher = FixedWeightBounds; - type Trader = FixedRateOfFungible; - type ResponseHandler = (); - type AssetTrap = (); - type AssetLocker = PolkadotXcm; - type AssetExchanger = (); - type AssetClaims = (); - type SubscriptionService = (); - type PalletInstancesInfo = (); - type FeeManager = (); - type MaxAssetsIntoHolding = MaxAssetsIntoHolding; - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = RuntimeCall; - type SafeCallFilter = Everything; - type Aliasers = Nothing; - type TransactionalProcessor = FrameTransactionalProcessor; - type HrmpNewChannelOpenRequestHandler = (); - type HrmpChannelAcceptedHandler = (); - type HrmpChannelClosingHandler = (); -} - -impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} - -pub type LocalOriginToLocation = SignedToAccountId32; - -pub struct TrustedLockerCase(PhantomData); -impl> ContainsPair for TrustedLockerCase { - fn contains(origin: &Location, asset: &Asset) -> bool { - let (o, a) = T::get(); - a.matches(asset) && &o == origin - } -} - -parameter_types! { - pub RelayTokenForRelay: (Location, AssetFilter) = (Parent.into(), Wild(AllOf { id: AssetId(Parent.into()), fun: WildFungible })); -} - -pub type TrustedLockers = TrustedLockerCase; - -impl pallet_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = Everything; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Everything; - type Weigher = FixedWeightBounds; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type Currency = Balances; - type CurrencyMatcher = (); - type TrustedLockers = TrustedLockers; - type SovereignAccountOf = LocationToAccountId; - type MaxLockers = ConstU32<8>; - type MaxRemoteLockConsumers = ConstU32<0>; - type RemoteLockConsumerIdentifier = (); - type WeightInfo = pallet_xcm::TestWeightInfo; - type AdminOrigin = EnsureRoot; -} - -pub type ForeignCreatorsSovereignAccountOf = ( - SiblingParachainConvertsVia, - AccountId32Aliases, - ParentIsPreset, - GlobalConsensusParachainConvertsFor, -); - -// Called "Trust Backed" assets because these are generally registered by some account, and users of -// the asset assume it has some claimed backing. The pallet is called `Assets` in -// `construct_runtime` to avoid breaking changes on storage reads. -pub type TrustBackedAssetsInstance = pallet_assets::Instance1; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = AssetIdForTrustBackedAssets; - type AssetIdParameter = codec::Compact; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = EnsureRoot; - type AssetDeposit = frame_support::traits::ConstU128<1_000>; - type MetadataDepositBase = frame_support::traits::ConstU128<1_000>; - type MetadataDepositPerByte = frame_support::traits::ConstU128<1_000>; - type ApprovalDeposit = ExistentialDeposit; - type StringLimit = frame_support::traits::ConstU32<50>; - type Freezer = (); - type Extra = (); - type WeightInfo = (); - type CallbackHandle = (); - type AssetAccountDeposit = frame_support::traits::ConstU128<1_000>; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. -#[cfg(feature = "runtime-benchmarks")] -pub struct XcmBenchmarkHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { - fn create_asset_id_parameter(id: u32) -> xcm::v3::Location { - xcm::v3::Location::new(1, xcm::v3::Junction::Parachain(id)) - } -} - -/// Assets managed by some foreign location. Note: we do not declare a `ForeignAssetsCall` type, as -/// this type is used in proxy definitions. We assume that a foreign location would not want to set -/// an individual, local account as a proxy for the issuance of their assets. This issuance should -/// be managed by the foreign location's governance. -pub type ForeignAssetsInstance = pallet_assets::Instance2; -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = xcm::v3::Location; - type AssetIdParameter = xcm::v3::Location; - type Currency = Balances; - type CreateOrigin = ForeignCreators< - FromSiblingParachain, xcm::v3::Location>, - ForeignCreatorsSovereignAccountOf, - AccountId, - xcm::v3::Location, - >; - type ForceOrigin = EnsureRoot; - type AssetDeposit = frame_support::traits::ConstU128<1_000>; - type MetadataDepositBase = frame_support::traits::ConstU128<1_000>; - type MetadataDepositPerByte = frame_support::traits::ConstU128<1_000>; - type ApprovalDeposit = ExistentialDeposit; - type StringLimit = ConstU32<64>; - type Freezer = (); - type Extra = (); - type WeightInfo = (); - type CallbackHandle = (); - type AssetAccountDeposit = frame_support::traits::ConstU128<1_000>; - type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = XcmBenchmarkHelper; -} - -impl parachain_info::Config for Runtime {} - -type Block = frame_system::mocking::MockBlock; - -construct_runtime!( - pub enum Runtime - { - System: frame_system, - ParachainInfo: parachain_info, - Balances: pallet_balances, - MsgQueue: mock_msg_queue, - PolkadotXcm: pallet_xcm, - ForeignUniques: pallet_uniques, - Assets: pallet_assets:: = 50, - ForeignAssets: pallet_assets:: = 53, - } -); diff --git a/xcm-simulator/src/relay_chain.rs b/xcm-simulator/src/relay_chain.rs index 3728dd1d2..4d01f0ab2 100644 --- a/xcm-simulator/src/relay_chain.rs +++ b/xcm-simulator/src/relay_chain.rs @@ -146,7 +146,7 @@ type LocalOriginConverter = ( parameter_types! { pub const BaseXcmWeight: Weight = Weight::from_parts(1_000, 1_000); pub TokensPerSecondPerByte: (AssetId, u128, u128) = - (AssetId(TokenLocation::get()), 1_000_000_000_000, 1024 * 1024); + (TokenLocation::get().into(), 1_000_000_000_000, 1024 * 1024); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; } diff --git a/xcm-simulator/src/tests/laosish_xcm.rs b/xcm-simulator/src/tests/laosish_xcm.rs index 3f380bfc1..fcdcee8c8 100644 --- a/xcm-simulator/src/tests/laosish_xcm.rs +++ b/xcm-simulator/src/tests/laosish_xcm.rs @@ -1,5 +1,8 @@ use super::*; +pub type AssetHubAssetsCall = + pallet_assets::Call; + #[test] fn alish_has_tokens() { MockNet::reset(); @@ -109,11 +112,9 @@ fn ump_transfer_balance() { } #[test] -fn xcmp_create_foreign_asset() { +fn xcmp_create_foreign_asset_in_para_b() { MockNet::reset(); - assert_eq!(laosish::configs::xcm_config::ASSET_HUB_ID, PARA_B_ID); - let para_a_native_asset_location = xcm::v3::Location::new(1, [xcm::v3::Junction::Parachain(PARA_LAOSISH_ID)]); @@ -126,7 +127,7 @@ fn xcmp_create_foreign_asset() { Laosish::execute_with(|| { assert_ok!(LaosishPalletXcm::send_xcm( Here, - (Parent, Parachain(laosish::configs::xcm_config::ASSET_HUB_ID)), + (Parent, Parachain(PARA_B_ID)), Xcm(vec![Transact { origin_kind: OriginKind::Xcm, require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024), @@ -143,40 +144,73 @@ fn xcmp_create_foreign_asset() { }); } -#[ignore] // TODO #[test] -fn xcmp_teleport_native_assets_to_asset_hub() { +fn roundtrip_teleport_laosish_to_assethub() { MockNet::reset(); - let para_a_native_asset_location = - xcm::v3::Location::new(1, [xcm::v3::Junction::Parachain(PARA_LAOSISH_ID)]); + let laosish_native_asset_location = Location::new(1, [Junction::Parachain(PARA_LAOSISH_ID)]); - let create_asset = parachain::RuntimeCall::ForeignAssets(ForeignAssetsCall::create { - id: para_a_native_asset_location, + let create_asset = asset_hub::RuntimeCall::ForeignAssets(AssetHubAssetsCall::create { + id: laosish_native_asset_location, admin: sibling_account_id(PARA_LAOSISH_ID), - min_balance: 1000, + min_balance: 1, }); + let teleport_amount_1 = 100; + let teleport_amount_2 = 10; + + let alith: laosish::AccountId = ALITH.into(); + Laosish::execute_with(|| { assert_ok!(LaosishPalletXcm::send_xcm( Here, - (Parent, Parachain(laosish::configs::xcm_config::ASSET_HUB_ID)), + (Parent, Parachain(PARA_ASSETHUB_ID)), Xcm(vec![Transact { origin_kind: OriginKind::Xcm, require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024), call: create_asset.encode().into(), }]), )); + + assert_eq!(laosish::Balances::free_balance(alith), INITIAL_BALANCE); + + assert_ok!(LaosishPalletXcm::limited_teleport_assets( + laosish::RuntimeOrigin::signed(ALITH.into()), + Box::new((Parent, Parachain(PARA_ASSETHUB_ID)).into()), + Box::new(AccountId32 { network: None, id: ALICE.into() }.into()), + Box::new((Here, teleport_amount_1).into()), + 0, + WeightLimit::Unlimited, + )); + + assert_eq!(laosish::Balances::free_balance(alith), INITIAL_BALANCE - teleport_amount_1); }); - let amount = 1; + AssetHub::execute_with(|| { + assert_eq!( + asset_hub::ForeignAssets::balance((Parent, Parachain(PARA_LAOSISH_ID)).into(), &ALICE), + teleport_amount_1 + ); - assert_ok!(LaosishPalletXcm::limited_teleport_assets( - laosish::RuntimeOrigin::signed(ALITH.into()), - Box::new(Parachain(laosish::configs::xcm_config::ASSET_HUB_ID).into()), - Box::new(AccountId32 { network: None, id: ALICE.into() }.into()), - Box::new((Here, amount).into()), - 0, - WeightLimit::Limited(Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024)), - )); + assert_ok!(AssetHubPalletXcm::limited_teleport_assets( + asset_hub::RuntimeOrigin::signed(ALICE), + Box::new((Parent, Parachain(PARA_LAOSISH_ID)).into()), + Box::new(AccountKey20 { network: None, key: ALITH }.into()), + Box::new(((Parent, Parachain(PARA_LAOSISH_ID)), teleport_amount_2).into()), + 0, + WeightLimit::Unlimited, + )); + + assert_eq!( + asset_hub::ForeignAssets::balance((Parent, Parachain(PARA_LAOSISH_ID)).into(), &ALICE), + teleport_amount_1 - teleport_amount_2 + ); + }); + + Laosish::execute_with(|| { + assert_eq!( + laosish::Balances::free_balance(alith), + INITIAL_BALANCE - (teleport_amount_1 - teleport_amount_2) + ); + }); } diff --git a/xcm-simulator/src/tests/mod.rs b/xcm-simulator/src/tests/mod.rs index 02d4b9c3d..d50b09bab 100644 --- a/xcm-simulator/src/tests/mod.rs +++ b/xcm-simulator/src/tests/mod.rs @@ -10,8 +10,6 @@ mod laosish_xcm; pub type ForeignAssetsCall = pallet_assets::Call; -pub type TeleportAssetsCall = - pallet_assets::Call; pub type TrustBackedAssetsCall = pallet_assets::Call; @@ -708,44 +706,3 @@ fn xcmp_create_foreign_asset() { ))); }); } - -#[ignore] // TODO -#[test] -fn teleport_para_teleport_to_para_a() { - MockNet::reset(); - - let para_teleporter_native_asset_location = - xcm::v3::Location::new(1, [xcm::v3::Junction::Parachain(PARA_TELEPORTER_ID)]); - - let create_asset = - parachain_teleporter::RuntimeCall::ForeignAssets(TeleportAssetsCall::create { - id: para_teleporter_native_asset_location, - admin: sibling_account_id(PARA_TELEPORTER_ID), - min_balance: 1000, - }); - - ParaTeleporter::execute_with(|| { - assert_ok!(ParachainTeleporterPalletXcm::send_xcm( - Here, - (Parent, Parachain(PARA_A_ID)), - Xcm(vec![Transact { - origin_kind: OriginKind::Xcm, - require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024), - call: create_asset.encode().into(), - }]), - )); - - let amount = 1_000; - - assert_ok!(ParachainTeleporterPalletXcm::limited_teleport_assets( - parachain_teleporter::RuntimeOrigin::signed(ALICE), - Box::new(Parachain(PARA_A_ID).into()), - Box::new(AccountId32 { network: None, id: ALICE.into() }.into()), - Box::new((Here, amount).into()), - 0, - WeightLimit::Limited(Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024)), - )); - - assert_eq!(parachain_teleporter::Balances::free_balance(ALICE), INITIAL_BALANCE - amount); - }); -}