From 874e7952d0de3a203a663014fd155d48eb66d76e Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 21 Nov 2023 20:18:32 +0100 Subject: [PATCH 01/27] change interface --- description/Cargo.toml | 10 +-- description/src/description.rs | 18 ++-- description/src/lib.rs | 11 ++- description/src/type_example/mod.rs | 77 +---------------- .../{rust_type.rs => rust_value.rs} | 6 +- description/src/type_example/scale_value.rs | 85 +++++++++++++++++-- typegen/examples/polkadot.rs | 2 - 7 files changed, 107 insertions(+), 102 deletions(-) rename description/src/type_example/{rust_type.rs => rust_value.rs} (98%) diff --git a/description/Cargo.toml b/description/Cargo.toml index 933526a..3023c75 100644 --- a/description/Cargo.toml +++ b/description/Cargo.toml @@ -10,12 +10,7 @@ edition = "2021" [features] default = ["type-example"] -type-example = [ - "dep:scale-value", - "dep:proc-macro2", - "dep:rand_chacha", - "dep:rand", -] +type-example = ["dep:scale-value", "dep:proc-macro2", "dep:rand_chacha", "dep:rand"] [dependencies] anyhow = { workspace = true } @@ -29,8 +24,7 @@ rand_chacha = { version = "0.3.1", optional = true } rand = { version = "0.8.5", optional = true } scale-typegen = { workspace = true } -quote.workspace = true - +quote = { workspace = true } [dev-dependencies] indoc = "2" diff --git a/description/src/description.rs b/description/src/description.rs index 67464e7..b477f7c 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -4,11 +4,16 @@ use scale_info::{ TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, }; -use crate::transformer::Transformer; +use crate::{description, transformer::Transformer}; use super::formatting::format_type_description; -pub fn type_description(type_id: u32, type_registry: &PortableRegistry) -> anyhow::Result { +/// if format is enabled, `format_type_description` is applied to the end result. +pub fn type_description( + type_id: u32, + type_registry: &PortableRegistry, + format: bool, +) -> anyhow::Result { fn return_type_name_on_recurse( _type_id: u32, ty: &Type, @@ -26,9 +31,12 @@ pub fn type_description(type_id: u32, type_registry: &PortableRegistry) -> anyho (), type_registry, ); - let description = transformer.resolve(type_id)?; - let formatted = format_type_description(&description); - Ok(formatted) + let mut description = transformer.resolve(type_id)?; + if format { + description = format_type_description(&description); + } + + Ok(description) } fn ty_description( diff --git a/description/src/lib.rs b/description/src/lib.rs index 56c5edb..3d1e64d 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -5,7 +5,14 @@ mod transformer; #[cfg(feature = "type-example")] pub mod type_example; +#[cfg(feature = "type-example")] +pub use type_example::{ + rust_value::{example as rust_value, example_from_seed as rust_value_from_seed}, + scale_value::{example as scale_value, example_from_seed as scale_value_from_seed}, +}; + pub use description::type_description; +pub use formatting::format_type_description; #[cfg(test)] mod tests { @@ -37,7 +44,7 @@ mod tests { let (type_id, type_registry) = make_type::(); assert_eq!( - type_description(type_id, &type_registry).unwrap(), + type_description(type_id, &type_registry, true).unwrap(), indoc! { "Human { name: String, @@ -122,7 +129,7 @@ mod tests { let (type_id, type_registry) = make_type::(); assert_eq!( - type_description(type_id, &type_registry).unwrap(), + type_description(type_id, &type_registry, true).unwrap(), indoc! { "Human { name: String, diff --git a/description/src/type_example/mod.rs b/description/src/type_example/mod.rs index 04833aa..56e2107 100644 --- a/description/src/type_example/mod.rs +++ b/description/src/type_example/mod.rs @@ -1,75 +1,2 @@ -mod rust_type; -mod scale_value; - -pub use rust_type::rust_type_example; -pub use scale_value::scale_value_example; - -#[cfg(test)] -mod tests { - - use pretty_assertions::assert_eq; - use scale_info::{PortableRegistry, TypeInfo}; - - use crate::type_example::scale_value::scale_value_example_from_seed; - - use super::scale_value_example; - - fn make_type() -> (u32, PortableRegistry) { - let mut registry = scale_info::Registry::new(); - let m = scale_info::MetaType::new::(); - let ty = registry.register_type(&m); - (ty.id, registry.into()) - } - - /// for certain types we cannot create any valid scale_value type examples because they are infinitely nested. We need to return an error in those cases. - /// Otherwise we would get a stack overflow and the program crashes... - #[test] - fn recursion_does_not_cause_stack_overflow() { - #[allow(unused)] - #[derive(TypeInfo)] - struct Human { - name: String, - mom: Box, - dad: Box, - } - let (id, types) = make_type::(); - // Make sure recursion does not panic. An error should be yielded instead. - assert!(scale_value_example(id, &types).is_err()); - } - - #[test] - fn seeding_works() { - #[allow(unused)] - #[derive(TypeInfo)] - struct Human { - name: String, - age: u32, - male: bool, - eye_color: Color, - } - - #[allow(unused)] - #[derive(TypeInfo)] - enum Color { - Black, - White, - Green(i32), - } - - let (id, types) = make_type::(); - - let a1 = scale_value_example_from_seed(id, &types, 20).unwrap(); - let a2 = scale_value_example_from_seed(id, &types, 20).unwrap(); - let a3 = scale_value_example_from_seed(id, &types, 20).unwrap(); - let b1 = scale_value_example_from_seed(id, &types, 30).unwrap(); - let b2 = scale_value_example_from_seed(id, &types, 30).unwrap(); - - // The examples can be checked manually by comparing them side by side: - // println!("{b2}\n{a1}"); - - assert_eq!(a1, a2); - assert_eq!(a1, a3); - assert_eq!(b1, b2); - assert_ne!(a1, b1); - } -} +pub mod rust_value; +pub mod scale_value; diff --git a/description/src/type_example/rust_type.rs b/description/src/type_example/rust_value.rs similarity index 98% rename from description/src/type_example/rust_type.rs rename to description/src/type_example/rust_value.rs index a95ce8e..feaafd0 100644 --- a/description/src/type_example/rust_type.rs +++ b/description/src/type_example/rust_value.rs @@ -100,15 +100,15 @@ impl<'a> CodeTransformer<'a> { } } -pub fn rust_type_example( +pub fn example( type_id: u32, types: &PortableRegistry, settings_for_path_resolver: TypeGeneratorSettings, ) -> anyhow::Result { - rust_type_example_from_seed(type_id, types, settings_for_path_resolver, 42, None, None) + example_from_seed(type_id, types, settings_for_path_resolver, 42, None, None) } -pub fn rust_type_example_from_seed( +pub fn example_from_seed( type_id: u32, types: &PortableRegistry, settings_for_path_resolver: TypeGeneratorSettings, diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index fa35c35..2f3a2ac 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -11,16 +11,12 @@ use crate::transformer::Transformer; type ValueTransformer<'a> = Transformer<'a, Value, RefCell>; -pub fn scale_value_example(id: u32, types: &PortableRegistry) -> anyhow::Result { +pub fn example(id: u32, types: &PortableRegistry) -> anyhow::Result { const MAGIC_SEED: u64 = 42; - scale_value_example_from_seed(id, types, MAGIC_SEED) + example_from_seed(id, types, MAGIC_SEED) } -pub fn scale_value_example_from_seed( - id: u32, - types: &PortableRegistry, - seed: u64, -) -> anyhow::Result { +pub fn example_from_seed(id: u32, types: &PortableRegistry, seed: u64) -> anyhow::Result { fn error_on_recurse( _type_id: u32, ty: &Type, @@ -158,3 +154,78 @@ fn fields_type_example( )), } } + +#[cfg(test)] +mod tests { + + use pretty_assertions::assert_eq; + use scale_info::{PortableRegistry, TypeInfo}; + + use crate::formatting::format_type_description; + + use super::example; + use super::example_from_seed; + + fn make_type() -> (u32, PortableRegistry) { + let mut registry = scale_info::Registry::new(); + let m = scale_info::MetaType::new::(); + let ty = registry.register_type(&m); + (ty.id, registry.into()) + } + + /// for certain types we cannot create any valid scale_value type examples because they are infinitely nested. We need to return an error in those cases. + /// Otherwise we would get a stack overflow and the program crashes... + #[test] + fn recursion_does_not_cause_stack_overflow() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Human { + name: String, + mom: Box, + dad: Box, + } + let (id, types) = make_type::(); + // Make sure recursion does not panic. An error should be yielded instead. + assert!(example(id, &types).is_err()); + } + + #[test] + fn seeding_works() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Human { + name: String, + age: u32, + male: bool, + eye_color: Color, + } + + #[allow(unused)] + #[derive(TypeInfo)] + enum Color { + Black, + White, + Green(i32), + } + + let (id, types) = make_type::(); + + let s = example_from_seed(id, &types, 2).unwrap().to_string(); + let s = format_type_description(&s); + println!("{}", s); + + let a1 = example_from_seed(id, &types, 2).unwrap(); + let a2 = example_from_seed(id, &types, 2).unwrap(); + let a3 = example_from_seed(id, &types, 2).unwrap(); + let b1 = example_from_seed(id, &types, 3).unwrap(); + let b2 = example_from_seed(id, &types, 3).unwrap(); + + // The examples can be checked manually by comparing them side by side: + // println!("{b2}\n{a1}"); + + assert_eq!(a1, a2); + assert_eq!(a1, a3); + assert_eq!(b1, b2); + assert_ne!(a1, b1); + } +} diff --git a/typegen/examples/polkadot.rs b/typegen/examples/polkadot.rs index 5a67d80..50a5e67 100644 --- a/typegen/examples/polkadot.rs +++ b/typegen/examples/polkadot.rs @@ -14,8 +14,6 @@ pub struct DecodedBits { } /// This example shows how to use metadata from a polkadot node to generate rust types. -/// -/// Some types might need pub fn main() { let type_registry = read_registry_from_json(); let settings = TypeGeneratorSettings::default() From ca78ad5da0c5a8c59d2a3c5d86f9830f9b543b00 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 22 Nov 2023 13:20:43 +0100 Subject: [PATCH 02/27] recursive derives --- description/src/type_example/rust_value.rs | 2 +- typegen/src/tests/mod.rs | 3 + typegen/src/typegen/mod.rs | 25 +-- typegen/src/typegen/settings/derives.rs | 168 +++++++++++++++++++-- typegen/src/typegen/settings/mod.rs | 1 - typegen/src/utils.rs | 8 + 6 files changed, 181 insertions(+), 26 deletions(-) diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index feaafd0..018d264 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -58,7 +58,7 @@ impl<'a> CodeTransformer<'a> { let has_unused_type_params = self .state .type_generator - .create_type_ir(ty) + .create_type_ir(ty, &Default::default()) // Note: derives not important here. .map_err(|e| anyhow!("{e}"))? .map(|e| e.type_params.has_unused_type_params()) .unwrap_or(false); diff --git a/typegen/src/tests/mod.rs b/typegen/src/tests/mod.rs index 61f02c6..4b687e6 100644 --- a/typegen/src/tests/mod.rs +++ b/typegen/src/tests/mod.rs @@ -969,6 +969,7 @@ fn apply_user_defined_derives_for_specific_types() { parse_quote!(scale_typegen::tests::B), [parse_quote!(Hash)], [parse_quote!(#[some_attribute])], + false, ); settings.derives.extend_for_type( parse_quote!(scale_typegen::tests::C), @@ -978,6 +979,7 @@ fn apply_user_defined_derives_for_specific_types() { parse_quote!(PartialOrd), ], [], + false, ); let code = Testgen::new().with::().gen_tests_mod(settings); @@ -1028,6 +1030,7 @@ fn opt_out_from_default_derives() { parse_quote!(scale_typegen::tests::B), vec![parse_quote!(Hash)], vec![parse_quote!(#[some_other_attribute])], + false, ); let settings = TypeGeneratorSettings { diff --git a/typegen/src/typegen/mod.rs b/typegen/src/typegen/mod.rs index 04f7bba..a3c90e6 100644 --- a/typegen/src/typegen/mod.rs +++ b/typegen/src/typegen/mod.rs @@ -3,7 +3,7 @@ use crate::{Derives, TypegenError}; use self::{ ir::module_ir::ModuleIR, ir::type_ir::{CompositeFieldIR, CompositeIR, CompositeIRKind, EnumIR, TypeIR, TypeIRKind}, - settings::TypeGeneratorSettings, + settings::{derives::FlatDerivesRegistry, TypeGeneratorSettings}, type_params::TypeParameters, type_path::TypeParameter, }; @@ -45,6 +45,12 @@ impl<'a> TypeGenerator<'a> { /// Generate a module containing all types defined in the supplied type registry. pub fn generate_types_mod(&self) -> Result { + let flat_derives_registry = self + .settings + .derives + .clone() + .flatten_recursive_derives(self.type_registry)?; + let mut root_mod = ModuleIR::new( self.settings.types_mod_ident.clone(), self.settings.types_mod_ident.clone(), @@ -65,7 +71,7 @@ impl<'a> TypeGenerator<'a> { } // if the type is not a builtin type, insert it into the respective module - if let Some(type_ir) = self.create_type_ir(&ty.ty)? { + if let Some(type_ir) = self.create_type_ir(&ty.ty, &flat_derives_registry)? { // Create the module this type should go into let innermost_module = root_mod.get_or_insert_submodule(namespace); innermost_module.types.insert(path.clone(), type_ir); @@ -75,7 +81,11 @@ impl<'a> TypeGenerator<'a> { Ok(root_mod) } - pub fn create_type_ir(&self, ty: &Type) -> Result, TypegenError> { + pub fn create_type_ir( + &self, + ty: &Type, + flat_derives_registry: &FlatDerivesRegistry, + ) -> Result, TypegenError> { // if the type is some builtin, early return, we are only interested in generating structs and enums. if !matches!(ty.type_def, TypeDef::Composite(_) | TypeDef::Variant(_)) { return Ok(None); @@ -124,7 +134,7 @@ impl<'a> TypeGenerator<'a> { _ => unreachable!("Other variants early return before. qed."), }; - let mut derives = self.type_derives(ty)?; + let mut derives = flat_derives_registry.resolve_derives_for_type(ty)?; if could_derive_as_compact { self.add_as_compact_derive(&mut derives); } @@ -237,13 +247,6 @@ impl<'a> TypeGenerator<'a> { self.settings.derives.default_derives() } - pub fn type_derives(&self, ty: &Type) -> Result { - let joined_path = ty.path.segments.join("::"); - let ty_path: syn::TypePath = syn::parse_str(&joined_path)?; - let derives = self.settings.derives.resolve(&ty_path); - Ok(derives) - } - /// Adds a AsCompact derive, if a path to AsCompact trait/derive macro set in settings. fn add_as_compact_derive(&self, derives: &mut Derives) { if let Some(compact_as_type_path) = &self.settings.compact_as_type_path { diff --git a/typegen/src/typegen/settings/derives.rs b/typegen/src/typegen/settings/derives.rs index 81337d7..adda25c 100644 --- a/typegen/src/typegen/settings/derives.rs +++ b/typegen/src/typegen/settings/derives.rs @@ -1,6 +1,9 @@ use std::collections::{HashMap, HashSet}; use quote::ToTokens; +use scale_info::{form::PortableForm, PortableRegistry, Type}; + +use crate::{utils::syn_type_path, TypegenError}; /// A struct containing the derives that we'll be applying to types; /// a combination of some common derives for all types, plus type @@ -9,6 +12,7 @@ use quote::ToTokens; pub struct DerivesRegistry { default_derives: Derives, specific_type_derives: HashMap, + recursive_type_derives: HashMap, } impl DerivesRegistry { @@ -33,8 +37,13 @@ impl DerivesRegistry { ty: syn::TypePath, derives: impl IntoIterator, attributes: impl IntoIterator, + recursive: bool, ) { - let type_derives = self.specific_type_derives.entry(ty).or_default(); + let type_derives = if recursive { + self.recursive_type_derives.entry(ty).or_default() + } else { + self.specific_type_derives.entry(ty).or_default() + }; type_derives.derives.extend(derives); type_derives.attributes.extend(attributes); } @@ -43,18 +52,6 @@ impl DerivesRegistry { pub fn default_derives(&self) -> &Derives { &self.default_derives } - - /// Resolve the derives for a generated type. Includes: - /// - The default derives for all types e.g. `scale::Encode, scale::Decode` - /// - Any user-defined derives for all types via `generated_type_derives` - /// - Any user-defined derives for this specific type - pub fn resolve(&self, ty: &syn::TypePath) -> Derives { - let mut resolved_derives = self.default_derives.clone(); - if let Some(specific) = self.specific_type_derives.get(ty) { - resolved_derives.extend_from(specific.clone()); - } - resolved_derives - } } /// A struct storing the set of derives and derive attributes that we'll apply @@ -136,3 +133,148 @@ impl ToTokens for Derives { } } } + +/// This is like a DerivesRegistry, but the recursive type derives have been flattened out into the specific_type_derives. +#[derive(Debug, Clone, Default)] +pub struct FlatDerivesRegistry { + default_derives: Derives, + specific_type_derives: HashMap, +} + +impl FlatDerivesRegistry { + /// Resolve the derives for a specific type. + pub fn resolve(&self, ty: &syn::TypePath) -> Derives { + let mut resolved_derives = self.default_derives.clone(); + if let Some(specific) = self.specific_type_derives.get(ty) { + resolved_derives.extend_from(specific.clone()); + } + resolved_derives + } + + pub fn resolve_derives_for_type( + &self, + ty: &Type, + ) -> Result { + Ok(self.resolve(&syn_type_path(ty)?)) + } +} + +impl DerivesRegistry { + pub fn flatten_recursive_derives( + self, + types: &PortableRegistry, + ) -> Result { + let DerivesRegistry { + default_derives, + mut specific_type_derives, + mut recursive_type_derives, + } = self; + + if recursive_type_derives.is_empty() { + return Ok(FlatDerivesRegistry { + default_derives, + specific_type_derives, + }); + } + + // Build a mapping of type ids to syn paths for all types in the registry: + let mut syn_path_for_id: HashMap = types + .types + .iter() + .map(|t| { + let path = syn_type_path(&t.ty)?; + Ok((t.id, path)) + }) + .collect::>()?; + + // Create an empty map of derives that we are about to fill: + let mut add_derives_for_id: HashMap = HashMap::new(); + + // Check for each type in the registry if it is the top level of + for ty in types.types.iter() { + let path = syn_path_for_id.get(&ty.id).expect("inserted above; qed;"); + let Some(recursive_derives) = recursive_type_derives.remove(&path) else { + continue; + }; + // The collected_type_ids contain the id of the type itself and all ids of its fields: + let mut collected_type_ids: HashSet = HashSet::new(); + collect_type_ids(ty.id, types, &mut collected_type_ids); + + // We collect the derives for each type id in the add_derives_for_id HashMap. + for id in collected_type_ids { + add_derives_for_id + .entry(id) + .or_default() + .extend_from(recursive_derives.clone()); + } + } + + // Merge all the recursively obtained derives with the existing derives for the types. + for (id, derived_to_add) in add_derives_for_id { + let path = syn_path_for_id + .remove(&id) + .expect("syn_path_for_id contains all type ids; qed;"); + specific_type_derives + .entry(path) + .or_default() + .extend_from(derived_to_add); + } + + Ok(FlatDerivesRegistry { + default_derives, + specific_type_derives, + }) + } +} + +fn collect_type_ids(id: u32, types: &PortableRegistry, collected_types: &mut HashSet) { + // Recursion protection: + if collected_types.contains(&id) { + return; + } + + // Add the type id itself as well: + collected_types.insert(id); + let ty = types + .resolve(id) + .expect("Should contain this id, if Registry not corrupted"); + + // Collect the types that are passed as type params (Question/Note: Is this necessary? Maybe not...) + for param in ty.type_params.iter() { + if let Some(id) = param.ty.map(|e| e.id) { + collect_type_ids(id, types, collected_types); + } + } + + // Collect ids depending on the types structure: + match &ty.type_def { + scale_info::TypeDef::Composite(def) => { + for f in def.fields.iter() { + collect_type_ids(f.ty.id, types, collected_types); + } + } + scale_info::TypeDef::Variant(def) => { + for v in def.variants.iter() { + for f in v.fields.iter() { + collect_type_ids(f.ty.id, types, collected_types); + } + } + } + scale_info::TypeDef::Sequence(def) => { + collect_type_ids(def.type_param.id, types, collected_types); + } + scale_info::TypeDef::Array(def) => { + collect_type_ids(def.type_param.id, types, collected_types); + } + scale_info::TypeDef::Tuple(def) => { + for f in def.fields.iter() { + collect_type_ids(f.id, types, collected_types); + } + } + scale_info::TypeDef::Primitive(_) => {} + scale_info::TypeDef::Compact(def) => { + collect_type_ids(def.type_param.id, types, collected_types); + } + scale_info::TypeDef::BitSequence(_) => {} + } +} diff --git a/typegen/src/typegen/settings/mod.rs b/typegen/src/typegen/settings/mod.rs index 22e5e09..df6c45a 100644 --- a/typegen/src/typegen/settings/mod.rs +++ b/typegen/src/typegen/settings/mod.rs @@ -1,5 +1,4 @@ use derives::DerivesRegistry; - use proc_macro2::Ident; use substitutes::TypeSubstitutes; use syn::parse_quote; diff --git a/typegen/src/utils.rs b/typegen/src/utils.rs index d724e4c..185ecc5 100644 --- a/typegen/src/utils.rs +++ b/typegen/src/utils.rs @@ -2,6 +2,14 @@ use scale_info::{form::PortableForm, Field, PortableRegistry, Type, TypeDef, Typ use smallvec::{smallvec, SmallVec}; use std::collections::HashMap; +use crate::TypegenError; + +pub fn syn_type_path(ty: &Type) -> Result { + let joined_path = ty.path.segments.join("::"); + let ty_path: syn::TypePath = syn::parse_str(&joined_path)?; + Ok(ty_path) +} + pub fn ensure_unique_type_paths(types: &mut PortableRegistry) { let mut types_with_same_type_path = HashMap::<&[String], SmallVec<[u32; 2]>>::new(); From 4fe27fae678d7b55b2589e3ebe6b73732079a127 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 22 Nov 2023 13:50:57 +0100 Subject: [PATCH 03/27] added test and comments --- description/src/description.rs | 2 +- typegen/src/tests/mod.rs | 100 +++++++++++++++++++++++- typegen/src/typegen/settings/derives.rs | 44 +++++++---- 3 files changed, 129 insertions(+), 17 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index b477f7c..02e8d4d 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -4,7 +4,7 @@ use scale_info::{ TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, }; -use crate::{description, transformer::Transformer}; +use crate::transformer::Transformer; use super::formatting::format_type_description; diff --git a/typegen/src/tests/mod.rs b/typegen/src/tests/mod.rs index 4b687e6..dcb0427 100644 --- a/typegen/src/tests/mod.rs +++ b/typegen/src/tests/mod.rs @@ -1012,7 +1012,103 @@ fn apply_user_defined_derives_for_specific_types() { } #[test] -fn opt_out_from_default_derives() { +fn apply_recursive_derives() { + use std::collections::BTreeMap; + + #[allow(unused)] + #[derive(TypeInfo)] + struct Human { + organ_status: BTreeMap, + profession: Profession, + organs: Vec, + } + + #[allow(unused)] + #[derive(TypeInfo)] + enum Organ { + Heart, + Stomach, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct Status { + damage: Compact, + } + + #[allow(unused)] + #[derive(TypeInfo)] + enum Profession { + Student { college: String }, + Programmer, + } + + let mut derives = DerivesRegistry::new(); + + derives.extend_for_type( + parse_quote!(scale_typegen::tests::Human), + vec![parse_quote!(Reflect)], + vec![parse_quote!(#[is_human])], + false, + ); + + derives.extend_for_type( + parse_quote!(scale_typegen::tests::Human), + vec![parse_quote!(Clone)], + vec![parse_quote!(#[is_nice])], + true, + ); + + let settings = TypeGeneratorSettings { + derives, + ..subxt_settings() + }; + let code = Testgen::new().with::().gen_tests_mod(settings); + + let expected_code = quote! { + pub mod tests { + use super::root; + #[derive(Clone, Reflect)] + #[is_human] + #[is_nice] + pub struct Human { + pub organ_status: ::subxt_path::utils::KeyedVec< + root::scale_typegen::tests::Organ, + root::scale_typegen::tests::Status + >, + pub profession: root::scale_typegen::tests::Profession, + pub organs: ::std::vec::Vec, + } + #[derive(Clone)] + #[is_nice] + pub enum Organ { + #[codec(index = 0)] + Heart, + #[codec(index = 1)] + Stomach, + } + #[derive(Clone)] + #[is_nice] + pub enum Profession { + #[codec(index = 0)] + Student { college: ::std::string::String , }, + #[codec(index = 1)] + Programmer, + } + #[derive(Clone)] + #[is_nice] + pub struct Status { + #[codec(compact)] + pub damage: ::core::primitive::u32, + } + } + }; + + assert_eq!(code.to_string(), expected_code.to_string()); +} + +#[test] +fn apply_derives() { #[allow(unused)] #[derive(TypeInfo)] struct A(B); @@ -1060,7 +1156,7 @@ fn opt_out_from_default_derives() { /// By default a BTreeMap would be replaced by a KeyedVec. /// This test demonstrates that it does not happen if we opt out of default type substitutes. #[test] -fn opt_out_from_default_substitutes() { +fn apply_custom_substitutes() { use std::collections::BTreeMap; #[allow(unused)] diff --git a/typegen/src/typegen/settings/derives.rs b/typegen/src/typegen/settings/derives.rs index adda25c..1f60b13 100644 --- a/typegen/src/typegen/settings/derives.rs +++ b/typegen/src/typegen/settings/derives.rs @@ -32,6 +32,9 @@ impl DerivesRegistry { } /// Insert derives to be applied to a specific generated type. + /// + /// The `recursive` flag can be set if child types should also receive the given derives/attributes. + /// Child types are all types that are mentioned as fields or type parameters of the type. pub fn extend_for_type( &mut self, ty: syn::TypePath, @@ -134,7 +137,9 @@ impl ToTokens for Derives { } } -/// This is like a DerivesRegistry, but the recursive type derives have been flattened out into the specific_type_derives. +/// This is like a DerivesRegistry, but the recursive type derives have been flattened out into specific_type_derives. +/// +/// Can be constructed properly using a DerivesRegistry and a PortableRegistry with `DerivesRegistry::flatten_recursive_derives()`. #[derive(Debug, Clone, Default)] pub struct FlatDerivesRegistry { default_derives: Derives, @@ -142,7 +147,7 @@ pub struct FlatDerivesRegistry { } impl FlatDerivesRegistry { - /// Resolve the derives for a specific type. + /// Resolve the derives for a specific type path. pub fn resolve(&self, ty: &syn::TypePath) -> Derives { let mut resolved_derives = self.default_derives.clone(); if let Some(specific) = self.specific_type_derives.get(ty) { @@ -151,6 +156,7 @@ impl FlatDerivesRegistry { resolved_derives } + /// Resolve the derives for a specific type. pub fn resolve_derives_for_type( &self, ty: &Type, @@ -160,6 +166,8 @@ impl FlatDerivesRegistry { } impl DerivesRegistry { + /// Flattens out the recursive derives into specific derives. + /// For this it needs to have a PortableRegistry that it can traverse recursively. pub fn flatten_recursive_derives( self, types: &PortableRegistry, @@ -181,9 +189,15 @@ impl DerivesRegistry { let mut syn_path_for_id: HashMap = types .types .iter() - .map(|t| { - let path = syn_type_path(&t.ty)?; - Ok((t.id, path)) + .filter_map(|t| { + if t.ty.path.is_empty() { + None + } else { + match syn_type_path(&t.ty) { + Ok(path) => Some(Ok((t.id, path))), + Err(err) => Some(Err(err)), + } + } }) .collect::>()?; @@ -192,8 +206,11 @@ impl DerivesRegistry { // Check for each type in the registry if it is the top level of for ty in types.types.iter() { - let path = syn_path_for_id.get(&ty.id).expect("inserted above; qed;"); - let Some(recursive_derives) = recursive_type_derives.remove(&path) else { + let Some(path) = syn_path_for_id.get(&ty.id) else { + // this is only the case for types with empty path (i.e. builtin types). + continue; + }; + let Some(recursive_derives) = recursive_type_derives.remove(path) else { continue; }; // The collected_type_ids contain the id of the type itself and all ids of its fields: @@ -211,13 +228,12 @@ impl DerivesRegistry { // Merge all the recursively obtained derives with the existing derives for the types. for (id, derived_to_add) in add_derives_for_id { - let path = syn_path_for_id - .remove(&id) - .expect("syn_path_for_id contains all type ids; qed;"); - specific_type_derives - .entry(path) - .or_default() - .extend_from(derived_to_add); + if let Some(path) = syn_path_for_id.remove(&id) { + specific_type_derives + .entry(path) + .or_default() + .extend_from(derived_to_add); + } } Ok(FlatDerivesRegistry { From ce60070bd1e1f04de19127387b01f8f5ed8a4026 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 22 Nov 2023 14:06:15 +0100 Subject: [PATCH 04/27] readd test --- description/src/type_example/mod.rs | 68 +++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/description/src/type_example/mod.rs b/description/src/type_example/mod.rs index 56e2107..404bb34 100644 --- a/description/src/type_example/mod.rs +++ b/description/src/type_example/mod.rs @@ -1,2 +1,70 @@ pub mod rust_value; pub mod scale_value; + +#[cfg(test)] +mod tests { + + use pretty_assertions::assert_eq; + use scale_info::{PortableRegistry, TypeInfo}; + + use crate::{scale_value, scale_value_from_seed}; + + fn make_type() -> (u32, PortableRegistry) { + let mut registry = scale_info::Registry::new(); + let m = scale_info::MetaType::new::(); + let ty = registry.register_type(&m); + (ty.id, registry.into()) + } + + /// for certain types we cannot create any valid scale_value type examples because they are infinitely nested. We need to return an error in those cases. + /// Otherwise we would get a stack overflow and the program crashes... + #[test] + fn recursion_does_not_cause_stack_overflow() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Human { + name: String, + mom: Box, + dad: Box, + } + let (id, types) = make_type::(); + // Make sure recursion does not panic. An error should be yielded instead. + assert!(scale_value(id, &types).is_err()); + } + + #[test] + fn seeding_works() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Human { + name: String, + age: u32, + male: bool, + eye_color: Color, + } + + #[allow(unused)] + #[derive(TypeInfo)] + enum Color { + Black, + White, + Green(i32), + } + + let (id, types) = make_type::(); + + let a1 = scale_value_from_seed(id, &types, 20).unwrap(); + let a2 = scale_value_from_seed(id, &types, 20).unwrap(); + let a3 = scale_value_from_seed(id, &types, 20).unwrap(); + let b1 = scale_value_from_seed(id, &types, 30).unwrap(); + let b2 = scale_value_from_seed(id, &types, 30).unwrap(); + + // The examples can be checked manually by comparing them side by side: + // println!("{b2}\n{a1}"); + + assert_eq!(a1, a2); + assert_eq!(a1, a3); + assert_eq!(b1, b2); + assert_ne!(a1, b1); + } +} From 390cd150fbf270722e95d13019976e64c42cec8a Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 23 Nov 2023 20:30:27 +0100 Subject: [PATCH 05/27] formatting adjustment --- description/src/formatting.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/description/src/formatting.rs b/description/src/formatting.rs index 05565c3..f4a1123 100644 --- a/description/src/formatting.rs +++ b/description/src/formatting.rs @@ -12,7 +12,7 @@ pub fn format_type_description(input: &str) -> String { Small, } - const SMALL_SCOPE_MAX_TOKENS: usize = 10; + const SMALL_SCOPE_MAX_TOKENS: usize = 30; /// should be called on the chars iterator shortly after open_token was encountered. fn scope_is_small( chars: &mut PeekMoreIterator, From fcfb267118345fa13944707e0904b7fef4b842eb Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Mon, 27 Nov 2023 17:31:40 +0100 Subject: [PATCH 06/27] fix example and unused dependencies --- Cargo.lock | 190 +- Cargo.toml | 11 +- artifacts/generated_polkadot.rs | 8856 +++++ artifacts/polkadot.json | 47956 -------------------------- artifacts/polkadot_metadata.scale | Bin 0 -> 298287 bytes description/Cargo.toml | 1 - description/src/lib.rs | 16 + typegen/Cargo.toml | 9 +- typegen/examples/polkadot.rs | 35 +- typegen/src/lib.rs | 9 + typegen/src/typegen/settings/mod.rs | 10 + 11 files changed, 8926 insertions(+), 48167 deletions(-) create mode 100644 artifacts/generated_polkadot.rs delete mode 100644 artifacts/polkadot.json create mode 100644 artifacts/polkadot_metadata.scale diff --git a/Cargo.lock b/Cargo.lock index def5cb8..4d03435 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,24 +56,12 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -84,41 +72,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -160,29 +113,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "fixed-hash" -version = "0.8.0" +name = "frame-metadata" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" dependencies = [ - "static_assertions", + "cfg-if", + "parity-scale-codec", + "scale-info", ] -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - [[package]] name = "frame-metadata" -version = "15.1.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ "cfg-if", "parity-scale-codec", "scale-info", + "serde", ] [[package]] @@ -218,18 +168,6 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -257,12 +195,6 @@ version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - [[package]] name = "libc" version = "0.2.150" @@ -339,16 +271,6 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "uint", -] - [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -413,12 +335,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - [[package]] name = "scale-bits" version = "0.4.0" @@ -430,21 +346,6 @@ dependencies = [ "serde", ] -[[package]] -name = "scale-decode" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7789f5728e4e954aaa20cadcc370b99096fb8645fca3c9333ace44bb18f30095" -dependencies = [ - "derive_more", - "parity-scale-codec", - "primitive-types", - "scale-bits", - "scale-decode-derive", - "scale-info", - "smallvec", -] - [[package]] name = "scale-decode" version = "0.10.0" @@ -458,19 +359,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "scale-decode-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27873eb6005868f8cc72dcfe109fae664cf51223d35387bc2f28be4c28d94c47" -dependencies = [ - "darling", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "scale-encode" version = "0.5.0" @@ -479,26 +367,11 @@ checksum = "6d70cb4b29360105483fac1ed567ff95d65224a14dd275b6303ed0a654c78de5" dependencies = [ "derive_more", "parity-scale-codec", - "primitive-types", "scale-bits", - "scale-encode-derive", "scale-info", "smallvec", ] -[[package]] -name = "scale-encode-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25" -dependencies = [ - "darling", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "scale-info" version = "2.10.0" @@ -530,17 +403,14 @@ name = "scale-typegen" version = "0.0.1" dependencies = [ "bitvec", + "frame-metadata 16.0.0", "parity-scale-codec", "pretty_assertions", "prettyplease", "proc-macro2", "quote", "scale-bits", - "scale-decode 0.9.0", - "scale-encode", "scale-info", - "serde", - "serde_json", "smallvec", "syn 2.0.39", "thiserror", @@ -552,7 +422,6 @@ version = "0.0.1" dependencies = [ "anyhow", "indoc", - "parity-scale-codec", "peekmore", "pretty_assertions", "proc-macro2", @@ -575,10 +444,10 @@ dependencies = [ "blake2", "derive_more", "either", - "frame-metadata", + "frame-metadata 15.1.0", "parity-scale-codec", "scale-bits", - "scale-decode 0.10.0", + "scale-decode", "scale-encode", "scale-info", "serde", @@ -605,35 +474,12 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - [[package]] name = "smallvec" version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "subtle" version = "2.5.0" @@ -711,18 +557,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unicode-ident" version = "1.0.12" diff --git a/Cargo.toml b/Cargo.toml index bf8710f..2dec50b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,21 +23,14 @@ parity-scale-codec = { version = "3.6.5", features = ["derive"] } proc-macro2 = "1.0.69" quote = "1.0.33" scale-bits = "0.4.0" -scale-info = { version = "2.10.0", features = [ - "derive", - "bitvec", - "decode", - "docs", - "serde", -] } +scale-info = { version = "2.10.0", features = ["derive", "bitvec", "decode", "docs", "serde"] } smallvec = "1.11.2" syn = { version = "2.0.38", features = ["full", "extra-traits"] } thiserror = "1.0.50" prettyplease = "0.2.15" scale-decode = "0.9.0" scale-encode = "0.5.0" -serde = "1.0.192" -serde_json = "1.0.108" +frame-metadata = { version = "16.0.0", default-features = false, features = ["current", "std"] } bitvec = { version = "1", default-features = false } pretty_assertions = "1.4.0" anyhow = "1.0.75" diff --git a/artifacts/generated_polkadot.rs b/artifacts/generated_polkadot.rs new file mode 100644 index 0000000..2961e39 --- /dev/null +++ b/artifacts/generated_polkadot.rs @@ -0,0 +1,8856 @@ +pub mod my_types { + use super::my_types; + pub mod bitvec { + use super::my_types; + pub mod order { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Lsb0; + } + } + pub mod bounded_collections { + use super::my_types; + pub mod bounded_btree_map { + use super::my_types; + #[derive(Clone, Debug)] + pub struct BoundedBTreeMap<_0, _1>(pub ::std::collections::BTreeMap<_0, _1>); + } + pub mod bounded_vec { + use super::my_types; + #[derive(Clone, Debug)] + pub struct BoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + pub mod weak_bounded_vec { + use super::my_types; + #[derive(Clone, Debug)] + pub struct WeakBoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + } + pub mod finality_grandpa { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Equivocation<_0, _1, _2> { + pub round_number: ::core::primitive::u64, + pub identity: _0, + pub first: (_1, _2), + pub second: (_1, _2), + } + #[derive(Clone, Debug)] + pub struct Precommit<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + #[derive(Clone, Debug)] + pub struct Prevote<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + } + pub mod frame_support { + use super::my_types; + pub mod dispatch { + use super::my_types; + #[derive(Clone, Debug)] + pub enum DispatchClass { + Normal, + Operational, + Mandatory, + } + #[derive(Clone, Debug)] + pub struct DispatchInfo { + pub weight: my_types::sp_weights::weight_v2::Weight, + pub class: my_types::frame_support::dispatch::DispatchClass, + pub pays_fee: my_types::frame_support::dispatch::Pays, + } + #[derive(Clone, Debug)] + pub enum Pays { + Yes, + No, + } + #[derive(Clone, Debug)] + pub struct PerDispatchClass<_0> { + pub normal: _0, + pub operational: _0, + pub mandatory: _0, + } + #[derive(Clone, Debug)] + pub struct PostDispatchInfo { + pub actual_weight: ::core::option::Option< + my_types::sp_weights::weight_v2::Weight, + >, + pub pays_fee: my_types::frame_support::dispatch::Pays, + } + #[derive(Clone, Debug)] + pub enum RawOrigin<_0> { + Root, + Signed(_0), + None, + } + } + pub mod traits { + use super::my_types; + pub mod messages { + use super::my_types; + #[derive(Clone, Debug)] + pub enum ProcessMessageError { + BadFormat, + Corrupt, + Unsupported, + Overweight(my_types::sp_weights::weight_v2::Weight), + Yield, + } + } + pub mod preimages { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Bounded<_0> { + Legacy { hash: my_types::primitive_types::H256 }, + Inline( + my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + Lookup { + hash: my_types::primitive_types::H256, + len: ::core::primitive::u32, + }, + __Ignore(::core::marker::PhantomData<_0>), + } + } + pub mod schedule { + use super::my_types; + #[derive(Clone, Debug)] + pub enum DispatchTime<_0> { + At(_0), + After(_0), + } + } + pub mod tokens { + use super::my_types; + pub mod misc { + use super::my_types; + #[derive(Clone, Debug)] + pub enum BalanceStatus { + Free, + Reserved, + } + } + } + } + #[derive(Clone, Debug)] + pub struct PalletId(pub [::core::primitive::u8; 8usize]); + } + pub mod frame_system { + use super::my_types; + pub mod extensions { + use super::my_types; + pub mod check_genesis { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckGenesis; + } + pub mod check_mortality { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckMortality(pub my_types::sp_runtime::generic::era::Era); + } + pub mod check_non_zero_sender { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckNonZeroSender; + } + pub mod check_nonce { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckNonce(pub ::core::primitive::u32); + } + pub mod check_spec_version { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckSpecVersion; + } + pub mod check_tx_version { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckTxVersion; + } + pub mod check_weight { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckWeight; + } + } + pub mod limits { + use super::my_types; + #[derive(Clone, Debug)] + pub struct BlockLength { + pub max: my_types::frame_support::dispatch::PerDispatchClass< + ::core::primitive::u32, + >, + } + #[derive(Clone, Debug)] + pub struct BlockWeights { + pub base_block: my_types::sp_weights::weight_v2::Weight, + pub max_block: my_types::sp_weights::weight_v2::Weight, + pub per_class: my_types::frame_support::dispatch::PerDispatchClass< + my_types::frame_system::limits::WeightsPerClass, + >, + } + #[derive(Clone, Debug)] + pub struct WeightsPerClass { + pub base_extrinsic: my_types::sp_weights::weight_v2::Weight, + pub max_extrinsic: ::core::option::Option< + my_types::sp_weights::weight_v2::Weight, + >, + pub max_total: ::core::option::Option< + my_types::sp_weights::weight_v2::Weight, + >, + pub reserved: ::core::option::Option< + my_types::sp_weights::weight_v2::Weight, + >, + } + } + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::remark`]. + remark { remark: ::std::vec::Vec<::core::primitive::u8> }, + ///See [`Pallet::set_heap_pages`]. + set_heap_pages { pages: ::core::primitive::u64 }, + ///See [`Pallet::set_code`]. + set_code { code: ::std::vec::Vec<::core::primitive::u8> }, + ///See [`Pallet::set_code_without_checks`]. + set_code_without_checks { code: ::std::vec::Vec<::core::primitive::u8> }, + ///See [`Pallet::set_storage`]. + set_storage { + items: ::std::vec::Vec< + ( + ::std::vec::Vec<::core::primitive::u8>, + ::std::vec::Vec<::core::primitive::u8>, + ), + >, + }, + ///See [`Pallet::kill_storage`]. + kill_storage { + keys: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + }, + ///See [`Pallet::kill_prefix`]. + kill_prefix { + prefix: ::std::vec::Vec<::core::primitive::u8>, + subkeys: ::core::primitive::u32, + }, + ///See [`Pallet::remark_with_event`]. + remark_with_event { remark: ::std::vec::Vec<::core::primitive::u8> }, + } + #[derive(Clone, Debug)] + ///Error for the System pallet + pub enum Error { + ///The name of specification does not match between the current runtime + ///and the new runtime. + InvalidSpecName, + ///The specification version is not allowed to decrease between the current runtime + ///and the new runtime. + SpecVersionNeedsToIncrease, + ///Failed to extract the runtime version from the new runtime. + /// + ///Either calling `Core_version` or decoding `RuntimeVersion` failed. + FailedToExtractRuntimeVersion, + ///Suicide called when the account has non-default composite data. + NonDefaultComposite, + ///There is a non-zero reference count preventing the account from being purged. + NonZeroRefCount, + ///The origin filter prevent the call to be dispatched. + CallFiltered, + } + #[derive(Clone, Debug)] + ///Event for the System pallet. + pub enum Event { + ///An extrinsic completed successfully. + ExtrinsicSuccess { + dispatch_info: my_types::frame_support::dispatch::DispatchInfo, + }, + ///An extrinsic failed. + ExtrinsicFailed { + dispatch_error: my_types::sp_runtime::DispatchError, + dispatch_info: my_types::frame_support::dispatch::DispatchInfo, + }, + ///`:code` was updated. + CodeUpdated, + ///A new account was created. + NewAccount { account: my_types::sp_core::crypto::AccountId32 }, + ///An account was reaped. + KilledAccount { account: my_types::sp_core::crypto::AccountId32 }, + ///On on-chain remark happened. + Remarked { + sender: my_types::sp_core::crypto::AccountId32, + hash: my_types::primitive_types::H256, + }, + } + } + #[derive(Clone, Debug)] + pub struct AccountInfo<_0, _1> { + pub nonce: _0, + pub consumers: ::core::primitive::u32, + pub providers: ::core::primitive::u32, + pub sufficients: ::core::primitive::u32, + pub data: _1, + } + #[derive(Clone, Debug)] + pub struct EventRecord<_0, _1> { + pub phase: my_types::frame_system::Phase, + pub event: _0, + pub topics: ::std::vec::Vec<_1>, + } + #[derive(Clone, Debug)] + pub struct LastRuntimeUpgradeInfo { + pub spec_version: ::core::primitive::u32, + pub spec_name: ::std::string::String, + } + #[derive(Clone, Debug)] + pub enum Phase { + ApplyExtrinsic(::core::primitive::u32), + Finalization, + Initialization, + } + } + pub mod pallet_babe { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::report_equivocation`]. + report_equivocation { + equivocation_proof: ::std::boxed::Box< + my_types::sp_consensus_slots::EquivocationProof< + my_types::sp_runtime::generic::header::Header< + ::core::primitive::u32, + my_types::sp_runtime::traits::BlakeTwo256, + >, + my_types::sp_consensus_babe::app::Public, + >, + >, + key_owner_proof: my_types::sp_session::MembershipProof, + }, + ///See [`Pallet::report_equivocation_unsigned`]. + report_equivocation_unsigned { + equivocation_proof: ::std::boxed::Box< + my_types::sp_consensus_slots::EquivocationProof< + my_types::sp_runtime::generic::header::Header< + ::core::primitive::u32, + my_types::sp_runtime::traits::BlakeTwo256, + >, + my_types::sp_consensus_babe::app::Public, + >, + >, + key_owner_proof: my_types::sp_session::MembershipProof, + }, + ///See [`Pallet::plan_config_change`]. + plan_config_change { + config: my_types::sp_consensus_babe::digests::NextConfigDescriptor, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///An equivocation proof provided as part of an equivocation report is invalid. + InvalidEquivocationProof, + ///A key ownership proof provided as part of an equivocation report is invalid. + InvalidKeyOwnershipProof, + ///A given equivocation report is valid but already previously reported. + DuplicateOffenceReport, + ///Submitted configuration is invalid. + InvalidConfiguration, + } + } + } + pub mod pallet_bags_list { + use super::my_types; + pub mod list { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Bag { + pub head: ::core::option::Option, + pub tail: ::core::option::Option, + } + #[derive(Clone, Debug)] + pub enum ListError { + Duplicate, + NotHeavier, + NotInSameBag, + NodeNotFound, + } + #[derive(Clone, Debug)] + pub struct Node { + pub id: my_types::sp_core::crypto::AccountId32, + pub prev: ::core::option::Option, + pub next: ::core::option::Option, + pub bag_upper: ::core::primitive::u64, + pub score: ::core::primitive::u64, + } + } + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::rebag`]. + rebag { + dislocated: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::put_in_front_of`]. + put_in_front_of { + lighter: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///A error in the list interface implementation. + List(my_types::pallet_bags_list::list::ListError), + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Moved an account from one bag to another. + Rebagged { + who: my_types::sp_core::crypto::AccountId32, + from: ::core::primitive::u64, + to: ::core::primitive::u64, + }, + ///Updated the score of some account to the given amount. + ScoreUpdated { + who: my_types::sp_core::crypto::AccountId32, + new_score: ::core::primitive::u64, + }, + } + } + } + pub mod pallet_balances { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::transfer_allow_death`]. + transfer_allow_death { + dest: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + value: ::core::primitive::u128, + }, + ///See [`Pallet::set_balance_deprecated`]. + set_balance_deprecated { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + new_free: ::core::primitive::u128, + old_reserved: ::core::primitive::u128, + }, + ///See [`Pallet::force_transfer`]. + force_transfer { + source: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + dest: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + value: ::core::primitive::u128, + }, + ///See [`Pallet::transfer_keep_alive`]. + transfer_keep_alive { + dest: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + value: ::core::primitive::u128, + }, + ///See [`Pallet::transfer_all`]. + transfer_all { + dest: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + keep_alive: ::core::primitive::bool, + }, + ///See [`Pallet::force_unreserve`]. + force_unreserve { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + amount: ::core::primitive::u128, + }, + ///See [`Pallet::upgrade_accounts`]. + upgrade_accounts { + who: ::std::vec::Vec, + }, + ///See [`Pallet::transfer`]. + transfer { + dest: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + value: ::core::primitive::u128, + }, + ///See [`Pallet::force_set_balance`]. + force_set_balance { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + new_free: ::core::primitive::u128, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Vesting balance too high to send value. + VestingBalance, + ///Account liquidity restrictions prevent withdrawal. + LiquidityRestrictions, + ///Balance too low to send value. + InsufficientBalance, + ///Value too low to create account due to existential deposit. + ExistentialDeposit, + ///Transfer/payment would kill account. + Expendability, + ///A vesting schedule already exists for this account. + ExistingVestingSchedule, + ///Beneficiary account must pre-exist. + DeadAccount, + ///Number of named reserves exceed `MaxReserves`. + TooManyReserves, + ///Number of holds exceed `MaxHolds`. + TooManyHolds, + ///Number of freezes exceed `MaxFreezes`. + TooManyFreezes, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///An account was created with some free balance. + Endowed { + account: my_types::sp_core::crypto::AccountId32, + free_balance: ::core::primitive::u128, + }, + ///An account was removed whose balance was non-zero but below ExistentialDeposit, + ///resulting in an outright loss. + DustLost { + account: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Transfer succeeded. + Transfer { + from: my_types::sp_core::crypto::AccountId32, + to: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A balance was set by root. + BalanceSet { + who: my_types::sp_core::crypto::AccountId32, + free: ::core::primitive::u128, + }, + ///Some balance was reserved (moved from free to reserved). + Reserved { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some balance was unreserved (moved from reserved to free). + Unreserved { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some balance was moved from the reserve of the first account to the second account. + ///Final argument indicates the destination balance type. + ReserveRepatriated { + from: my_types::sp_core::crypto::AccountId32, + to: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + destination_status: my_types::frame_support::traits::tokens::misc::BalanceStatus, + }, + ///Some amount was deposited (e.g. for transaction fees). + Deposit { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was withdrawn from the account (e.g. for transaction fees). + Withdraw { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was removed from the account (e.g. for misbehavior). + Slashed { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was minted into an account. + Minted { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was burned from an account. + Burned { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was suspended from an account (it can be restored later). + Suspended { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some amount was restored into an account. + Restored { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///An account was upgraded. + Upgraded { who: my_types::sp_core::crypto::AccountId32 }, + ///Total issuance was increased by `amount`, creating a credit to be balanced. + Issued { amount: ::core::primitive::u128 }, + ///Total issuance was decreased by `amount`, creating a debt to be balanced. + Rescinded { amount: ::core::primitive::u128 }, + ///Some balance was locked. + Locked { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some balance was unlocked. + Unlocked { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some balance was frozen. + Frozen { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Some balance was thawed. + Thawed { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct AccountData<_0> { + pub free: _0, + pub reserved: _0, + pub frozen: _0, + pub flags: my_types::pallet_balances::types::ExtraFlags, + } + #[derive(Clone, Debug)] + pub struct BalanceLock<_0> { + pub id: [::core::primitive::u8; 8usize], + pub amount: _0, + pub reasons: my_types::pallet_balances::types::Reasons, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct ExtraFlags(pub ::core::primitive::u128); + #[derive(Clone, Debug)] + pub struct IdAmount<_0, _1> { + pub id: _0, + pub amount: _1, + } + #[derive(Clone, Debug)] + pub enum Reasons { + Fee, + Misc, + All, + } + #[derive(Clone, Debug)] + pub struct ReserveData<_0, _1> { + pub id: _0, + pub amount: _1, + } + } + } + pub mod pallet_bounties { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::propose_bounty`]. + propose_bounty { + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::approve_bounty`]. + approve_bounty { bounty_id: ::core::primitive::u32 }, + ///See [`Pallet::propose_curator`]. + propose_curator { + bounty_id: ::core::primitive::u32, + curator: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + fee: ::core::primitive::u128, + }, + ///See [`Pallet::unassign_curator`]. + unassign_curator { bounty_id: ::core::primitive::u32 }, + ///See [`Pallet::accept_curator`]. + accept_curator { bounty_id: ::core::primitive::u32 }, + ///See [`Pallet::award_bounty`]. + award_bounty { + bounty_id: ::core::primitive::u32, + beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::claim_bounty`]. + claim_bounty { bounty_id: ::core::primitive::u32 }, + ///See [`Pallet::close_bounty`]. + close_bounty { bounty_id: ::core::primitive::u32 }, + ///See [`Pallet::extend_bounty_expiry`]. + extend_bounty_expiry { + bounty_id: ::core::primitive::u32, + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Proposer's balance is too low. + InsufficientProposersBalance, + ///No proposal or bounty at that index. + InvalidIndex, + ///The reason given is just too big. + ReasonTooBig, + ///The bounty status is unexpected. + UnexpectedStatus, + ///Require bounty curator. + RequireCurator, + ///Invalid bounty value. + InvalidValue, + ///Invalid bounty fee. + InvalidFee, + ///A bounty payout is pending. + ///To cancel the bounty, you must unassign and slash the curator. + PendingPayout, + ///The bounties cannot be claimed/closed because it's still in the countdown period. + Premature, + ///The bounty cannot be closed because it has active child bounties. + HasActiveChildBounty, + ///Too many approvals are already queued. + TooManyQueued, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///New bounty proposal. + BountyProposed { index: ::core::primitive::u32 }, + ///A bounty proposal was rejected; funds were slashed. + BountyRejected { + index: ::core::primitive::u32, + bond: ::core::primitive::u128, + }, + ///A bounty proposal is funded and became active. + BountyBecameActive { index: ::core::primitive::u32 }, + ///A bounty is awarded to a beneficiary. + BountyAwarded { + index: ::core::primitive::u32, + beneficiary: my_types::sp_core::crypto::AccountId32, + }, + ///A bounty is claimed by beneficiary. + BountyClaimed { + index: ::core::primitive::u32, + payout: ::core::primitive::u128, + beneficiary: my_types::sp_core::crypto::AccountId32, + }, + ///A bounty is cancelled. + BountyCanceled { index: ::core::primitive::u32 }, + ///A bounty expiry is extended. + BountyExtended { index: ::core::primitive::u32 }, + } + } + #[derive(Clone, Debug)] + pub struct Bounty<_0, _1, _2> { + pub proposer: _0, + pub value: _1, + pub fee: _1, + pub curator_deposit: _1, + pub bond: _1, + pub status: my_types::pallet_bounties::BountyStatus<_0, _2>, + } + #[derive(Clone, Debug)] + pub enum BountyStatus<_0, _1> { + Proposed, + Approved, + Funded, + CuratorProposed { curator: _0 }, + Active { curator: _0, update_due: _1 }, + PendingPayout { curator: _0, beneficiary: _0, unlock_at: _1 }, + } + } + pub mod pallet_child_bounties { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::add_child_bounty`]. + add_child_bounty { + parent_bounty_id: ::core::primitive::u32, + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::propose_curator`]. + propose_curator { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + curator: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + fee: ::core::primitive::u128, + }, + ///See [`Pallet::accept_curator`]. + accept_curator { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + }, + ///See [`Pallet::unassign_curator`]. + unassign_curator { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + }, + ///See [`Pallet::award_child_bounty`]. + award_child_bounty { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::claim_child_bounty`]. + claim_child_bounty { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + }, + ///See [`Pallet::close_child_bounty`]. + close_child_bounty { + parent_bounty_id: ::core::primitive::u32, + child_bounty_id: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The parent bounty is not in active state. + ParentBountyNotActive, + ///The bounty balance is not enough to add new child-bounty. + InsufficientBountyBalance, + ///Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + TooManyChildBounties, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A child-bounty is added. + Added { + index: ::core::primitive::u32, + child_index: ::core::primitive::u32, + }, + ///A child-bounty is awarded to a beneficiary. + Awarded { + index: ::core::primitive::u32, + child_index: ::core::primitive::u32, + beneficiary: my_types::sp_core::crypto::AccountId32, + }, + ///A child-bounty is claimed by beneficiary. + Claimed { + index: ::core::primitive::u32, + child_index: ::core::primitive::u32, + payout: ::core::primitive::u128, + beneficiary: my_types::sp_core::crypto::AccountId32, + }, + ///A child-bounty is cancelled. + Canceled { + index: ::core::primitive::u32, + child_index: ::core::primitive::u32, + }, + } + } + #[derive(Clone, Debug)] + pub struct ChildBounty<_0, _1, _2> { + pub parent_bounty: ::core::primitive::u32, + pub value: _1, + pub fee: _1, + pub curator_deposit: _1, + pub status: my_types::pallet_child_bounties::ChildBountyStatus<_0, _2>, + } + #[derive(Clone, Debug)] + pub enum ChildBountyStatus<_0, _1> { + Added, + CuratorProposed { curator: _0 }, + Active { curator: _0 }, + PendingPayout { curator: _0, beneficiary: _0, unlock_at: _1 }, + } + } + pub mod pallet_collective { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::set_members`]. + set_members { + new_members: ::std::vec::Vec, + prime: ::core::option::Option< + my_types::sp_core::crypto::AccountId32, + >, + old_count: ::core::primitive::u32, + }, + ///See [`Pallet::execute`]. + execute { + proposal: ::std::boxed::Box, + length_bound: ::core::primitive::u32, + }, + ///See [`Pallet::propose`]. + propose { + threshold: ::core::primitive::u32, + proposal: ::std::boxed::Box, + length_bound: ::core::primitive::u32, + }, + ///See [`Pallet::vote`]. + vote { + proposal: my_types::primitive_types::H256, + index: ::core::primitive::u32, + approve: ::core::primitive::bool, + }, + ///See [`Pallet::disapprove_proposal`]. + disapprove_proposal { proposal_hash: my_types::primitive_types::H256 }, + ///See [`Pallet::close`]. + close { + proposal_hash: my_types::primitive_types::H256, + index: ::core::primitive::u32, + proposal_weight_bound: my_types::sp_weights::weight_v2::Weight, + length_bound: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Account is not a member + NotMember, + ///Duplicate proposals not allowed + DuplicateProposal, + ///Proposal must exist + ProposalMissing, + ///Mismatched index + WrongIndex, + ///Duplicate vote ignored + DuplicateVote, + ///Members are already initialized! + AlreadyInitialized, + ///The close call was made too early, before the end of the voting. + TooEarly, + ///There can only be a maximum of `MaxProposals` active proposals. + TooManyProposals, + ///The given weight bound for the proposal was too low. + WrongProposalWeight, + ///The given length bound for the proposal was too low. + WrongProposalLength, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A motion (given hash) has been proposed (by given account) with a threshold (given + ///`MemberCount`). + Proposed { + account: my_types::sp_core::crypto::AccountId32, + proposal_index: ::core::primitive::u32, + proposal_hash: my_types::primitive_types::H256, + threshold: ::core::primitive::u32, + }, + ///A motion (given hash) has been voted on by given account, leaving + ///a tally (yes votes and no votes given respectively as `MemberCount`). + Voted { + account: my_types::sp_core::crypto::AccountId32, + proposal_hash: my_types::primitive_types::H256, + voted: ::core::primitive::bool, + yes: ::core::primitive::u32, + no: ::core::primitive::u32, + }, + ///A motion was approved by the required threshold. + Approved { proposal_hash: my_types::primitive_types::H256 }, + ///A motion was not approved by the required threshold. + Disapproved { proposal_hash: my_types::primitive_types::H256 }, + ///A motion was executed; result will be `Ok` if it returned without error. + Executed { + proposal_hash: my_types::primitive_types::H256, + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///A single member did some action; result will be `Ok` if it returned without error. + MemberExecuted { + proposal_hash: my_types::primitive_types::H256, + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///A proposal was closed because its threshold was reached or after its duration was up. + Closed { + proposal_hash: my_types::primitive_types::H256, + yes: ::core::primitive::u32, + no: ::core::primitive::u32, + }, + } + } + #[derive(Clone, Debug)] + pub enum RawOrigin<_0> { + Members(::core::primitive::u32, ::core::primitive::u32), + Member(_0), + _Phantom, + } + #[derive(Clone, Debug)] + pub struct Votes<_0, _1> { + pub index: ::core::primitive::u32, + pub threshold: ::core::primitive::u32, + pub ayes: ::std::vec::Vec<_0>, + pub nays: ::std::vec::Vec<_0>, + pub end: _1, + } + } + pub mod pallet_conviction_voting { + use super::my_types; + pub mod conviction { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Conviction { + None, + Locked1x, + Locked2x, + Locked3x, + Locked4x, + Locked5x, + Locked6x, + } + } + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::vote`]. + vote { + poll_index: ::core::primitive::u32, + vote: my_types::pallet_conviction_voting::vote::AccountVote< + ::core::primitive::u128, + >, + }, + ///See [`Pallet::delegate`]. + delegate { + class: ::core::primitive::u16, + to: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + conviction: my_types::pallet_conviction_voting::conviction::Conviction, + balance: ::core::primitive::u128, + }, + ///See [`Pallet::undelegate`]. + undelegate { class: ::core::primitive::u16 }, + ///See [`Pallet::unlock`]. + unlock { + class: ::core::primitive::u16, + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::remove_vote`]. + remove_vote { + class: ::core::option::Option<::core::primitive::u16>, + index: ::core::primitive::u32, + }, + ///See [`Pallet::remove_other_vote`]. + remove_other_vote { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + class: ::core::primitive::u16, + index: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Poll is not ongoing. + NotOngoing, + ///The given account did not vote on the poll. + NotVoter, + ///The actor has no permission to conduct the action. + NoPermission, + ///The actor has no permission to conduct the action right now but will do in the future. + NoPermissionYet, + ///The account is already delegating. + AlreadyDelegating, + ///The account currently has votes attached to it and the operation cannot succeed until + ///these are removed, either through `unvote` or `reap_vote`. + AlreadyVoting, + ///Too high a balance was provided that the account cannot afford. + InsufficientFunds, + ///The account is not currently delegating. + NotDelegating, + ///Delegation to oneself makes no sense. + Nonsense, + ///Maximum number of votes reached. + MaxVotesReached, + ///The class must be supplied since it is not easily determinable from the state. + ClassNeeded, + ///The class ID supplied is invalid. + BadClass, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///An account has delegated their vote to another account. \[who, target\] + Delegated( + my_types::sp_core::crypto::AccountId32, + my_types::sp_core::crypto::AccountId32, + ), + ///An \[account\] has cancelled a previous delegation operation. + Undelegated(my_types::sp_core::crypto::AccountId32), + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Delegations<_0> { + pub votes: _0, + pub capital: _0, + } + #[derive(Clone, Debug)] + pub struct Tally<_0> { + pub ayes: _0, + pub nays: _0, + pub support: _0, + } + } + pub mod vote { + use super::my_types; + #[derive(Clone, Debug)] + pub enum AccountVote<_0> { + Standard { + vote: my_types::pallet_conviction_voting::vote::Vote, + balance: _0, + }, + Split { aye: _0, nay: _0 }, + SplitAbstain { aye: _0, nay: _0, abstain: _0 }, + } + #[derive(Clone, Debug)] + pub struct Casting<_0, _1, _2> { + pub votes: my_types::bounded_collections::bounded_vec::BoundedVec< + (_1, my_types::pallet_conviction_voting::vote::AccountVote<_0>), + >, + pub delegations: my_types::pallet_conviction_voting::types::Delegations< + _0, + >, + pub prior: my_types::pallet_conviction_voting::vote::PriorLock<_1, _0>, + pub __ignore: ::core::marker::PhantomData<_2>, + } + #[derive(Clone, Debug)] + pub struct Delegating<_0, _1, _2> { + pub balance: _0, + pub target: _1, + pub conviction: my_types::pallet_conviction_voting::conviction::Conviction, + pub delegations: my_types::pallet_conviction_voting::types::Delegations< + _0, + >, + pub prior: my_types::pallet_conviction_voting::vote::PriorLock<_2, _0>, + } + #[derive(Clone, Debug)] + pub struct PriorLock<_0, _1>(pub _0, pub _1); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Vote(pub ::core::primitive::u8); + #[derive(Clone, Debug)] + pub enum Voting<_0, _1, _2, _3> { + Casting(my_types::pallet_conviction_voting::vote::Casting<_0, _2, _2>), + Delegating( + my_types::pallet_conviction_voting::vote::Delegating<_0, _1, _2>, + ), + __Ignore(::core::marker::PhantomData<_3>), + } + } + } + pub mod pallet_democracy { + use super::my_types; + pub mod conviction { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Conviction { + None, + Locked1x, + Locked2x, + Locked3x, + Locked4x, + Locked5x, + Locked6x, + } + } + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::propose`]. + propose { + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + value: ::core::primitive::u128, + }, + ///See [`Pallet::second`]. + second { proposal: ::core::primitive::u32 }, + ///See [`Pallet::vote`]. + vote { + ref_index: ::core::primitive::u32, + vote: my_types::pallet_democracy::vote::AccountVote< + ::core::primitive::u128, + >, + }, + ///See [`Pallet::emergency_cancel`]. + emergency_cancel { ref_index: ::core::primitive::u32 }, + ///See [`Pallet::external_propose`]. + external_propose { + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + }, + ///See [`Pallet::external_propose_majority`]. + external_propose_majority { + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + }, + ///See [`Pallet::external_propose_default`]. + external_propose_default { + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + }, + ///See [`Pallet::fast_track`]. + fast_track { + proposal_hash: my_types::primitive_types::H256, + voting_period: ::core::primitive::u32, + delay: ::core::primitive::u32, + }, + ///See [`Pallet::veto_external`]. + veto_external { proposal_hash: my_types::primitive_types::H256 }, + ///See [`Pallet::cancel_referendum`]. + cancel_referendum { ref_index: ::core::primitive::u32 }, + ///See [`Pallet::delegate`]. + delegate { + to: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + conviction: my_types::pallet_democracy::conviction::Conviction, + balance: ::core::primitive::u128, + }, + ///See [`Pallet::undelegate`]. + undelegate, + ///See [`Pallet::clear_public_proposals`]. + clear_public_proposals, + ///See [`Pallet::unlock`]. + unlock { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::remove_vote`]. + remove_vote { index: ::core::primitive::u32 }, + ///See [`Pallet::remove_other_vote`]. + remove_other_vote { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + index: ::core::primitive::u32, + }, + ///See [`Pallet::blacklist`]. + blacklist { + proposal_hash: my_types::primitive_types::H256, + maybe_ref_index: ::core::option::Option<::core::primitive::u32>, + }, + ///See [`Pallet::cancel_proposal`]. + cancel_proposal { prop_index: ::core::primitive::u32 }, + ///See [`Pallet::set_metadata`]. + set_metadata { + owner: my_types::pallet_democracy::types::MetadataOwner, + maybe_hash: ::core::option::Option, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Value too low + ValueLow, + ///Proposal does not exist + ProposalMissing, + ///Cannot cancel the same proposal twice + AlreadyCanceled, + ///Proposal already made + DuplicateProposal, + ///Proposal still blacklisted + ProposalBlacklisted, + ///Next external proposal not simple majority + NotSimpleMajority, + ///Invalid hash + InvalidHash, + ///No external proposal + NoProposal, + ///Identity may not veto a proposal twice + AlreadyVetoed, + ///Vote given for invalid referendum + ReferendumInvalid, + ///No proposals waiting + NoneWaiting, + ///The given account did not vote on the referendum. + NotVoter, + ///The actor has no permission to conduct the action. + NoPermission, + ///The account is already delegating. + AlreadyDelegating, + ///Too high a balance was provided that the account cannot afford. + InsufficientFunds, + ///The account is not currently delegating. + NotDelegating, + ///The account currently has votes attached to it and the operation cannot succeed until + ///these are removed, either through `unvote` or `reap_vote`. + VotesExist, + ///The instant referendum origin is currently disallowed. + InstantNotAllowed, + ///Delegation to oneself makes no sense. + Nonsense, + ///Invalid upper bound. + WrongUpperBound, + ///Maximum number of votes reached. + MaxVotesReached, + ///Maximum number of items reached. + TooMany, + ///Voting period too low + VotingPeriodLow, + ///The preimage does not exist. + PreimageNotExist, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A motion has been proposed by a public account. + Proposed { + proposal_index: ::core::primitive::u32, + deposit: ::core::primitive::u128, + }, + ///A public proposal has been tabled for referendum vote. + Tabled { + proposal_index: ::core::primitive::u32, + deposit: ::core::primitive::u128, + }, + ///An external proposal has been tabled. + ExternalTabled, + ///A referendum has begun. + Started { + ref_index: ::core::primitive::u32, + threshold: my_types::pallet_democracy::vote_threshold::VoteThreshold, + }, + ///A proposal has been approved by referendum. + Passed { ref_index: ::core::primitive::u32 }, + ///A proposal has been rejected by referendum. + NotPassed { ref_index: ::core::primitive::u32 }, + ///A referendum has been cancelled. + Cancelled { ref_index: ::core::primitive::u32 }, + ///An account has delegated their vote to another account. + Delegated { + who: my_types::sp_core::crypto::AccountId32, + target: my_types::sp_core::crypto::AccountId32, + }, + ///An account has cancelled a previous delegation operation. + Undelegated { account: my_types::sp_core::crypto::AccountId32 }, + ///An external proposal has been vetoed. + Vetoed { + who: my_types::sp_core::crypto::AccountId32, + proposal_hash: my_types::primitive_types::H256, + until: ::core::primitive::u32, + }, + ///A proposal_hash has been blacklisted permanently. + Blacklisted { proposal_hash: my_types::primitive_types::H256 }, + ///An account has voted in a referendum + Voted { + voter: my_types::sp_core::crypto::AccountId32, + ref_index: ::core::primitive::u32, + vote: my_types::pallet_democracy::vote::AccountVote< + ::core::primitive::u128, + >, + }, + ///An account has secconded a proposal + Seconded { + seconder: my_types::sp_core::crypto::AccountId32, + prop_index: ::core::primitive::u32, + }, + ///A proposal got canceled. + ProposalCanceled { prop_index: ::core::primitive::u32 }, + ///Metadata for a proposal or a referendum has been set. + MetadataSet { + owner: my_types::pallet_democracy::types::MetadataOwner, + hash: my_types::primitive_types::H256, + }, + ///Metadata for a proposal or a referendum has been cleared. + MetadataCleared { + owner: my_types::pallet_democracy::types::MetadataOwner, + hash: my_types::primitive_types::H256, + }, + ///Metadata has been transferred to new owner. + MetadataTransferred { + prev_owner: my_types::pallet_democracy::types::MetadataOwner, + owner: my_types::pallet_democracy::types::MetadataOwner, + hash: my_types::primitive_types::H256, + }, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Delegations<_0> { + pub votes: _0, + pub capital: _0, + } + #[derive(Clone, Debug)] + pub enum MetadataOwner { + External, + Proposal(::core::primitive::u32), + Referendum(::core::primitive::u32), + } + #[derive(Clone, Debug)] + pub enum ReferendumInfo<_0, _1, _2> { + Ongoing(my_types::pallet_democracy::types::ReferendumStatus<_0, _1, _2>), + Finished { approved: ::core::primitive::bool, end: _0 }, + } + #[derive(Clone, Debug)] + pub struct ReferendumStatus<_0, _1, _2> { + pub end: _0, + pub proposal: _1, + pub threshold: my_types::pallet_democracy::vote_threshold::VoteThreshold, + pub delay: _0, + pub tally: my_types::pallet_democracy::types::Tally<_2>, + } + #[derive(Clone, Debug)] + pub struct Tally<_0> { + pub ayes: _0, + pub nays: _0, + pub turnout: _0, + } + } + pub mod vote { + use super::my_types; + #[derive(Clone, Debug)] + pub enum AccountVote<_0> { + Standard { vote: my_types::pallet_democracy::vote::Vote, balance: _0 }, + Split { aye: _0, nay: _0 }, + } + #[derive(Clone, Debug)] + pub struct PriorLock<_0, _1>(pub _0, pub _1); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Vote(pub ::core::primitive::u8); + #[derive(Clone, Debug)] + pub enum Voting<_0, _1, _2> { + Direct { + votes: my_types::bounded_collections::bounded_vec::BoundedVec< + (_2, my_types::pallet_democracy::vote::AccountVote<_0>), + >, + delegations: my_types::pallet_democracy::types::Delegations<_0>, + prior: my_types::pallet_democracy::vote::PriorLock<_2, _0>, + }, + Delegating { + balance: _0, + target: _1, + conviction: my_types::pallet_democracy::conviction::Conviction, + delegations: my_types::pallet_democracy::types::Delegations<_0>, + prior: my_types::pallet_democracy::vote::PriorLock<_2, _0>, + }, + } + } + pub mod vote_threshold { + use super::my_types; + #[derive(Clone, Debug)] + pub enum VoteThreshold { + SuperMajorityApprove, + SuperMajorityAgainst, + SimpleMajority, + } + } + } + pub mod pallet_election_provider_multi_phase { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::submit_unsigned`]. + submit_unsigned { + raw_solution: ::std::boxed::Box< + my_types::pallet_election_provider_multi_phase::RawSolution< + my_types::polkadot_runtime::NposCompactSolution16, + >, + >, + witness: my_types::pallet_election_provider_multi_phase::SolutionOrSnapshotSize, + }, + ///See [`Pallet::set_minimum_untrusted_score`]. + set_minimum_untrusted_score { + maybe_next_score: ::core::option::Option< + my_types::sp_npos_elections::ElectionScore, + >, + }, + ///See [`Pallet::set_emergency_election_result`]. + set_emergency_election_result { + supports: ::std::vec::Vec< + ( + my_types::sp_core::crypto::AccountId32, + my_types::sp_npos_elections::Support< + my_types::sp_core::crypto::AccountId32, + >, + ), + >, + }, + ///See [`Pallet::submit`]. + submit { + raw_solution: ::std::boxed::Box< + my_types::pallet_election_provider_multi_phase::RawSolution< + my_types::polkadot_runtime::NposCompactSolution16, + >, + >, + }, + ///See [`Pallet::governance_fallback`]. + governance_fallback { + maybe_max_voters: ::core::option::Option<::core::primitive::u32>, + maybe_max_targets: ::core::option::Option<::core::primitive::u32>, + }, + } + #[derive(Clone, Debug)] + ///Error of the pallet that can be returned in response to dispatches. + pub enum Error { + ///Submission was too early. + PreDispatchEarlySubmission, + ///Wrong number of winners presented. + PreDispatchWrongWinnerCount, + ///Submission was too weak, score-wise. + PreDispatchWeakSubmission, + ///The queue was full, and the solution was not better than any of the existing ones. + SignedQueueFull, + ///The origin failed to pay the deposit. + SignedCannotPayDeposit, + ///Witness data to dispatchable is invalid. + SignedInvalidWitness, + ///The signed submission consumes too much weight + SignedTooMuchWeight, + ///OCW submitted solution for wrong round + OcwCallWrongEra, + ///Snapshot metadata should exist but didn't. + MissingSnapshotMetadata, + ///`Self::insert_submission` returned an invalid index. + InvalidSubmissionIndex, + ///The call is not allowed at this point. + CallNotAllowed, + ///The fallback failed + FallbackFailed, + ///Some bound not met + BoundNotMet, + ///Submitted solution has too many winners + TooManyWinners, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A solution was stored with the given compute. + /// + ///The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, + ///the stored solution was submited in the signed phase by a miner with the `AccountId`. + ///Otherwise, the solution was stored either during the unsigned phase or by + ///`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make + ///room for this one. + SolutionStored { + compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, + origin: ::core::option::Option< + my_types::sp_core::crypto::AccountId32, + >, + prev_ejected: ::core::primitive::bool, + }, + ///The election has been finalized, with the given computation and score. + ElectionFinalized { + compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, + score: my_types::sp_npos_elections::ElectionScore, + }, + ///An election failed. + /// + ///Not much can be said about which computes failed in the process. + ElectionFailed, + ///An account has been rewarded for their signed submission being finalized. + Rewarded { + account: my_types::sp_core::crypto::AccountId32, + value: ::core::primitive::u128, + }, + ///An account has been slashed for submitting an invalid signed submission. + Slashed { + account: my_types::sp_core::crypto::AccountId32, + value: ::core::primitive::u128, + }, + ///There was a phase transition in a given round. + PhaseTransitioned { + from: my_types::pallet_election_provider_multi_phase::Phase< + ::core::primitive::u32, + >, + to: my_types::pallet_election_provider_multi_phase::Phase< + ::core::primitive::u32, + >, + round: ::core::primitive::u32, + }, + } + } + pub mod signed { + use super::my_types; + #[derive(Clone, Debug)] + pub struct SignedSubmission<_0, _1, _2> { + pub who: _0, + pub deposit: _1, + pub raw_solution: my_types::pallet_election_provider_multi_phase::RawSolution< + _2, + >, + pub call_fee: _1, + } + } + #[derive(Clone, Debug)] + pub enum ElectionCompute { + OnChain, + Signed, + Unsigned, + Fallback, + Emergency, + } + #[derive(Clone, Debug)] + pub enum Phase<_0> { + Off, + Signed, + Unsigned((::core::primitive::bool, _0)), + Emergency, + } + #[derive(Clone, Debug)] + pub struct RawSolution<_0> { + pub solution: _0, + pub score: my_types::sp_npos_elections::ElectionScore, + pub round: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct ReadySolution { + pub supports: my_types::bounded_collections::bounded_vec::BoundedVec< + ( + my_types::sp_core::crypto::AccountId32, + my_types::sp_npos_elections::Support< + my_types::sp_core::crypto::AccountId32, + >, + ), + >, + pub score: my_types::sp_npos_elections::ElectionScore, + pub compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, + } + #[derive(Clone, Debug)] + pub struct RoundSnapshot<_0, _1> { + pub voters: ::std::vec::Vec<_1>, + pub targets: ::std::vec::Vec<_0>, + } + #[derive(Clone, Debug)] + pub struct SolutionOrSnapshotSize { + pub voters: ::core::primitive::u32, + pub targets: ::core::primitive::u32, + } + } + pub mod pallet_elections_phragmen { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::vote`]. + vote { + votes: ::std::vec::Vec, + value: ::core::primitive::u128, + }, + ///See [`Pallet::remove_voter`]. + remove_voter, + ///See [`Pallet::submit_candidacy`]. + submit_candidacy { candidate_count: ::core::primitive::u32 }, + ///See [`Pallet::renounce_candidacy`]. + renounce_candidacy { + renouncing: my_types::pallet_elections_phragmen::Renouncing, + }, + ///See [`Pallet::remove_member`]. + remove_member { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + slash_bond: ::core::primitive::bool, + rerun_election: ::core::primitive::bool, + }, + ///See [`Pallet::clean_defunct_voters`]. + clean_defunct_voters { + num_voters: ::core::primitive::u32, + num_defunct: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Cannot vote when no candidates or members exist. + UnableToVote, + ///Must vote for at least one candidate. + NoVotes, + ///Cannot vote more than candidates. + TooManyVotes, + ///Cannot vote more than maximum allowed. + MaximumVotesExceeded, + ///Cannot vote with stake less than minimum balance. + LowBalance, + ///Voter can not pay voting bond. + UnableToPayBond, + ///Must be a voter. + MustBeVoter, + ///Duplicated candidate submission. + DuplicatedCandidate, + ///Too many candidates have been created. + TooManyCandidates, + ///Member cannot re-submit candidacy. + MemberSubmit, + ///Runner cannot re-submit candidacy. + RunnerUpSubmit, + ///Candidate does not have enough funds. + InsufficientCandidateFunds, + ///Not a member. + NotMember, + ///The provided count of number of candidates is incorrect. + InvalidWitnessData, + ///The provided count of number of votes is incorrect. + InvalidVoteCount, + ///The renouncing origin presented a wrong `Renouncing` parameter. + InvalidRenouncing, + ///Prediction regarding replacement after member removal is wrong. + InvalidReplacement, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///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. + NewTerm { + new_members: ::std::vec::Vec< + (my_types::sp_core::crypto::AccountId32, ::core::primitive::u128), + >, + }, + ///No (or not enough) candidates existed for this round. This is different from + ///`NewTerm(\[\])`. See the description of `NewTerm`. + EmptyTerm, + ///Internal error happened while trying to perform election. + ElectionError, + ///A member has been removed. This should always be followed by either `NewTerm` or + ///`EmptyTerm`. + MemberKicked { member: my_types::sp_core::crypto::AccountId32 }, + ///Someone has renounced their candidacy. + Renounced { candidate: my_types::sp_core::crypto::AccountId32 }, + ///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. + CandidateSlashed { + candidate: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A seat holder was slashed by amount by being forcefully removed from the set. + SeatHolderSlashed { + seat_holder: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + } + } + #[derive(Clone, Debug)] + pub enum Renouncing { + Member, + RunnerUp, + Candidate(::core::primitive::u32), + } + #[derive(Clone, Debug)] + pub struct SeatHolder<_0, _1> { + pub who: _0, + pub stake: _1, + pub deposit: _1, + } + #[derive(Clone, Debug)] + pub struct Voter<_0, _1> { + pub votes: ::std::vec::Vec<_0>, + pub stake: _1, + pub deposit: _1, + } + } + pub mod pallet_fast_unstake { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::register_fast_unstake`]. + register_fast_unstake, + ///See [`Pallet::deregister`]. + deregister, + ///See [`Pallet::control`]. + control { eras_to_check: ::core::primitive::u32 }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The provided Controller account was not found. + /// + ///This means that the given account is not bonded. + NotController, + ///The bonded account has already been queued. + AlreadyQueued, + ///The bonded account has active unlocking chunks. + NotFullyBonded, + ///The provided un-staker is not in the `Queue`. + NotQueued, + ///The provided un-staker is already in Head, and cannot deregister. + AlreadyHead, + ///The call is not allowed at this point because the pallet is not active. + CallNotAllowed, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A staker was unstaked. + Unstaked { + stash: my_types::sp_core::crypto::AccountId32, + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///A staker was slashed for requesting fast-unstake whilst being exposed. + Slashed { + stash: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A batch was partially checked for the given eras, but the process did not finish. + BatchChecked { eras: ::std::vec::Vec<::core::primitive::u32> }, + ///A batch of a given size was terminated. + /// + ///This is always follows by a number of `Unstaked` or `Slashed` events, marking the end + ///of the batch. A new batch will be created upon next block. + BatchFinished { size: ::core::primitive::u32 }, + ///An internal error happened. Operations will be paused now. + InternalError, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct UnstakeRequest { + pub stashes: my_types::bounded_collections::bounded_vec::BoundedVec< + (my_types::sp_core::crypto::AccountId32, ::core::primitive::u128), + >, + pub checked: my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u32, + >, + } + } + } + pub mod pallet_grandpa { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::report_equivocation`]. + report_equivocation { + equivocation_proof: ::std::boxed::Box< + my_types::sp_consensus_grandpa::EquivocationProof< + my_types::primitive_types::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: my_types::sp_session::MembershipProof, + }, + ///See [`Pallet::report_equivocation_unsigned`]. + report_equivocation_unsigned { + equivocation_proof: ::std::boxed::Box< + my_types::sp_consensus_grandpa::EquivocationProof< + my_types::primitive_types::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: my_types::sp_session::MembershipProof, + }, + ///See [`Pallet::note_stalled`]. + note_stalled { + delay: ::core::primitive::u32, + best_finalized_block_number: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Attempt to signal GRANDPA pause when the authority set isn't live + ///(either paused or already pending pause). + PauseFailed, + ///Attempt to signal GRANDPA resume when the authority set isn't paused + ///(either live or already pending resume). + ResumeFailed, + ///Attempt to signal GRANDPA change with one already pending. + ChangePending, + ///Cannot signal forced change so soon after last. + TooSoon, + ///A key ownership proof provided as part of an equivocation report is invalid. + InvalidKeyOwnershipProof, + ///An equivocation proof provided as part of an equivocation report is invalid. + InvalidEquivocationProof, + ///A given equivocation report is valid but already previously reported. + DuplicateOffenceReport, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///New authority set has been applied. + NewAuthorities { + authority_set: ::std::vec::Vec< + ( + my_types::sp_consensus_grandpa::app::Public, + ::core::primitive::u64, + ), + >, + }, + ///Current authority set has been paused. + Paused, + ///Current authority set has been resumed. + Resumed, + } + } + #[derive(Clone, Debug)] + pub struct StoredPendingChange<_0> { + pub scheduled_at: _0, + pub delay: _0, + pub next_authorities: my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< + (my_types::sp_consensus_grandpa::app::Public, ::core::primitive::u64), + >, + pub forced: ::core::option::Option<_0>, + } + #[derive(Clone, Debug)] + pub enum StoredState<_0> { + Live, + PendingPause { scheduled_at: _0, delay: _0 }, + Paused, + PendingResume { scheduled_at: _0, delay: _0 }, + } + } + pub mod pallet_identity { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Identity pallet declaration. + pub enum Call { + ///See [`Pallet::add_registrar`]. + add_registrar { + account: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::set_identity`]. + set_identity { + info: ::std::boxed::Box< + my_types::pallet_identity::types::IdentityInfo, + >, + }, + ///See [`Pallet::set_subs`]. + set_subs { + subs: ::std::vec::Vec< + ( + my_types::sp_core::crypto::AccountId32, + my_types::pallet_identity::types::Data, + ), + >, + }, + ///See [`Pallet::clear_identity`]. + clear_identity, + ///See [`Pallet::request_judgement`]. + request_judgement { + reg_index: ::core::primitive::u32, + max_fee: ::core::primitive::u128, + }, + ///See [`Pallet::cancel_request`]. + cancel_request { reg_index: ::core::primitive::u32 }, + ///See [`Pallet::set_fee`]. + set_fee { index: ::core::primitive::u32, fee: ::core::primitive::u128 }, + ///See [`Pallet::set_account_id`]. + set_account_id { + index: ::core::primitive::u32, + new: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::set_fields`]. + set_fields { + index: ::core::primitive::u32, + fields: my_types::pallet_identity::types::BitFlags< + my_types::pallet_identity::types::IdentityField, + >, + }, + ///See [`Pallet::provide_judgement`]. + provide_judgement { + reg_index: ::core::primitive::u32, + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + judgement: my_types::pallet_identity::types::Judgement< + ::core::primitive::u128, + >, + identity: my_types::primitive_types::H256, + }, + ///See [`Pallet::kill_identity`]. + kill_identity { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::add_sub`]. + add_sub { + sub: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + data: my_types::pallet_identity::types::Data, + }, + ///See [`Pallet::rename_sub`]. + rename_sub { + sub: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + data: my_types::pallet_identity::types::Data, + }, + ///See [`Pallet::remove_sub`]. + remove_sub { + sub: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::quit_sub`]. + quit_sub, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Too many subs-accounts. + TooManySubAccounts, + ///Account isn't found. + NotFound, + ///Account isn't named. + NotNamed, + ///Empty index. + EmptyIndex, + ///Fee is changed. + FeeChanged, + ///No identity found. + NoIdentity, + ///Sticky judgement. + StickyJudgement, + ///Judgement given. + JudgementGiven, + ///Invalid judgement. + InvalidJudgement, + ///The index is invalid. + InvalidIndex, + ///The target is invalid. + InvalidTarget, + ///Too many additional fields. + TooManyFields, + ///Maximum amount of registrars reached. Cannot add any more. + TooManyRegistrars, + ///Account ID is already named. + AlreadyClaimed, + ///Sender is not a sub-account. + NotSub, + ///Sub-account isn't owned by sender. + NotOwned, + ///The provided judgement was for a different identity. + JudgementForDifferentIdentity, + ///Error that occurs when there is an issue paying for judgement. + JudgementPaymentFailed, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A name was set or reset (which will remove all judgements). + IdentitySet { who: my_types::sp_core::crypto::AccountId32 }, + ///A name was cleared, and the given balance returned. + IdentityCleared { + who: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + ///A name was removed and the given balance slashed. + IdentityKilled { + who: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + ///A judgement was asked from a registrar. + JudgementRequested { + who: my_types::sp_core::crypto::AccountId32, + registrar_index: ::core::primitive::u32, + }, + ///A judgement request was retracted. + JudgementUnrequested { + who: my_types::sp_core::crypto::AccountId32, + registrar_index: ::core::primitive::u32, + }, + ///A judgement was given by a registrar. + JudgementGiven { + target: my_types::sp_core::crypto::AccountId32, + registrar_index: ::core::primitive::u32, + }, + ///A registrar was added. + RegistrarAdded { registrar_index: ::core::primitive::u32 }, + ///A sub-identity was added to an identity and the deposit paid. + SubIdentityAdded { + sub: my_types::sp_core::crypto::AccountId32, + main: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + ///A sub-identity was removed from an identity and the deposit freed. + SubIdentityRemoved { + sub: my_types::sp_core::crypto::AccountId32, + main: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + ///A sub-identity was cleared, and the given deposit repatriated from the + ///main identity account to the sub-identity account. + SubIdentityRevoked { + sub: my_types::sp_core::crypto::AccountId32, + main: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct BitFlags<_0>( + pub ::core::primitive::u64, + pub ::core::marker::PhantomData<_0>, + ); + #[derive(Clone, Debug)] + pub enum Data { + None, + Raw0([::core::primitive::u8; 0usize]), + Raw1([::core::primitive::u8; 1usize]), + Raw2([::core::primitive::u8; 2usize]), + Raw3([::core::primitive::u8; 3usize]), + Raw4([::core::primitive::u8; 4usize]), + Raw5([::core::primitive::u8; 5usize]), + Raw6([::core::primitive::u8; 6usize]), + Raw7([::core::primitive::u8; 7usize]), + Raw8([::core::primitive::u8; 8usize]), + Raw9([::core::primitive::u8; 9usize]), + Raw10([::core::primitive::u8; 10usize]), + Raw11([::core::primitive::u8; 11usize]), + Raw12([::core::primitive::u8; 12usize]), + Raw13([::core::primitive::u8; 13usize]), + Raw14([::core::primitive::u8; 14usize]), + Raw15([::core::primitive::u8; 15usize]), + Raw16([::core::primitive::u8; 16usize]), + Raw17([::core::primitive::u8; 17usize]), + Raw18([::core::primitive::u8; 18usize]), + Raw19([::core::primitive::u8; 19usize]), + Raw20([::core::primitive::u8; 20usize]), + Raw21([::core::primitive::u8; 21usize]), + Raw22([::core::primitive::u8; 22usize]), + Raw23([::core::primitive::u8; 23usize]), + Raw24([::core::primitive::u8; 24usize]), + Raw25([::core::primitive::u8; 25usize]), + Raw26([::core::primitive::u8; 26usize]), + Raw27([::core::primitive::u8; 27usize]), + Raw28([::core::primitive::u8; 28usize]), + Raw29([::core::primitive::u8; 29usize]), + Raw30([::core::primitive::u8; 30usize]), + Raw31([::core::primitive::u8; 31usize]), + Raw32([::core::primitive::u8; 32usize]), + BlakeTwo256([::core::primitive::u8; 32usize]), + Sha256([::core::primitive::u8; 32usize]), + Keccak256([::core::primitive::u8; 32usize]), + ShaThree256([::core::primitive::u8; 32usize]), + } + #[derive(Clone, Debug)] + pub enum IdentityField { + Display, + Legal, + Web, + Riot, + Email, + PgpFingerprint, + Image, + Twitter, + } + #[derive(Clone, Debug)] + pub struct IdentityInfo { + pub additional: my_types::bounded_collections::bounded_vec::BoundedVec< + ( + my_types::pallet_identity::types::Data, + my_types::pallet_identity::types::Data, + ), + >, + pub display: my_types::pallet_identity::types::Data, + pub legal: my_types::pallet_identity::types::Data, + pub web: my_types::pallet_identity::types::Data, + pub riot: my_types::pallet_identity::types::Data, + pub email: my_types::pallet_identity::types::Data, + pub pgp_fingerprint: ::core::option::Option< + [::core::primitive::u8; 20usize], + >, + pub image: my_types::pallet_identity::types::Data, + pub twitter: my_types::pallet_identity::types::Data, + } + #[derive(Clone, Debug)] + pub enum Judgement<_0> { + Unknown, + FeePaid(_0), + Reasonable, + KnownGood, + OutOfDate, + LowQuality, + Erroneous, + } + #[derive(Clone, Debug)] + pub struct RegistrarInfo<_0, _1> { + pub account: _1, + pub fee: _0, + pub fields: my_types::pallet_identity::types::BitFlags< + my_types::pallet_identity::types::IdentityField, + >, + } + #[derive(Clone, Debug)] + pub struct Registration<_0> { + pub judgements: my_types::bounded_collections::bounded_vec::BoundedVec< + ( + ::core::primitive::u32, + my_types::pallet_identity::types::Judgement<_0>, + ), + >, + pub deposit: _0, + pub info: my_types::pallet_identity::types::IdentityInfo, + } + } + } + pub mod pallet_im_online { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::heartbeat`]. + heartbeat { + heartbeat: my_types::pallet_im_online::Heartbeat< + ::core::primitive::u32, + >, + signature: my_types::pallet_im_online::sr25519::app_sr25519::Signature, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Non existent public key. + InvalidKey, + ///Duplicated heartbeat. + DuplicatedHeartbeat, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A new heartbeat was received from `AuthorityId`. + HeartbeatReceived { + authority_id: my_types::pallet_im_online::sr25519::app_sr25519::Public, + }, + ///At the end of the session, no offence was committed. + AllGood, + ///At the end of the session, at least one validator was found to be offline. + SomeOffline { + offline: ::std::vec::Vec< + ( + my_types::sp_core::crypto::AccountId32, + my_types::pallet_staking::Exposure< + my_types::sp_core::crypto::AccountId32, + ::core::primitive::u128, + >, + ), + >, + }, + } + } + pub mod sr25519 { + use super::my_types; + pub mod app_sr25519 { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + #[derive(Clone, Debug)] + pub struct Signature(pub my_types::sp_core::sr25519::Signature); + } + } + #[derive(Clone, Debug)] + pub struct Heartbeat<_0> { + pub block_number: _0, + pub session_index: ::core::primitive::u32, + pub authority_index: ::core::primitive::u32, + pub validators_len: ::core::primitive::u32, + } + } + pub mod pallet_indices { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::claim`]. + claim { index: ::core::primitive::u32 }, + ///See [`Pallet::transfer`]. + transfer { + new: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + index: ::core::primitive::u32, + }, + ///See [`Pallet::free`]. + free { index: ::core::primitive::u32 }, + ///See [`Pallet::force_transfer`]. + force_transfer { + new: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + index: ::core::primitive::u32, + freeze: ::core::primitive::bool, + }, + ///See [`Pallet::freeze`]. + freeze { index: ::core::primitive::u32 }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The index was not already assigned. + NotAssigned, + ///The index is assigned to another account. + NotOwner, + ///The index was not available. + InUse, + ///The source and destination accounts are identical. + NotTransfer, + ///The index is permanent and may not be freed/changed. + Permanent, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A account index was assigned. + IndexAssigned { + who: my_types::sp_core::crypto::AccountId32, + index: ::core::primitive::u32, + }, + ///A account index has been freed up (unassigned). + IndexFreed { index: ::core::primitive::u32 }, + ///A account index has been frozen to its current account ID. + IndexFrozen { + index: ::core::primitive::u32, + who: my_types::sp_core::crypto::AccountId32, + }, + } + } + } + pub mod pallet_membership { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::add_member`]. + add_member { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::remove_member`]. + remove_member { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::swap_member`]. + swap_member { + remove: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + add: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::reset_members`]. + reset_members { + members: ::std::vec::Vec, + }, + ///See [`Pallet::change_key`]. + change_key { + new: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::set_prime`]. + set_prime { + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::clear_prime`]. + clear_prime, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Already a member. + AlreadyMember, + ///Not a member. + NotMember, + ///Too many members. + TooManyMembers, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///The given member was added; see the transaction for who. + MemberAdded, + ///The given member was removed; see the transaction for who. + MemberRemoved, + ///Two members were swapped; see the transaction for who. + MembersSwapped, + ///The membership was reset; see the transaction for who the new set is. + MembersReset, + ///One of the members' keys changed. + KeyChanged, + ///Phantom member, never used. + Dummy, + } + } + } + pub mod pallet_message_queue { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::reap_page`]. + reap_page { + message_origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + page_index: ::core::primitive::u32, + }, + ///See [`Pallet::execute_overweight`]. + execute_overweight { + message_origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + page: ::core::primitive::u32, + index: ::core::primitive::u32, + weight_limit: my_types::sp_weights::weight_v2::Weight, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Page is not reapable because it has items remaining to be processed and is not old + ///enough. + NotReapable, + ///Page to be reaped does not exist. + NoPage, + ///The referenced message could not be found. + NoMessage, + ///The message was already processed and cannot be processed again. + AlreadyProcessed, + ///The message is queued for future execution. + Queued, + ///There is temporarily not enough weight to continue servicing messages. + InsufficientWeight, + ///This message is temporarily unprocessable. + /// + ///Such errors are expected, but not guaranteed, to resolve themselves eventually through + ///retrying. + TemporarilyUnprocessable, + ///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. + QueuePaused, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Message discarded due to an error in the `MessageProcessor` (usually a format error). + ProcessingFailed { + id: [::core::primitive::u8; 32usize], + origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + error: my_types::frame_support::traits::messages::ProcessMessageError, + }, + ///Message is processed. + Processed { + id: [::core::primitive::u8; 32usize], + origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + weight_used: my_types::sp_weights::weight_v2::Weight, + success: ::core::primitive::bool, + }, + ///Message placed in overweight queue. + OverweightEnqueued { + id: [::core::primitive::u8; 32usize], + origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + page_index: ::core::primitive::u32, + message_index: ::core::primitive::u32, + }, + ///This page was reaped. + PageReaped { + origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, + index: ::core::primitive::u32, + }, + } + } + #[derive(Clone, Debug)] + pub struct BookState<_0> { + pub begin: ::core::primitive::u32, + pub end: ::core::primitive::u32, + pub count: ::core::primitive::u32, + pub ready_neighbours: ::core::option::Option< + my_types::pallet_message_queue::Neighbours<_0>, + >, + pub message_count: ::core::primitive::u64, + pub size: ::core::primitive::u64, + } + #[derive(Clone, Debug)] + pub struct Neighbours<_0> { + pub prev: _0, + pub next: _0, + } + #[derive(Clone, Debug)] + pub struct Page<_0> { + pub remaining: _0, + pub remaining_size: _0, + pub first_index: _0, + pub first: _0, + pub last: _0, + pub heap: my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + } + } + pub mod pallet_multisig { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::as_multi_threshold_1`]. + as_multi_threshold_1 { + other_signatories: ::std::vec::Vec< + my_types::sp_core::crypto::AccountId32, + >, + call: ::std::boxed::Box, + }, + ///See [`Pallet::as_multi`]. + as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec< + my_types::sp_core::crypto::AccountId32, + >, + maybe_timepoint: ::core::option::Option< + my_types::pallet_multisig::Timepoint<::core::primitive::u32>, + >, + call: ::std::boxed::Box, + max_weight: my_types::sp_weights::weight_v2::Weight, + }, + ///See [`Pallet::approve_as_multi`]. + approve_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec< + my_types::sp_core::crypto::AccountId32, + >, + maybe_timepoint: ::core::option::Option< + my_types::pallet_multisig::Timepoint<::core::primitive::u32>, + >, + call_hash: [::core::primitive::u8; 32usize], + max_weight: my_types::sp_weights::weight_v2::Weight, + }, + ///See [`Pallet::cancel_as_multi`]. + cancel_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec< + my_types::sp_core::crypto::AccountId32, + >, + timepoint: my_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + call_hash: [::core::primitive::u8; 32usize], + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Threshold must be 2 or greater. + MinimumThreshold, + ///Call is already approved by this signatory. + AlreadyApproved, + ///Call doesn't need any (more) approvals. + NoApprovalsNeeded, + ///There are too few signatories in the list. + TooFewSignatories, + ///There are too many signatories in the list. + TooManySignatories, + ///The signatories were provided out of order; they should be ordered. + SignatoriesOutOfOrder, + ///The sender was contained in the other signatories; it shouldn't be. + SenderInSignatories, + ///Multisig operation not found when attempting to cancel. + NotFound, + ///Only the account that originally created the multisig is able to cancel it. + NotOwner, + ///No timepoint was given, yet the multisig operation is already underway. + NoTimepoint, + ///A different timepoint was given to the multisig operation that is underway. + WrongTimepoint, + ///A timepoint was given, yet no multisig operation is underway. + UnexpectedTimepoint, + ///The maximum weight information provided was too low. + MaxWeightTooLow, + ///The data to be stored is already stored. + AlreadyStored, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A new multisig operation has begun. + NewMultisig { + approving: my_types::sp_core::crypto::AccountId32, + multisig: my_types::sp_core::crypto::AccountId32, + call_hash: [::core::primitive::u8; 32usize], + }, + ///A multisig operation has been approved by someone. + MultisigApproval { + approving: my_types::sp_core::crypto::AccountId32, + timepoint: my_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + multisig: my_types::sp_core::crypto::AccountId32, + call_hash: [::core::primitive::u8; 32usize], + }, + ///A multisig operation has been executed. + MultisigExecuted { + approving: my_types::sp_core::crypto::AccountId32, + timepoint: my_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + multisig: my_types::sp_core::crypto::AccountId32, + call_hash: [::core::primitive::u8; 32usize], + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///A multisig operation has been cancelled. + MultisigCancelled { + cancelling: my_types::sp_core::crypto::AccountId32, + timepoint: my_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + multisig: my_types::sp_core::crypto::AccountId32, + call_hash: [::core::primitive::u8; 32usize], + }, + } + } + #[derive(Clone, Debug)] + pub struct Multisig<_0, _1, _2> { + pub when: my_types::pallet_multisig::Timepoint<_0>, + pub deposit: _1, + pub depositor: _2, + pub approvals: my_types::bounded_collections::bounded_vec::BoundedVec<_2>, + } + #[derive(Clone, Debug)] + pub struct Timepoint<_0> { + pub height: _0, + pub index: ::core::primitive::u32, + } + } + pub mod pallet_nomination_pools { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::join`]. + join { + amount: ::core::primitive::u128, + pool_id: ::core::primitive::u32, + }, + ///See [`Pallet::bond_extra`]. + bond_extra { + extra: my_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + ///See [`Pallet::claim_payout`]. + claim_payout, + ///See [`Pallet::unbond`]. + unbond { + member_account: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + unbonding_points: ::core::primitive::u128, + }, + ///See [`Pallet::pool_withdraw_unbonded`]. + pool_withdraw_unbonded { + pool_id: ::core::primitive::u32, + num_slashing_spans: ::core::primitive::u32, + }, + ///See [`Pallet::withdraw_unbonded`]. + withdraw_unbonded { + member_account: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + num_slashing_spans: ::core::primitive::u32, + }, + ///See [`Pallet::create`]. + create { + amount: ::core::primitive::u128, + root: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + nominator: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + bouncer: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::create_with_pool_id`]. + create_with_pool_id { + amount: ::core::primitive::u128, + root: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + nominator: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + bouncer: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + pool_id: ::core::primitive::u32, + }, + ///See [`Pallet::nominate`]. + nominate { + pool_id: ::core::primitive::u32, + validators: ::std::vec::Vec, + }, + ///See [`Pallet::set_state`]. + set_state { + pool_id: ::core::primitive::u32, + state: my_types::pallet_nomination_pools::PoolState, + }, + ///See [`Pallet::set_metadata`]. + set_metadata { + pool_id: ::core::primitive::u32, + metadata: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::set_configs`]. + set_configs { + min_join_bond: my_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + min_create_bond: my_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + max_pools: my_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members: my_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members_per_pool: my_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + global_max_commission: my_types::pallet_nomination_pools::ConfigOp< + my_types::sp_arithmetic::per_things::Perbill, + >, + }, + ///See [`Pallet::update_roles`]. + update_roles { + pool_id: ::core::primitive::u32, + new_root: my_types::pallet_nomination_pools::ConfigOp< + my_types::sp_core::crypto::AccountId32, + >, + new_nominator: my_types::pallet_nomination_pools::ConfigOp< + my_types::sp_core::crypto::AccountId32, + >, + new_bouncer: my_types::pallet_nomination_pools::ConfigOp< + my_types::sp_core::crypto::AccountId32, + >, + }, + ///See [`Pallet::chill`]. + chill { pool_id: ::core::primitive::u32 }, + ///See [`Pallet::bond_extra_other`]. + bond_extra_other { + member: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + extra: my_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + ///See [`Pallet::set_claim_permission`]. + set_claim_permission { + permission: my_types::pallet_nomination_pools::ClaimPermission, + }, + ///See [`Pallet::claim_payout_other`]. + claim_payout_other { other: my_types::sp_core::crypto::AccountId32 }, + ///See [`Pallet::set_commission`]. + set_commission { + pool_id: ::core::primitive::u32, + new_commission: ::core::option::Option< + ( + my_types::sp_arithmetic::per_things::Perbill, + my_types::sp_core::crypto::AccountId32, + ), + >, + }, + ///See [`Pallet::set_commission_max`]. + set_commission_max { + pool_id: ::core::primitive::u32, + max_commission: my_types::sp_arithmetic::per_things::Perbill, + }, + ///See [`Pallet::set_commission_change_rate`]. + set_commission_change_rate { + pool_id: ::core::primitive::u32, + change_rate: my_types::pallet_nomination_pools::CommissionChangeRate< + ::core::primitive::u32, + >, + }, + ///See [`Pallet::claim_commission`]. + claim_commission { pool_id: ::core::primitive::u32 }, + } + #[derive(Clone, Debug)] + pub enum DefensiveError { + NotEnoughSpaceInUnbondPool, + PoolNotFound, + RewardPoolNotFound, + SubPoolsNotFound, + BondedStashKilledPrematurely, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///A (bonded) pool id does not exist. + PoolNotFound, + ///An account is not a member. + PoolMemberNotFound, + ///A reward pool does not exist. In all cases this is a system logic error. + RewardPoolNotFound, + ///A sub pool does not exist. + SubPoolsNotFound, + ///An account is already delegating in another pool. An account may only belong to one + ///pool at a time. + AccountBelongsToOtherPool, + ///The member is fully unbonded (and thus cannot access the bonded and reward pool + ///anymore to, for example, collect rewards). + FullyUnbonding, + ///The member cannot unbond further chunks due to reaching the limit. + MaxUnbondingLimit, + ///None of the funds can be withdrawn yet because the bonding duration has not passed. + CannotWithdrawAny, + ///The amount does not meet the minimum bond to either join or create a pool. + /// + ///The depositor can never unbond to a value less than + ///`Pallet::depositor_min_bond`. The caller does not have nominating + ///permissions for the pool. Members can never unbond to a value below `MinJoinBond`. + MinimumBondNotMet, + ///The transaction could not be executed due to overflow risk for the pool. + OverflowRisk, + ///A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + ///other members to be permissionlessly unbonded. + NotDestroying, + ///The caller does not have nominating permissions for the pool. + NotNominator, + ///Either a) the caller cannot make a valid kick or b) the pool is not destroying. + NotKickerOrDestroying, + ///The pool is not open to join + NotOpen, + ///The system is maxed out on pools. + MaxPools, + ///Too many members in the pool or system. + MaxPoolMembers, + ///The pools state cannot be changed. + CanNotChangeState, + ///The caller does not have adequate permissions. + DoesNotHavePermission, + ///Metadata exceeds [`Config::MaxMetadataLen`] + MetadataExceedsMaxLen, + ///Some error occurred that should never happen. This should be reported to the + ///maintainers. + Defensive(my_types::pallet_nomination_pools::pallet::DefensiveError), + ///Partial unbonding now allowed permissionlessly. + PartialUnbondNotAllowedPermissionlessly, + ///The pool's max commission cannot be set higher than the existing value. + MaxCommissionRestricted, + ///The supplied commission exceeds the max allowed commission. + CommissionExceedsMaximum, + ///Not enough blocks have surpassed since the last commission update. + CommissionChangeThrottled, + ///The submitted changes to commission change rate are not allowed. + CommissionChangeRateNotAllowed, + ///There is no pending commission to claim. + NoPendingCommission, + ///No commission current has been set. + NoCommissionCurrentSet, + ///Pool id currently in use. + PoolIdInUse, + ///Pool id provided is not correct/usable. + InvalidPoolId, + ///Bonding extra is restricted to the exact pending reward amount. + BondExtraRestricted, + } + #[derive(Clone, Debug)] + ///Events of this pallet. + pub enum Event { + ///A pool has been created. + Created { + depositor: my_types::sp_core::crypto::AccountId32, + pool_id: ::core::primitive::u32, + }, + ///A member has became bonded in a pool. + Bonded { + member: my_types::sp_core::crypto::AccountId32, + pool_id: ::core::primitive::u32, + bonded: ::core::primitive::u128, + joined: ::core::primitive::bool, + }, + ///A payout has been made to a member. + PaidOut { + member: my_types::sp_core::crypto::AccountId32, + pool_id: ::core::primitive::u32, + payout: ::core::primitive::u128, + }, + ///A member has unbonded from their pool. + /// + ///- `balance` is the corresponding balance of the number of points that has been + /// requested to be unbonded (the argument of the `unbond` transaction) from the bonded + /// pool. + ///- `points` is the number of points that are issued as a result of `balance` being + ///dissolved into the corresponding unbonding pool. + ///- `era` is the era in which the balance will be unbonded. + ///In the absence of slashing, these values will match. In the presence of slashing, the + ///number of points that are issued in the unbonding pool will be less than the amount + ///requested to be unbonded. + Unbonded { + member: my_types::sp_core::crypto::AccountId32, + pool_id: ::core::primitive::u32, + balance: ::core::primitive::u128, + points: ::core::primitive::u128, + era: ::core::primitive::u32, + }, + ///A member has withdrawn from their pool. + /// + ///The given number of `points` have been dissolved in return of `balance`. + /// + ///Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + ///will be 1. + Withdrawn { + member: my_types::sp_core::crypto::AccountId32, + pool_id: ::core::primitive::u32, + balance: ::core::primitive::u128, + points: ::core::primitive::u128, + }, + ///A pool has been destroyed. + Destroyed { pool_id: ::core::primitive::u32 }, + ///The state of a pool has changed + StateChanged { + pool_id: ::core::primitive::u32, + new_state: my_types::pallet_nomination_pools::PoolState, + }, + ///A member has been removed from a pool. + /// + ///The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + MemberRemoved { + pool_id: ::core::primitive::u32, + member: my_types::sp_core::crypto::AccountId32, + }, + ///The roles of a pool have been updated to the given new roles. Note that the depositor + ///can never change. + RolesUpdated { + root: ::core::option::Option, + bouncer: ::core::option::Option< + my_types::sp_core::crypto::AccountId32, + >, + nominator: ::core::option::Option< + my_types::sp_core::crypto::AccountId32, + >, + }, + ///The active balance of pool `pool_id` has been slashed to `balance`. + PoolSlashed { + pool_id: ::core::primitive::u32, + balance: ::core::primitive::u128, + }, + ///The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + UnbondingPoolSlashed { + pool_id: ::core::primitive::u32, + era: ::core::primitive::u32, + balance: ::core::primitive::u128, + }, + ///A pool's commission setting has been changed. + PoolCommissionUpdated { + pool_id: ::core::primitive::u32, + current: ::core::option::Option< + ( + my_types::sp_arithmetic::per_things::Perbill, + my_types::sp_core::crypto::AccountId32, + ), + >, + }, + ///A pool's maximum commission setting has been changed. + PoolMaxCommissionUpdated { + pool_id: ::core::primitive::u32, + max_commission: my_types::sp_arithmetic::per_things::Perbill, + }, + ///A pool's commission `change_rate` has been changed. + PoolCommissionChangeRateUpdated { + pool_id: ::core::primitive::u32, + change_rate: my_types::pallet_nomination_pools::CommissionChangeRate< + ::core::primitive::u32, + >, + }, + ///Pool commission has been claimed. + PoolCommissionClaimed { + pool_id: ::core::primitive::u32, + commission: ::core::primitive::u128, + }, + } + } + #[derive(Clone, Debug)] + pub enum BondExtra<_0> { + FreeBalance(_0), + Rewards, + } + #[derive(Clone, Debug)] + pub struct BondedPoolInner { + pub commission: my_types::pallet_nomination_pools::Commission, + pub member_counter: ::core::primitive::u32, + pub points: ::core::primitive::u128, + pub roles: my_types::pallet_nomination_pools::PoolRoles< + my_types::sp_core::crypto::AccountId32, + >, + pub state: my_types::pallet_nomination_pools::PoolState, + } + #[derive(Clone, Debug)] + pub enum ClaimPermission { + Permissioned, + PermissionlessCompound, + PermissionlessWithdraw, + PermissionlessAll, + } + #[derive(Clone, Debug)] + pub struct Commission { + pub current: ::core::option::Option< + ( + my_types::sp_arithmetic::per_things::Perbill, + my_types::sp_core::crypto::AccountId32, + ), + >, + pub max: ::core::option::Option< + my_types::sp_arithmetic::per_things::Perbill, + >, + pub change_rate: ::core::option::Option< + my_types::pallet_nomination_pools::CommissionChangeRate< + ::core::primitive::u32, + >, + >, + pub throttle_from: ::core::option::Option<::core::primitive::u32>, + } + #[derive(Clone, Debug)] + pub struct CommissionChangeRate<_0> { + pub max_increase: my_types::sp_arithmetic::per_things::Perbill, + pub min_delay: _0, + } + #[derive(Clone, Debug)] + pub enum ConfigOp<_0> { + Noop, + Set(_0), + Remove, + } + #[derive(Clone, Debug)] + pub struct PoolMember { + pub pool_id: ::core::primitive::u32, + pub points: ::core::primitive::u128, + pub last_recorded_reward_counter: my_types::sp_arithmetic::fixed_point::FixedU128, + pub unbonding_eras: my_types::bounded_collections::bounded_btree_map::BoundedBTreeMap< + ::core::primitive::u32, + ::core::primitive::u128, + >, + } + #[derive(Clone, Debug)] + pub struct PoolRoles<_0> { + pub depositor: _0, + pub root: ::core::option::Option<_0>, + pub nominator: ::core::option::Option<_0>, + pub bouncer: ::core::option::Option<_0>, + } + #[derive(Clone, Debug)] + pub enum PoolState { + Open, + Blocked, + Destroying, + } + #[derive(Clone, Debug)] + pub struct RewardPool { + pub last_recorded_reward_counter: my_types::sp_arithmetic::fixed_point::FixedU128, + pub last_recorded_total_payouts: ::core::primitive::u128, + pub total_rewards_claimed: ::core::primitive::u128, + pub total_commission_pending: ::core::primitive::u128, + pub total_commission_claimed: ::core::primitive::u128, + } + #[derive(Clone, Debug)] + pub struct SubPools { + pub no_era: my_types::pallet_nomination_pools::UnbondPool, + pub with_era: my_types::bounded_collections::bounded_btree_map::BoundedBTreeMap< + ::core::primitive::u32, + my_types::pallet_nomination_pools::UnbondPool, + >, + } + #[derive(Clone, Debug)] + pub struct UnbondPool { + pub points: ::core::primitive::u128, + pub balance: ::core::primitive::u128, + } + } + pub mod pallet_offences { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Events type. + pub enum Event { + ///There is an offence reported of the given `kind` happened at the `session_index` and + ///(kind-specific) time slot. This event is not deposited for duplicate slashes. + ///\[kind, timeslot\]. + Offence { + kind: [::core::primitive::u8; 16usize], + timeslot: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod pallet_preimage { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::note_preimage`]. + note_preimage { bytes: ::std::vec::Vec<::core::primitive::u8> }, + ///See [`Pallet::unnote_preimage`]. + unnote_preimage { hash: my_types::primitive_types::H256 }, + ///See [`Pallet::request_preimage`]. + request_preimage { hash: my_types::primitive_types::H256 }, + ///See [`Pallet::unrequest_preimage`]. + unrequest_preimage { hash: my_types::primitive_types::H256 }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Preimage is too large to store on-chain. + TooBig, + ///Preimage has already been noted on-chain. + AlreadyNoted, + ///The user is not authorized to perform this action. + NotAuthorized, + ///The preimage cannot be removed since it has not yet been noted. + NotNoted, + ///A preimage may not be removed when there are outstanding requests. + Requested, + ///The preimage request cannot be removed since no outstanding requests exist. + NotRequested, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A preimage has been noted. + Noted { hash: my_types::primitive_types::H256 }, + ///A preimage has been requested. + Requested { hash: my_types::primitive_types::H256 }, + ///A preimage has ben cleared. + Cleared { hash: my_types::primitive_types::H256 }, + } + } + #[derive(Clone, Debug)] + pub enum RequestStatus<_0, _1> { + Unrequested { deposit: (_0, _1), len: ::core::primitive::u32 }, + Requested { + deposit: ::core::option::Option<(_0, _1)>, + count: ::core::primitive::u32, + len: ::core::option::Option<::core::primitive::u32>, + }, + } + } + pub mod pallet_proxy { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::proxy`]. + proxy { + real: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + force_proxy_type: ::core::option::Option< + my_types::polkadot_runtime::ProxyType, + >, + call: ::std::boxed::Box, + }, + ///See [`Pallet::add_proxy`]. + add_proxy { + delegate: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + proxy_type: my_types::polkadot_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + ///See [`Pallet::remove_proxy`]. + remove_proxy { + delegate: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + proxy_type: my_types::polkadot_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + ///See [`Pallet::remove_proxies`]. + remove_proxies, + ///See [`Pallet::create_pure`]. + create_pure { + proxy_type: my_types::polkadot_runtime::ProxyType, + delay: ::core::primitive::u32, + index: ::core::primitive::u16, + }, + ///See [`Pallet::kill_pure`]. + kill_pure { + spawner: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + proxy_type: my_types::polkadot_runtime::ProxyType, + index: ::core::primitive::u16, + height: ::core::primitive::u32, + ext_index: ::core::primitive::u32, + }, + ///See [`Pallet::announce`]. + announce { + real: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + call_hash: my_types::primitive_types::H256, + }, + ///See [`Pallet::remove_announcement`]. + remove_announcement { + real: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + call_hash: my_types::primitive_types::H256, + }, + ///See [`Pallet::reject_announcement`]. + reject_announcement { + delegate: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + call_hash: my_types::primitive_types::H256, + }, + ///See [`Pallet::proxy_announced`]. + proxy_announced { + delegate: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + real: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + force_proxy_type: ::core::option::Option< + my_types::polkadot_runtime::ProxyType, + >, + call: ::std::boxed::Box, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///There are too many proxies registered or too many announcements pending. + TooMany, + ///Proxy registration not found. + NotFound, + ///Sender is not a proxy of the account to be proxied. + NotProxy, + ///A call which is incompatible with the proxy type's filter was attempted. + Unproxyable, + ///Account is already a proxy. + Duplicate, + ///Call may not be made by proxy because it may escalate its privileges. + NoPermission, + ///Announcement, if made at all, was made too recently. + Unannounced, + ///Cannot add self as proxy. + NoSelfProxy, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A proxy was executed correctly, with the given. + ProxyExecuted { + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///A pure account has been created by new proxy with given + ///disambiguation index and proxy type. + PureCreated { + pure: my_types::sp_core::crypto::AccountId32, + who: my_types::sp_core::crypto::AccountId32, + proxy_type: my_types::polkadot_runtime::ProxyType, + disambiguation_index: ::core::primitive::u16, + }, + ///An announcement was placed to make a call in the future. + Announced { + real: my_types::sp_core::crypto::AccountId32, + proxy: my_types::sp_core::crypto::AccountId32, + call_hash: my_types::primitive_types::H256, + }, + ///A proxy was added. + ProxyAdded { + delegator: my_types::sp_core::crypto::AccountId32, + delegatee: my_types::sp_core::crypto::AccountId32, + proxy_type: my_types::polkadot_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + ///A proxy was removed. + ProxyRemoved { + delegator: my_types::sp_core::crypto::AccountId32, + delegatee: my_types::sp_core::crypto::AccountId32, + proxy_type: my_types::polkadot_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + } + } + #[derive(Clone, Debug)] + pub struct Announcement<_0, _1, _2> { + pub real: _0, + pub call_hash: _1, + pub height: _2, + } + #[derive(Clone, Debug)] + pub struct ProxyDefinition<_0, _1, _2> { + pub delegate: _0, + pub proxy_type: _1, + pub delay: _2, + } + } + pub mod pallet_referenda { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::submit`]. + submit { + proposal_origin: ::std::boxed::Box< + my_types::polkadot_runtime::OriginCaller, + >, + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + enactment_moment: my_types::frame_support::traits::schedule::DispatchTime< + ::core::primitive::u32, + >, + }, + ///See [`Pallet::place_decision_deposit`]. + place_decision_deposit { index: ::core::primitive::u32 }, + ///See [`Pallet::refund_decision_deposit`]. + refund_decision_deposit { index: ::core::primitive::u32 }, + ///See [`Pallet::cancel`]. + cancel { index: ::core::primitive::u32 }, + ///See [`Pallet::kill`]. + kill { index: ::core::primitive::u32 }, + ///See [`Pallet::nudge_referendum`]. + nudge_referendum { index: ::core::primitive::u32 }, + ///See [`Pallet::one_fewer_deciding`]. + one_fewer_deciding { track: ::core::primitive::u16 }, + ///See [`Pallet::refund_submission_deposit`]. + refund_submission_deposit { index: ::core::primitive::u32 }, + ///See [`Pallet::set_metadata`]. + set_metadata { + index: ::core::primitive::u32, + maybe_hash: ::core::option::Option, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Referendum is not ongoing. + NotOngoing, + ///Referendum's decision deposit is already paid. + HasDeposit, + ///The track identifier given was invalid. + BadTrack, + ///There are already a full complement of referenda in progress for this track. + Full, + ///The queue of the track is empty. + QueueEmpty, + ///The referendum index provided is invalid in this context. + BadReferendum, + ///There was nothing to do in the advancement. + NothingToDo, + ///No track exists for the proposal origin. + NoTrack, + ///Any deposit cannot be refunded until after the decision is over. + Unfinished, + ///The deposit refunder is not the depositor. + NoPermission, + ///The deposit cannot be refunded since none was made. + NoDeposit, + ///The referendum status is invalid for this operation. + BadStatus, + ///The preimage does not exist. + PreimageNotExist, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A referendum has been submitted. + Submitted { + index: ::core::primitive::u32, + track: ::core::primitive::u16, + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + }, + ///The decision deposit has been placed. + DecisionDepositPlaced { + index: ::core::primitive::u32, + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///The decision deposit has been refunded. + DecisionDepositRefunded { + index: ::core::primitive::u32, + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A deposit has been slashaed. + DepositSlashed { + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A referendum has moved into the deciding phase. + DecisionStarted { + index: ::core::primitive::u32, + track: ::core::primitive::u16, + proposal: my_types::frame_support::traits::preimages::Bounded< + my_types::polkadot_runtime::RuntimeCall, + >, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ConfirmStarted { index: ::core::primitive::u32 }, + ConfirmAborted { index: ::core::primitive::u32 }, + ///A referendum has ended its confirmation phase and is ready for approval. + Confirmed { + index: ::core::primitive::u32, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ///A referendum has been approved and its proposal has been scheduled. + Approved { index: ::core::primitive::u32 }, + ///A proposal has been rejected by referendum. + Rejected { + index: ::core::primitive::u32, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ///A referendum has been timed out without being decided. + TimedOut { + index: ::core::primitive::u32, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ///A referendum has been cancelled. + Cancelled { + index: ::core::primitive::u32, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ///A referendum has been killed. + Killed { + index: ::core::primitive::u32, + tally: my_types::pallet_conviction_voting::types::Tally< + ::core::primitive::u128, + >, + }, + ///The submission deposit has been refunded. + SubmissionDepositRefunded { + index: ::core::primitive::u32, + who: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Metadata for a referendum has been set. + MetadataSet { + index: ::core::primitive::u32, + hash: my_types::primitive_types::H256, + }, + ///Metadata for a referendum has been cleared. + MetadataCleared { + index: ::core::primitive::u32, + hash: my_types::primitive_types::H256, + }, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Curve { + LinearDecreasing { + length: my_types::sp_arithmetic::per_things::Perbill, + floor: my_types::sp_arithmetic::per_things::Perbill, + ceil: my_types::sp_arithmetic::per_things::Perbill, + }, + SteppedDecreasing { + begin: my_types::sp_arithmetic::per_things::Perbill, + end: my_types::sp_arithmetic::per_things::Perbill, + step: my_types::sp_arithmetic::per_things::Perbill, + period: my_types::sp_arithmetic::per_things::Perbill, + }, + Reciprocal { + factor: my_types::sp_arithmetic::fixed_point::FixedI64, + x_offset: my_types::sp_arithmetic::fixed_point::FixedI64, + y_offset: my_types::sp_arithmetic::fixed_point::FixedI64, + }, + } + #[derive(Clone, Debug)] + pub struct DecidingStatus<_0> { + pub since: _0, + pub confirming: ::core::option::Option<_0>, + } + #[derive(Clone, Debug)] + pub struct Deposit<_0, _1> { + pub who: _0, + pub amount: _1, + } + #[derive(Clone, Debug)] + pub enum ReferendumInfo<_0, _1, _2, _3, _4, _5, _6, _7> { + Ongoing( + my_types::pallet_referenda::types::ReferendumStatus< + _0, + _1, + _2, + _3, + _4, + _5, + _6, + _7, + >, + ), + Approved( + _2, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ), + Rejected( + _2, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ), + Cancelled( + _2, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ), + TimedOut( + _2, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + ), + Killed(_2), + } + #[derive(Clone, Debug)] + pub struct ReferendumStatus<_0, _1, _2, _3, _4, _5, _6, _7> { + pub track: _0, + pub origin: _1, + pub proposal: _3, + pub enactment: my_types::frame_support::traits::schedule::DispatchTime< + _2, + >, + pub submitted: _2, + pub submission_deposit: my_types::pallet_referenda::types::Deposit< + _6, + _4, + >, + pub decision_deposit: ::core::option::Option< + my_types::pallet_referenda::types::Deposit<_6, _4>, + >, + pub deciding: ::core::option::Option< + my_types::pallet_referenda::types::DecidingStatus<_2>, + >, + pub tally: _5, + pub in_queue: ::core::primitive::bool, + pub alarm: ::core::option::Option<(_2, _7)>, + } + #[derive(Clone, Debug)] + pub struct TrackInfo<_0, _1> { + pub name: ::std::string::String, + pub max_deciding: ::core::primitive::u32, + pub decision_deposit: _0, + pub prepare_period: _1, + pub decision_period: _1, + pub confirm_period: _1, + pub min_enactment_period: _1, + pub min_approval: my_types::pallet_referenda::types::Curve, + pub min_support: my_types::pallet_referenda::types::Curve, + } + } + } + pub mod pallet_scheduler { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::schedule`]. + schedule { + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option< + (::core::primitive::u32, ::core::primitive::u32), + >, + priority: ::core::primitive::u8, + call: ::std::boxed::Box, + }, + ///See [`Pallet::cancel`]. + cancel { when: ::core::primitive::u32, index: ::core::primitive::u32 }, + ///See [`Pallet::schedule_named`]. + schedule_named { + id: [::core::primitive::u8; 32usize], + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option< + (::core::primitive::u32, ::core::primitive::u32), + >, + priority: ::core::primitive::u8, + call: ::std::boxed::Box, + }, + ///See [`Pallet::cancel_named`]. + cancel_named { id: [::core::primitive::u8; 32usize] }, + ///See [`Pallet::schedule_after`]. + schedule_after { + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option< + (::core::primitive::u32, ::core::primitive::u32), + >, + priority: ::core::primitive::u8, + call: ::std::boxed::Box, + }, + ///See [`Pallet::schedule_named_after`]. + schedule_named_after { + id: [::core::primitive::u8; 32usize], + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option< + (::core::primitive::u32, ::core::primitive::u32), + >, + priority: ::core::primitive::u8, + call: ::std::boxed::Box, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Failed to schedule a call + FailedToSchedule, + ///Cannot find the scheduled call. + NotFound, + ///Given target block number is in the past. + TargetBlockNumberInPast, + ///Reschedule failed because it does not change scheduled time. + RescheduleNoChange, + ///Attempt to use a non-named function on a named task. + Named, + } + #[derive(Clone, Debug)] + ///Events type. + pub enum Event { + ///Scheduled some task. + Scheduled { + when: ::core::primitive::u32, + index: ::core::primitive::u32, + }, + ///Canceled some task. + Canceled { when: ::core::primitive::u32, index: ::core::primitive::u32 }, + ///Dispatched some task. + Dispatched { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///The call for the provided hash was not found so the task has been aborted. + CallUnavailable { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + ///The given task was unable to be renewed since the agenda is full at that block. + PeriodicFailed { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + ///The given task can never be executed since it is overweight. + PermanentlyOverweight { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + } + } + #[derive(Clone, Debug)] + pub struct Scheduled<_0, _1, _2, _3, _4> { + pub maybe_id: ::core::option::Option<_0>, + pub priority: ::core::primitive::u8, + pub call: _1, + pub maybe_periodic: ::core::option::Option<(_2, _2)>, + pub origin: _3, + pub __ignore: ::core::marker::PhantomData<_4>, + } + } + pub mod pallet_session { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::set_keys`]. + set_keys { + keys: my_types::polkadot_runtime::SessionKeys, + proof: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::purge_keys`]. + purge_keys, + } + #[derive(Clone, Debug)] + ///Error for the session pallet. + pub enum Error { + ///Invalid ownership proof. + InvalidProof, + ///No associated validator ID for account. + NoAssociatedValidatorId, + ///Registered duplicate key. + DuplicatedKey, + ///No keys are associated with this account. + NoKeys, + ///Key setting account is not live, so it's impossible to associate keys. + NoAccount, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///New session has happened. Note that the argument is the session index, not the + ///block number as the type might suggest. + NewSession { session_index: ::core::primitive::u32 }, + } + } + } + pub mod pallet_staking { + use super::my_types; + pub mod pallet { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::bond`]. + bond { + value: ::core::primitive::u128, + payee: my_types::pallet_staking::RewardDestination< + my_types::sp_core::crypto::AccountId32, + >, + }, + ///See [`Pallet::bond_extra`]. + bond_extra { max_additional: ::core::primitive::u128 }, + ///See [`Pallet::unbond`]. + unbond { value: ::core::primitive::u128 }, + ///See [`Pallet::withdraw_unbonded`]. + withdraw_unbonded { num_slashing_spans: ::core::primitive::u32 }, + ///See [`Pallet::validate`]. + validate { prefs: my_types::pallet_staking::ValidatorPrefs }, + ///See [`Pallet::nominate`]. + nominate { + targets: ::std::vec::Vec< + my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + >, + }, + ///See [`Pallet::chill`]. + chill, + ///See [`Pallet::set_payee`]. + set_payee { + payee: my_types::pallet_staking::RewardDestination< + my_types::sp_core::crypto::AccountId32, + >, + }, + ///See [`Pallet::set_controller`]. + set_controller, + ///See [`Pallet::set_validator_count`]. + set_validator_count { new: ::core::primitive::u32 }, + ///See [`Pallet::increase_validator_count`]. + increase_validator_count { additional: ::core::primitive::u32 }, + ///See [`Pallet::scale_validator_count`]. + scale_validator_count { + factor: my_types::sp_arithmetic::per_things::Percent, + }, + ///See [`Pallet::force_no_eras`]. + force_no_eras, + ///See [`Pallet::force_new_era`]. + force_new_era, + ///See [`Pallet::set_invulnerables`]. + set_invulnerables { + invulnerables: ::std::vec::Vec< + my_types::sp_core::crypto::AccountId32, + >, + }, + ///See [`Pallet::force_unstake`]. + force_unstake { + stash: my_types::sp_core::crypto::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + ///See [`Pallet::force_new_era_always`]. + force_new_era_always, + ///See [`Pallet::cancel_deferred_slash`]. + cancel_deferred_slash { + era: ::core::primitive::u32, + slash_indices: ::std::vec::Vec<::core::primitive::u32>, + }, + ///See [`Pallet::payout_stakers`]. + payout_stakers { + validator_stash: my_types::sp_core::crypto::AccountId32, + era: ::core::primitive::u32, + }, + ///See [`Pallet::rebond`]. + rebond { value: ::core::primitive::u128 }, + ///See [`Pallet::reap_stash`]. + reap_stash { + stash: my_types::sp_core::crypto::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + ///See [`Pallet::kick`]. + kick { + who: ::std::vec::Vec< + my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + >, + }, + ///See [`Pallet::set_staking_configs`]. + set_staking_configs { + min_nominator_bond: my_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + min_validator_bond: my_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + max_nominator_count: my_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + max_validator_count: my_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + chill_threshold: my_types::pallet_staking::pallet::pallet::ConfigOp< + my_types::sp_arithmetic::per_things::Percent, + >, + min_commission: my_types::pallet_staking::pallet::pallet::ConfigOp< + my_types::sp_arithmetic::per_things::Perbill, + >, + }, + ///See [`Pallet::chill_other`]. + chill_other { controller: my_types::sp_core::crypto::AccountId32 }, + ///See [`Pallet::force_apply_min_commission`]. + force_apply_min_commission { + validator_stash: my_types::sp_core::crypto::AccountId32, + }, + ///See [`Pallet::set_min_commission`]. + set_min_commission { + new: my_types::sp_arithmetic::per_things::Perbill, + }, + } + #[derive(Clone, Debug)] + pub enum ConfigOp<_0> { + Noop, + Set(_0), + Remove, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Not a controller account. + NotController, + ///Not a stash account. + NotStash, + ///Stash is already bonded. + AlreadyBonded, + ///Controller is already paired. + AlreadyPaired, + ///Targets cannot be empty. + EmptyTargets, + ///Duplicate index. + DuplicateIndex, + ///Slash record index out of bounds. + InvalidSlashIndex, + ///Cannot have a validator or nominator role, with value less than the minimum defined by + ///governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + ///intention, `chill` first to remove one's role as validator/nominator. + InsufficientBond, + ///Can not schedule more unlock chunks. + NoMoreChunks, + ///Can not rebond without unlocking chunks. + NoUnlockChunk, + ///Attempting to target a stash that still has funds. + FundedTarget, + ///Invalid era to reward. + InvalidEraToReward, + ///Invalid number of nominations. + InvalidNumberOfNominations, + ///Items are not sorted and unique. + NotSortedAndUnique, + ///Rewards for this era have already been claimed for this validator. + AlreadyClaimed, + ///Incorrect previous history depth input provided. + IncorrectHistoryDepth, + ///Incorrect number of slashing spans provided. + IncorrectSlashingSpans, + ///Internal state has become somehow corrupted and the operation cannot continue. + BadState, + ///Too many nomination targets supplied. + TooManyTargets, + ///A nomination target was supplied that was blocked or otherwise not a validator. + BadTarget, + ///The user has enough bond and thus cannot be chilled forcefully by an external person. + CannotChillOther, + ///There are too many nominators in the system. Governance needs to adjust the staking + ///settings to keep things safe for the runtime. + TooManyNominators, + ///There are too many validator candidates in the system. Governance needs to adjust the + ///staking settings to keep things safe for the runtime. + TooManyValidators, + ///Commission is too low. Must be at least `MinCommission`. + CommissionTooLow, + ///Some bound is not met. + BoundNotMet, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///The era payout has been set; the first balance is the validator-payout; the second is + ///the remainder from the maximum amount of reward. + EraPaid { + era_index: ::core::primitive::u32, + validator_payout: ::core::primitive::u128, + remainder: ::core::primitive::u128, + }, + ///The nominator has been rewarded by this amount. + Rewarded { + stash: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A staker (validator or nominator) has been slashed by the given amount. + Slashed { + staker: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A slash for the given validator, for the given percentage of their stake, at the given + ///era as been reported. + SlashReported { + validator: my_types::sp_core::crypto::AccountId32, + fraction: my_types::sp_arithmetic::per_things::Perbill, + slash_era: ::core::primitive::u32, + }, + ///An old slashing report from a prior era was discarded because it could + ///not be processed. + OldSlashingReportDiscarded { session_index: ::core::primitive::u32 }, + ///A new set of stakers was elected. + StakersElected, + ///An account has bonded this amount. \[stash, amount\] + /// + ///NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + ///it will not be emitted for staking rewards when they are added to stake. + Bonded { + stash: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///An account has unbonded this amount. + Unbonded { + stash: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + ///from the unlocking queue. + Withdrawn { + stash: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A nominator has been kicked from a validator. + Kicked { + nominator: my_types::sp_core::crypto::AccountId32, + stash: my_types::sp_core::crypto::AccountId32, + }, + ///The election failed. No new era is planned. + StakingElectionFailed, + ///An account has stopped participating as either a validator or nominator. + Chilled { stash: my_types::sp_core::crypto::AccountId32 }, + ///The stakers' rewards are getting paid. + PayoutStarted { + era_index: ::core::primitive::u32, + validator_stash: my_types::sp_core::crypto::AccountId32, + }, + ///A validator has set their preferences. + ValidatorPrefsSet { + stash: my_types::sp_core::crypto::AccountId32, + prefs: my_types::pallet_staking::ValidatorPrefs, + }, + ///A new force era mode was set. + ForceEra { mode: my_types::pallet_staking::Forcing }, + } + } + } + pub mod slashing { + use super::my_types; + #[derive(Clone, Debug)] + pub struct SlashingSpans { + pub span_index: ::core::primitive::u32, + pub last_start: ::core::primitive::u32, + pub last_nonzero_slash: ::core::primitive::u32, + pub prior: ::std::vec::Vec<::core::primitive::u32>, + } + #[derive(Clone, Debug)] + pub struct SpanRecord<_0> { + pub slashed: _0, + pub paid_out: _0, + } + } + #[derive(Clone, Debug)] + pub struct ActiveEraInfo { + pub index: ::core::primitive::u32, + pub start: ::core::option::Option<::core::primitive::u64>, + } + #[derive(Clone, Debug)] + pub struct EraRewardPoints<_0> { + pub total: ::core::primitive::u32, + pub individual: ::std::collections::BTreeMap<_0, ::core::primitive::u32>, + } + #[derive(Clone, Debug)] + pub struct Exposure<_0, _1> { + pub total: _1, + pub own: _1, + pub others: ::std::vec::Vec< + my_types::pallet_staking::IndividualExposure<_0, _1>, + >, + } + #[derive(Clone, Debug)] + pub enum Forcing { + NotForcing, + ForceNew, + ForceNone, + ForceAlways, + } + #[derive(Clone, Debug)] + pub struct IndividualExposure<_0, _1> { + pub who: _0, + pub value: _1, + } + #[derive(Clone, Debug)] + pub struct Nominations { + pub targets: my_types::bounded_collections::bounded_vec::BoundedVec< + my_types::sp_core::crypto::AccountId32, + >, + pub submitted_in: ::core::primitive::u32, + pub suppressed: ::core::primitive::bool, + } + #[derive(Clone, Debug)] + pub enum RewardDestination<_0> { + Staked, + Stash, + Controller, + Account(_0), + None, + } + #[derive(Clone, Debug)] + pub struct StakingLedger { + pub stash: my_types::sp_core::crypto::AccountId32, + pub total: ::core::primitive::u128, + pub active: ::core::primitive::u128, + pub unlocking: my_types::bounded_collections::bounded_vec::BoundedVec< + my_types::pallet_staking::UnlockChunk<::core::primitive::u128>, + >, + pub claimed_rewards: my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u32, + >, + } + #[derive(Clone, Debug)] + pub struct UnappliedSlash<_0, _1> { + pub validator: _0, + pub own: _1, + pub others: ::std::vec::Vec<(_0, _1)>, + pub reporters: ::std::vec::Vec<_0>, + pub payout: _1, + } + #[derive(Clone, Debug)] + pub struct UnlockChunk<_0> { + pub value: _0, + pub era: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct ValidatorPrefs { + pub commission: my_types::sp_arithmetic::per_things::Perbill, + pub blocked: ::core::primitive::bool, + } + } + pub mod pallet_timestamp { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::set`]. + set { now: ::core::primitive::u64 }, + } + } + } + pub mod pallet_tips { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::report_awesome`]. + report_awesome { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::retract_tip`]. + retract_tip { hash: my_types::primitive_types::H256 }, + ///See [`Pallet::tip_new`]. + tip_new { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + tip_value: ::core::primitive::u128, + }, + ///See [`Pallet::tip`]. + tip { + hash: my_types::primitive_types::H256, + tip_value: ::core::primitive::u128, + }, + ///See [`Pallet::close_tip`]. + close_tip { hash: my_types::primitive_types::H256 }, + ///See [`Pallet::slash_tip`]. + slash_tip { hash: my_types::primitive_types::H256 }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The reason given is just too big. + ReasonTooBig, + ///The tip was already found/started. + AlreadyKnown, + ///The tip hash is unknown. + UnknownTip, + ///The account attempting to retract the tip is not the finder of the tip. + NotFinder, + ///The tip cannot be claimed/closed because there are not enough tippers yet. + StillOpen, + ///The tip cannot be claimed/closed because it's still in the countdown period. + Premature, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A new tip suggestion has been opened. + NewTip { tip_hash: my_types::primitive_types::H256 }, + ///A tip suggestion has reached threshold and is closing. + TipClosing { tip_hash: my_types::primitive_types::H256 }, + ///A tip suggestion has been closed. + TipClosed { + tip_hash: my_types::primitive_types::H256, + who: my_types::sp_core::crypto::AccountId32, + payout: ::core::primitive::u128, + }, + ///A tip suggestion has been retracted. + TipRetracted { tip_hash: my_types::primitive_types::H256 }, + ///A tip suggestion has been slashed. + TipSlashed { + tip_hash: my_types::primitive_types::H256, + finder: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + }, + } + } + #[derive(Clone, Debug)] + pub struct OpenTip<_0, _1, _2, _3> { + pub reason: _3, + pub who: _0, + pub finder: _0, + pub deposit: _1, + pub closes: ::core::option::Option<_2>, + pub tips: ::std::vec::Vec<(_0, _1)>, + pub finders_fee: ::core::primitive::bool, + } + } + pub mod pallet_transaction_payment { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + ///has been paid by `who`. + TransactionFeePaid { + who: my_types::sp_core::crypto::AccountId32, + actual_fee: ::core::primitive::u128, + tip: ::core::primitive::u128, + }, + } + } + pub mod types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct FeeDetails<_0> { + pub inclusion_fee: ::core::option::Option< + my_types::pallet_transaction_payment::types::InclusionFee<_0>, + >, + pub tip: _0, + } + #[derive(Clone, Debug)] + pub struct InclusionFee<_0> { + pub base_fee: _0, + pub len_fee: _0, + pub adjusted_weight_fee: _0, + } + #[derive(Clone, Debug)] + pub struct RuntimeDispatchInfo<_0, _1> { + pub weight: _1, + pub class: my_types::frame_support::dispatch::DispatchClass, + pub partial_fee: _0, + } + } + #[derive(Clone, Debug)] + pub struct ChargeTransactionPayment(pub ::core::primitive::u128); + #[derive(Clone, Debug)] + pub enum Releases { + V1Ancient, + V2, + } + } + pub mod pallet_treasury { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::propose_spend`]. + propose_spend { + value: ::core::primitive::u128, + beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::reject_proposal`]. + reject_proposal { proposal_id: ::core::primitive::u32 }, + ///See [`Pallet::approve_proposal`]. + approve_proposal { proposal_id: ::core::primitive::u32 }, + ///See [`Pallet::spend`]. + spend { + amount: ::core::primitive::u128, + beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::remove_approval`]. + remove_approval { proposal_id: ::core::primitive::u32 }, + } + #[derive(Clone, Debug)] + ///Error for the treasury pallet. + pub enum Error { + ///Proposer's balance is too low. + InsufficientProposersBalance, + ///No proposal or bounty at that index. + InvalidIndex, + ///Too many approvals in the queue. + TooManyApprovals, + ///The spend origin is valid but the amount it is allowed to spend is lower than the + ///amount to be spent. + InsufficientPermission, + ///Proposal has not been approved. + ProposalNotApproved, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///New proposal. + Proposed { proposal_index: ::core::primitive::u32 }, + ///We have ended a spend period and will now allocate funds. + Spending { budget_remaining: ::core::primitive::u128 }, + ///Some funds have been allocated. + Awarded { + proposal_index: ::core::primitive::u32, + award: ::core::primitive::u128, + account: my_types::sp_core::crypto::AccountId32, + }, + ///A proposal was rejected; funds were slashed. + Rejected { + proposal_index: ::core::primitive::u32, + slashed: ::core::primitive::u128, + }, + ///Some of our funds have been burnt. + Burnt { burnt_funds: ::core::primitive::u128 }, + ///Spending has finished; this is the amount that rolls over until next spend. + Rollover { rollover_balance: ::core::primitive::u128 }, + ///Some funds have been deposited. + Deposit { value: ::core::primitive::u128 }, + ///A new spend proposal has been approved. + SpendApproved { + proposal_index: ::core::primitive::u32, + amount: ::core::primitive::u128, + beneficiary: my_types::sp_core::crypto::AccountId32, + }, + ///The inactive funds of the pallet have been updated. + UpdatedInactive { + reactivated: ::core::primitive::u128, + deactivated: ::core::primitive::u128, + }, + } + } + #[derive(Clone, Debug)] + pub struct Proposal<_0, _1> { + pub proposer: _0, + pub value: _1, + pub beneficiary: _0, + pub bond: _1, + } + } + pub mod pallet_utility { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::batch`]. + batch { + calls: ::std::vec::Vec, + }, + ///See [`Pallet::as_derivative`]. + as_derivative { + index: ::core::primitive::u16, + call: ::std::boxed::Box, + }, + ///See [`Pallet::batch_all`]. + batch_all { + calls: ::std::vec::Vec, + }, + ///See [`Pallet::dispatch_as`]. + dispatch_as { + as_origin: ::std::boxed::Box< + my_types::polkadot_runtime::OriginCaller, + >, + call: ::std::boxed::Box, + }, + ///See [`Pallet::force_batch`]. + force_batch { + calls: ::std::vec::Vec, + }, + ///See [`Pallet::with_weight`]. + with_weight { + call: ::std::boxed::Box, + weight: my_types::sp_weights::weight_v2::Weight, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Too many calls batched. + TooManyCalls, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Batch of dispatches did not complete fully. Index of first failing dispatch given, as + ///well as the error. + BatchInterrupted { + index: ::core::primitive::u32, + error: my_types::sp_runtime::DispatchError, + }, + ///Batch of dispatches completed fully with no error. + BatchCompleted, + ///Batch of dispatches completed but has errors. + BatchCompletedWithErrors, + ///A single item within a Batch of dispatches has completed with no error. + ItemCompleted, + ///A single item within a Batch of dispatches has completed with error. + ItemFailed { error: my_types::sp_runtime::DispatchError }, + ///A call was dispatched. + DispatchedAs { + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + } + } + } + pub mod pallet_vesting { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::vest`]. + vest, + ///See [`Pallet::vest_other`]. + vest_other { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + }, + ///See [`Pallet::vested_transfer`]. + vested_transfer { + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + schedule: my_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + ///See [`Pallet::force_vested_transfer`]. + force_vested_transfer { + source: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + target: my_types::sp_runtime::multiaddress::MultiAddress< + my_types::sp_core::crypto::AccountId32, + (), + >, + schedule: my_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + ///See [`Pallet::merge_schedules`]. + merge_schedules { + schedule1_index: ::core::primitive::u32, + schedule2_index: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///Error for the vesting pallet. + pub enum Error { + ///The account given is not vesting. + NotVesting, + ///The account already has `MaxVestingSchedules` count of schedules and thus + ///cannot add another one. Consider merging existing schedules in order to add another. + AtMaxVestingSchedules, + ///Amount being transferred is too low to create a vesting schedule. + AmountLow, + ///An index was out of bounds of the vesting schedules. + ScheduleIndexOutOfBounds, + ///Failed to create a new schedule because some parameter was invalid. + InvalidScheduleParams, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///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). + VestingUpdated { + account: my_types::sp_core::crypto::AccountId32, + unvested: ::core::primitive::u128, + }, + ///An \[account\] has become fully vested. + VestingCompleted { account: my_types::sp_core::crypto::AccountId32 }, + } + } + pub mod vesting_info { + use super::my_types; + #[derive(Clone, Debug)] + pub struct VestingInfo<_0, _1> { + pub locked: _0, + pub per_block: _0, + pub starting_block: _1, + } + } + #[derive(Clone, Debug)] + pub enum Releases { + V0, + V1, + } + } + pub mod pallet_whitelist { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::whitelist_call`]. + whitelist_call { call_hash: my_types::primitive_types::H256 }, + ///See [`Pallet::remove_whitelisted_call`]. + remove_whitelisted_call { call_hash: my_types::primitive_types::H256 }, + ///See [`Pallet::dispatch_whitelisted_call`]. + dispatch_whitelisted_call { + call_hash: my_types::primitive_types::H256, + call_encoded_len: ::core::primitive::u32, + call_weight_witness: my_types::sp_weights::weight_v2::Weight, + }, + ///See [`Pallet::dispatch_whitelisted_call_with_preimage`]. + dispatch_whitelisted_call_with_preimage { + call: ::std::boxed::Box, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The preimage of the call hash could not be loaded. + UnavailablePreImage, + ///The call could not be decoded. + UndecodableCall, + ///The weight of the decoded call was higher than the witness. + InvalidCallWeightWitness, + ///The call was not whitelisted. + CallIsNotWhitelisted, + ///The call was already whitelisted; No-Op. + CallAlreadyWhitelisted, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + CallWhitelisted { call_hash: my_types::primitive_types::H256 }, + WhitelistedCallRemoved { call_hash: my_types::primitive_types::H256 }, + WhitelistedCallDispatched { + call_hash: my_types::primitive_types::H256, + result: ::core::result::Result< + my_types::frame_support::dispatch::PostDispatchInfo, + my_types::sp_runtime::DispatchErrorWithPostInfo< + my_types::frame_support::dispatch::PostDispatchInfo, + >, + >, + }, + } + } + } + pub mod pallet_xcm { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::send`]. + send { + dest: ::std::boxed::Box, + message: ::std::boxed::Box, + }, + ///See [`Pallet::teleport_assets`]. + teleport_assets { + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box< + my_types::xcm::VersionedMultiLocation, + >, + assets: ::std::boxed::Box, + fee_asset_item: ::core::primitive::u32, + }, + ///See [`Pallet::reserve_transfer_assets`]. + reserve_transfer_assets { + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box< + my_types::xcm::VersionedMultiLocation, + >, + assets: ::std::boxed::Box, + fee_asset_item: ::core::primitive::u32, + }, + ///See [`Pallet::execute`]. + execute { + message: ::std::boxed::Box, + max_weight: my_types::sp_weights::weight_v2::Weight, + }, + ///See [`Pallet::force_xcm_version`]. + force_xcm_version { + location: ::std::boxed::Box< + my_types::xcm::v3::multilocation::MultiLocation, + >, + version: ::core::primitive::u32, + }, + ///See [`Pallet::force_default_xcm_version`]. + force_default_xcm_version { + maybe_xcm_version: ::core::option::Option<::core::primitive::u32>, + }, + ///See [`Pallet::force_subscribe_version_notify`]. + force_subscribe_version_notify { + location: ::std::boxed::Box, + }, + ///See [`Pallet::force_unsubscribe_version_notify`]. + force_unsubscribe_version_notify { + location: ::std::boxed::Box, + }, + ///See [`Pallet::limited_reserve_transfer_assets`]. + limited_reserve_transfer_assets { + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box< + my_types::xcm::VersionedMultiLocation, + >, + assets: ::std::boxed::Box, + fee_asset_item: ::core::primitive::u32, + weight_limit: my_types::xcm::v3::WeightLimit, + }, + ///See [`Pallet::limited_teleport_assets`]. + limited_teleport_assets { + dest: ::std::boxed::Box, + beneficiary: ::std::boxed::Box< + my_types::xcm::VersionedMultiLocation, + >, + assets: ::std::boxed::Box, + fee_asset_item: ::core::primitive::u32, + weight_limit: my_types::xcm::v3::WeightLimit, + }, + ///See [`Pallet::force_suspension`]. + force_suspension { suspended: ::core::primitive::bool }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The desired destination was unreachable, generally because there is a no way of routing + ///to it. + Unreachable, + ///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. + SendFailure, + ///The message execution fails the filter. + Filtered, + ///The message's weight could not be determined. + UnweighableMessage, + ///The destination `MultiLocation` provided cannot be inverted. + DestinationNotInvertible, + ///The assets to be sent are empty. + Empty, + ///Could not re-anchor the assets to declare the fees for the destination chain. + CannotReanchor, + ///Too many assets have been attempted for transfer. + TooManyAssets, + ///Origin is invalid for sending. + InvalidOrigin, + ///The version of the `Versioned` value used is not able to be interpreted. + BadVersion, + ///The given location could not be used (e.g. because it cannot be expressed in the + ///desired version of XCM). + BadLocation, + ///The referenced subscription could not be found. + NoSubscription, + ///The location is invalid since it already has a subscription from us. + AlreadySubscribed, + ///Invalid asset for the operation. + InvalidAsset, + ///The owner does not own (all) of the asset that they wish to do the operation on. + LowBalance, + ///The asset owner has too many locks on the asset. + TooManyLocks, + ///The given account is not an identifiable sovereign account for any location. + AccountNotSovereign, + ///The operation required fees to be paid which the initiator could not meet. + FeesNotMet, + ///A remote lock with the corresponding data could not be found. + LockNotFound, + ///The unlock operation cannot succeed because there are still consumers of the lock. + InUse, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Execution of an XCM message was attempted. + Attempted { outcome: my_types::xcm::v3::traits::Outcome }, + ///A XCM message was sent. + Sent { + origin: my_types::xcm::v3::multilocation::MultiLocation, + destination: my_types::xcm::v3::multilocation::MultiLocation, + message: my_types::xcm::v3::Xcm, + message_id: [::core::primitive::u8; 32usize], + }, + ///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. + UnexpectedResponse { + origin: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + }, + ///Query response has been received and is ready for taking with `take_response`. There is + ///no registered notification call. + ResponseReady { + query_id: ::core::primitive::u64, + response: my_types::xcm::v3::Response, + }, + ///Query response has been received and query is removed. The registered notification has + ///been dispatched and executed successfully. + Notified { + query_id: ::core::primitive::u64, + pallet_index: ::core::primitive::u8, + call_index: ::core::primitive::u8, + }, + ///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. + NotifyOverweight { + query_id: ::core::primitive::u64, + pallet_index: ::core::primitive::u8, + call_index: ::core::primitive::u8, + actual_weight: my_types::sp_weights::weight_v2::Weight, + max_budgeted_weight: my_types::sp_weights::weight_v2::Weight, + }, + ///Query response has been received and query is removed. There was a general error with + ///dispatching the notification call. + NotifyDispatchError { + query_id: ::core::primitive::u64, + pallet_index: ::core::primitive::u8, + call_index: ::core::primitive::u8, + }, + ///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)`. + NotifyDecodeFailed { + query_id: ::core::primitive::u64, + pallet_index: ::core::primitive::u8, + call_index: ::core::primitive::u8, + }, + ///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. + InvalidResponder { + origin: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + expected_location: ::core::option::Option< + my_types::xcm::v3::multilocation::MultiLocation, + >, + }, + ///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. + InvalidResponderVersion { + origin: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + }, + ///Received query response has been read and removed. + ResponseTaken { query_id: ::core::primitive::u64 }, + ///Some assets have been placed in an asset trap. + AssetsTrapped { + hash: my_types::primitive_types::H256, + origin: my_types::xcm::v3::multilocation::MultiLocation, + assets: my_types::xcm::VersionedMultiAssets, + }, + ///An XCM version change notification message has been attempted to be sent. + /// + ///The cost of sending it (borne by the chain) is included. + VersionChangeNotified { + destination: my_types::xcm::v3::multilocation::MultiLocation, + result: ::core::primitive::u32, + cost: my_types::xcm::v3::multiasset::MultiAssets, + message_id: [::core::primitive::u8; 32usize], + }, + ///The supported version of a location has been changed. This might be through an + ///automatic notification or a manual intervention. + SupportedVersionChanged { + location: my_types::xcm::v3::multilocation::MultiLocation, + version: ::core::primitive::u32, + }, + ///A given location which had a version change subscription was dropped owing to an error + ///sending the notification to it. + NotifyTargetSendFail { + location: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + error: my_types::xcm::v3::traits::Error, + }, + ///A given location which had a version change subscription was dropped owing to an error + ///migrating the location to our new XCM format. + NotifyTargetMigrationFail { + location: my_types::xcm::VersionedMultiLocation, + query_id: ::core::primitive::u64, + }, + ///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. + InvalidQuerierVersion { + origin: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + }, + ///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. + InvalidQuerier { + origin: my_types::xcm::v3::multilocation::MultiLocation, + query_id: ::core::primitive::u64, + expected_querier: my_types::xcm::v3::multilocation::MultiLocation, + maybe_actual_querier: ::core::option::Option< + my_types::xcm::v3::multilocation::MultiLocation, + >, + }, + ///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. + VersionNotifyStarted { + destination: my_types::xcm::v3::multilocation::MultiLocation, + cost: my_types::xcm::v3::multiasset::MultiAssets, + message_id: [::core::primitive::u8; 32usize], + }, + ///We have requested that a remote chain send us XCM version change notifications. + VersionNotifyRequested { + destination: my_types::xcm::v3::multilocation::MultiLocation, + cost: my_types::xcm::v3::multiasset::MultiAssets, + message_id: [::core::primitive::u8; 32usize], + }, + ///We have requested that a remote chain stops sending us XCM version change notifications. + VersionNotifyUnrequested { + destination: my_types::xcm::v3::multilocation::MultiLocation, + cost: my_types::xcm::v3::multiasset::MultiAssets, + message_id: [::core::primitive::u8; 32usize], + }, + ///Fees were paid from a location for an operation (often for using `SendXcm`). + FeesPaid { + paying: my_types::xcm::v3::multilocation::MultiLocation, + fees: my_types::xcm::v3::multiasset::MultiAssets, + }, + ///Some assets have been claimed from an asset trap + AssetsClaimed { + hash: my_types::primitive_types::H256, + origin: my_types::xcm::v3::multilocation::MultiLocation, + assets: my_types::xcm::VersionedMultiAssets, + }, + } + #[derive(Clone, Debug)] + pub enum Origin { + Xcm(my_types::xcm::v3::multilocation::MultiLocation), + Response(my_types::xcm::v3::multilocation::MultiLocation), + } + #[derive(Clone, Debug)] + pub enum QueryStatus<_0> { + Pending { + responder: my_types::xcm::VersionedMultiLocation, + maybe_match_querier: ::core::option::Option< + my_types::xcm::VersionedMultiLocation, + >, + maybe_notify: ::core::option::Option< + (::core::primitive::u8, ::core::primitive::u8), + >, + timeout: _0, + }, + VersionNotifier { + origin: my_types::xcm::VersionedMultiLocation, + is_active: ::core::primitive::bool, + }, + Ready { response: my_types::xcm::VersionedResponse, at: _0 }, + } + #[derive(Clone, Debug)] + pub struct RemoteLockedFungibleRecord<_0> { + pub amount: ::core::primitive::u128, + pub owner: my_types::xcm::VersionedMultiLocation, + pub locker: my_types::xcm::VersionedMultiLocation, + pub consumers: my_types::bounded_collections::bounded_vec::BoundedVec< + (_0, ::core::primitive::u128), + >, + } + #[derive(Clone, Debug)] + pub enum VersionMigrationStage { + MigrateSupportedVersion, + MigrateVersionNotifiers, + NotifyCurrentTargets( + ::core::option::Option<::std::vec::Vec<::core::primitive::u8>>, + ), + MigrateAndNotifyOldTargets, + } + } + } + pub mod polkadot_core_primitives { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CandidateHash(pub my_types::primitive_types::H256); + #[derive(Clone, Debug)] + pub struct InboundDownwardMessage<_0> { + pub sent_at: _0, + pub msg: ::std::vec::Vec<::core::primitive::u8>, + } + #[derive(Clone, Debug)] + pub struct InboundHrmpMessage<_0> { + pub sent_at: _0, + pub data: ::std::vec::Vec<::core::primitive::u8>, + } + #[derive(Clone, Debug)] + pub struct OutboundHrmpMessage<_0> { + pub recipient: _0, + pub data: ::std::vec::Vec<::core::primitive::u8>, + } + } + pub mod polkadot_parachain { + use super::my_types; + pub mod primitives { + use super::my_types; + #[derive(Clone, Debug)] + pub struct HeadData(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive(Clone, Debug)] + pub struct HrmpChannelId { + pub sender: my_types::polkadot_parachain::primitives::Id, + pub recipient: my_types::polkadot_parachain::primitives::Id, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Id(pub ::core::primitive::u32); + #[derive(Clone, Debug)] + pub struct ValidationCode(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive(Clone, Debug)] + pub struct ValidationCodeHash(pub my_types::primitive_types::H256); + } + } + pub mod polkadot_primitives { + use super::my_types; + pub mod v5 { + use super::my_types; + pub mod assignment_app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + } + pub mod collator_app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + #[derive(Clone, Debug)] + pub struct Signature(pub my_types::sp_core::sr25519::Signature); + } + pub mod executor_params { + use super::my_types; + #[derive(Clone, Debug)] + pub enum ExecutorParam { + MaxMemoryPages(::core::primitive::u32), + StackLogicalMax(::core::primitive::u32), + StackNativeMax(::core::primitive::u32), + PrecheckingMaxMemory(::core::primitive::u64), + PvfPrepTimeout( + my_types::polkadot_primitives::v5::PvfPrepTimeoutKind, + ::core::primitive::u64, + ), + PvfExecTimeout( + my_types::polkadot_primitives::v5::PvfExecTimeoutKind, + ::core::primitive::u64, + ), + WasmExtBulkMemory, + } + #[derive(Clone, Debug)] + pub struct ExecutorParams( + pub ::std::vec::Vec< + my_types::polkadot_primitives::v5::executor_params::ExecutorParam, + >, + ); + } + pub mod signed { + use super::my_types; + #[derive(Clone, Debug)] + pub struct UncheckedSigned<_0, _1> { + pub payload: _0, + pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, + pub signature: my_types::polkadot_primitives::v5::validator_app::Signature, + pub __ignore: ::core::marker::PhantomData<_1>, + } + } + pub mod slashing { + use super::my_types; + #[derive(Clone, Debug)] + pub struct DisputeProof { + pub time_slot: my_types::polkadot_primitives::v5::slashing::DisputesTimeSlot, + pub kind: my_types::polkadot_primitives::v5::slashing::SlashingOffenceKind, + pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, + pub validator_id: my_types::polkadot_primitives::v5::validator_app::Public, + } + #[derive(Clone, Debug)] + pub struct DisputesTimeSlot { + pub session_index: ::core::primitive::u32, + pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, + } + #[derive(Clone, Debug)] + pub struct OpaqueKeyOwnershipProof( + pub ::std::vec::Vec<::core::primitive::u8>, + ); + #[derive(Clone, Debug)] + pub struct PendingSlashes { + pub keys: ::std::collections::BTreeMap< + my_types::polkadot_primitives::v5::ValidatorIndex, + my_types::polkadot_primitives::v5::validator_app::Public, + >, + pub kind: my_types::polkadot_primitives::v5::slashing::SlashingOffenceKind, + } + #[derive(Clone, Debug)] + pub enum SlashingOffenceKind { + ForInvalid, + AgainstValid, + } + } + pub mod validator_app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + #[derive(Clone, Debug)] + pub struct Signature(pub my_types::sp_core::sr25519::Signature); + } + #[derive(Clone, Debug)] + pub struct AvailabilityBitfield( + pub DecodedBits<::core::primitive::u8, my_types::bitvec::order::Lsb0>, + ); + #[derive(Clone, Debug)] + pub struct BackedCandidate<_0> { + pub candidate: my_types::polkadot_primitives::v5::CommittedCandidateReceipt< + _0, + >, + pub validity_votes: ::std::vec::Vec< + my_types::polkadot_primitives::v5::ValidityAttestation, + >, + pub validator_indices: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + } + #[derive(Clone, Debug)] + pub struct CandidateCommitments<_0> { + pub upward_messages: my_types::bounded_collections::bounded_vec::BoundedVec< + ::std::vec::Vec<::core::primitive::u8>, + >, + pub horizontal_messages: my_types::bounded_collections::bounded_vec::BoundedVec< + my_types::polkadot_core_primitives::OutboundHrmpMessage< + my_types::polkadot_parachain::primitives::Id, + >, + >, + pub new_validation_code: ::core::option::Option< + my_types::polkadot_parachain::primitives::ValidationCode, + >, + pub head_data: my_types::polkadot_parachain::primitives::HeadData, + pub processed_downward_messages: ::core::primitive::u32, + pub hrmp_watermark: _0, + } + #[derive(Clone, Debug)] + pub struct CandidateDescriptor<_0> { + pub para_id: my_types::polkadot_parachain::primitives::Id, + pub relay_parent: _0, + pub collator: my_types::polkadot_primitives::v5::collator_app::Public, + pub persisted_validation_data_hash: my_types::primitive_types::H256, + pub pov_hash: my_types::primitive_types::H256, + pub erasure_root: my_types::primitive_types::H256, + pub signature: my_types::polkadot_primitives::v5::collator_app::Signature, + pub para_head: my_types::primitive_types::H256, + pub validation_code_hash: my_types::polkadot_parachain::primitives::ValidationCodeHash, + } + #[derive(Clone, Debug)] + pub enum CandidateEvent<_0> { + CandidateBacked( + my_types::polkadot_primitives::v5::CandidateReceipt<_0>, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + my_types::polkadot_primitives::v5::GroupIndex, + ), + CandidateIncluded( + my_types::polkadot_primitives::v5::CandidateReceipt<_0>, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + my_types::polkadot_primitives::v5::GroupIndex, + ), + CandidateTimedOut( + my_types::polkadot_primitives::v5::CandidateReceipt<_0>, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + ), + } + #[derive(Clone, Debug)] + pub struct CandidateReceipt<_0> { + pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< + _0, + >, + pub commitments_hash: my_types::primitive_types::H256, + } + #[derive(Clone, Debug)] + pub struct CommittedCandidateReceipt<_0> { + pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< + _0, + >, + pub commitments: my_types::polkadot_primitives::v5::CandidateCommitments< + ::core::primitive::u32, + >, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct CoreIndex(pub ::core::primitive::u32); + #[derive(Clone, Debug)] + pub enum CoreOccupied { + Parathread(my_types::polkadot_primitives::v5::ParathreadEntry), + Parachain, + } + #[derive(Clone, Debug)] + pub enum CoreState<_0, _1> { + Occupied(my_types::polkadot_primitives::v5::OccupiedCore<_0, _1>), + Scheduled(my_types::polkadot_primitives::v5::ScheduledCore), + Free, + } + #[derive(Clone, Debug)] + pub struct DisputeState<_0> { + pub validators_for: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub validators_against: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub start: _0, + pub concluded_at: ::core::option::Option<_0>, + } + #[derive(Clone, Debug)] + pub enum DisputeStatement { + Valid(my_types::polkadot_primitives::v5::ValidDisputeStatementKind), + Invalid(my_types::polkadot_primitives::v5::InvalidDisputeStatementKind), + } + #[derive(Clone, Debug)] + pub struct DisputeStatementSet { + pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, + pub session: ::core::primitive::u32, + pub statements: ::std::vec::Vec< + ( + my_types::polkadot_primitives::v5::DisputeStatement, + my_types::polkadot_primitives::v5::ValidatorIndex, + my_types::polkadot_primitives::v5::validator_app::Signature, + ), + >, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct GroupIndex(pub ::core::primitive::u32); + #[derive(Clone, Debug)] + pub struct GroupRotationInfo<_0> { + pub session_start_block: _0, + pub group_rotation_frequency: _0, + pub now: _0, + } + #[derive(Clone, Debug)] + pub struct IndexedVec<_0, _1>( + pub ::std::vec::Vec<_1>, + pub ::core::marker::PhantomData<_0>, + ); + #[derive(Clone, Debug)] + pub struct InherentData<_0> { + pub bitfields: ::std::vec::Vec< + my_types::polkadot_primitives::v5::signed::UncheckedSigned< + my_types::polkadot_primitives::v5::AvailabilityBitfield, + my_types::polkadot_primitives::v5::AvailabilityBitfield, + >, + >, + pub backed_candidates: ::std::vec::Vec< + my_types::polkadot_primitives::v5::BackedCandidate< + my_types::primitive_types::H256, + >, + >, + pub disputes: ::std::vec::Vec< + my_types::polkadot_primitives::v5::DisputeStatementSet, + >, + pub parent_header: _0, + } + #[derive(Clone, Debug)] + pub enum InvalidDisputeStatementKind { + Explicit, + } + #[derive(Clone, Debug)] + pub struct OccupiedCore<_0, _1> { + pub next_up_on_available: ::core::option::Option< + my_types::polkadot_primitives::v5::ScheduledCore, + >, + pub occupied_since: _1, + pub time_out_at: _1, + pub next_up_on_time_out: ::core::option::Option< + my_types::polkadot_primitives::v5::ScheduledCore, + >, + pub availability: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub group_responsible: my_types::polkadot_primitives::v5::GroupIndex, + pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, + pub candidate_descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< + _0, + >, + } + #[derive(Clone, Debug)] + pub enum OccupiedCoreAssumption { + Included, + TimedOut, + Free, + } + #[derive(Clone, Debug)] + pub struct ParathreadClaim( + pub my_types::polkadot_parachain::primitives::Id, + pub my_types::polkadot_primitives::v5::collator_app::Public, + ); + #[derive(Clone, Debug)] + pub struct ParathreadEntry { + pub claim: my_types::polkadot_primitives::v5::ParathreadClaim, + pub retries: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct PersistedValidationData<_0, _1> { + pub parent_head: my_types::polkadot_parachain::primitives::HeadData, + pub relay_parent_number: _1, + pub relay_parent_storage_root: _0, + pub max_pov_size: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct PvfCheckStatement { + pub accept: ::core::primitive::bool, + pub subject: my_types::polkadot_parachain::primitives::ValidationCodeHash, + pub session_index: ::core::primitive::u32, + pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, + } + #[derive(Clone, Debug)] + pub enum PvfExecTimeoutKind { + Backing, + Approval, + } + #[derive(Clone, Debug)] + pub enum PvfPrepTimeoutKind { + Precheck, + Lenient, + } + #[derive(Clone, Debug)] + pub struct ScheduledCore { + pub para_id: my_types::polkadot_parachain::primitives::Id, + pub collator: ::core::option::Option< + my_types::polkadot_primitives::v5::collator_app::Public, + >, + } + #[derive(Clone, Debug)] + pub struct ScrapedOnChainVotes<_0> { + pub session: ::core::primitive::u32, + pub backing_validators_per_candidate: ::std::vec::Vec< + ( + my_types::polkadot_primitives::v5::CandidateReceipt<_0>, + ::std::vec::Vec< + ( + my_types::polkadot_primitives::v5::ValidatorIndex, + my_types::polkadot_primitives::v5::ValidityAttestation, + ), + >, + ), + >, + pub disputes: ::std::vec::Vec< + my_types::polkadot_primitives::v5::DisputeStatementSet, + >, + } + #[derive(Clone, Debug)] + pub struct SessionInfo { + pub active_validator_indices: ::std::vec::Vec< + my_types::polkadot_primitives::v5::ValidatorIndex, + >, + pub random_seed: [::core::primitive::u8; 32usize], + pub dispute_period: ::core::primitive::u32, + pub validators: my_types::polkadot_primitives::v5::IndexedVec< + my_types::polkadot_primitives::v5::ValidatorIndex, + my_types::polkadot_primitives::v5::validator_app::Public, + >, + pub discovery_keys: ::std::vec::Vec< + my_types::sp_authority_discovery::app::Public, + >, + pub assignment_keys: ::std::vec::Vec< + my_types::polkadot_primitives::v5::assignment_app::Public, + >, + pub validator_groups: my_types::polkadot_primitives::v5::IndexedVec< + my_types::polkadot_primitives::v5::GroupIndex, + ::std::vec::Vec, + >, + pub n_cores: ::core::primitive::u32, + pub zeroth_delay_tranche_width: ::core::primitive::u32, + pub relay_vrf_modulo_samples: ::core::primitive::u32, + pub n_delay_tranches: ::core::primitive::u32, + pub no_show_slots: ::core::primitive::u32, + pub needed_approvals: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub enum UpgradeGoAhead { + Abort, + GoAhead, + } + #[derive(Clone, Debug)] + pub enum UpgradeRestriction { + Present, + } + #[derive(Clone, Debug)] + pub enum ValidDisputeStatementKind { + Explicit, + BackingSeconded(my_types::primitive_types::H256), + BackingValid(my_types::primitive_types::H256), + ApprovalChecking, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct ValidatorIndex(pub ::core::primitive::u32); + #[derive(Clone, Debug)] + pub enum ValidityAttestation { + Implicit(my_types::polkadot_primitives::v5::validator_app::Signature), + Explicit(my_types::polkadot_primitives::v5::validator_app::Signature), + } + } + pub mod vstaging { + use super::my_types; + #[derive(Clone, Debug)] + pub struct AsyncBackingParams { + pub max_candidate_depth: ::core::primitive::u32, + pub allowed_ancestry_len: ::core::primitive::u32, + } + } + } + pub mod polkadot_runtime { + use super::my_types; + pub mod governance { + use super::my_types; + pub mod origins { + use super::my_types; + pub mod pallet_custom_origins { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Origin { + StakingAdmin, + Treasurer, + FellowshipAdmin, + GeneralAdmin, + AuctionAdmin, + LeaseAdmin, + ReferendumCanceller, + ReferendumKiller, + SmallTipper, + BigTipper, + SmallSpender, + MediumSpender, + BigSpender, + WhitelistedCaller, + } + } + } + } + #[derive(Clone, Debug)] + pub struct NposCompactSolution16 { + pub votes1: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes2: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + ( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ), + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes3: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 2usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes4: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 3usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes5: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 4usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes6: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 5usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes7: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 6usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes8: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 7usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes9: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 8usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes10: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 9usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes11: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 10usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes12: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 11usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes13: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 12usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes14: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 13usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes15: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 14usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + pub votes16: ::std::vec::Vec< + ( + parity_scale_codec::Compact<::core::primitive::u32>, + [( + parity_scale_codec::Compact<::core::primitive::u16>, + parity_scale_codec::Compact< + my_types::sp_arithmetic::per_things::PerU16, + >, + ); 15usize], + parity_scale_codec::Compact<::core::primitive::u16>, + ), + >, + } + #[derive(Clone, Debug)] + pub enum OriginCaller { + system( + my_types::frame_support::dispatch::RawOrigin< + my_types::sp_core::crypto::AccountId32, + >, + ), + Council( + my_types::pallet_collective::RawOrigin< + my_types::sp_core::crypto::AccountId32, + >, + ), + TechnicalCommittee( + my_types::pallet_collective::RawOrigin< + my_types::sp_core::crypto::AccountId32, + >, + ), + Origins( + my_types::polkadot_runtime::governance::origins::pallet_custom_origins::Origin, + ), + ParachainsOrigin( + my_types::polkadot_runtime_parachains::origin::pallet::Origin, + ), + XcmPallet(my_types::pallet_xcm::pallet::Origin), + Void(my_types::sp_core::Void), + } + #[derive(Clone, Debug)] + pub enum ProxyType { + Any, + NonTransfer, + Governance, + Staking, + IdentityJudgement, + CancelProxy, + Auction, + NominationPools, + } + #[derive(Clone, Debug)] + pub struct Runtime; + #[derive(Clone, Debug)] + pub enum RuntimeCall { + System(my_types::frame_system::pallet::Call), + Scheduler(my_types::pallet_scheduler::pallet::Call), + Preimage(my_types::pallet_preimage::pallet::Call), + Babe(my_types::pallet_babe::pallet::Call), + Timestamp(my_types::pallet_timestamp::pallet::Call), + Indices(my_types::pallet_indices::pallet::Call), + Balances(my_types::pallet_balances::pallet::Call), + Staking(my_types::pallet_staking::pallet::pallet::Call), + Session(my_types::pallet_session::pallet::Call), + Grandpa(my_types::pallet_grandpa::pallet::Call), + ImOnline(my_types::pallet_im_online::pallet::Call), + Democracy(my_types::pallet_democracy::pallet::Call), + Council(my_types::pallet_collective::pallet::Call), + TechnicalCommittee(my_types::pallet_collective::pallet::Call), + PhragmenElection(my_types::pallet_elections_phragmen::pallet::Call), + TechnicalMembership(my_types::pallet_membership::pallet::Call), + Treasury(my_types::pallet_treasury::pallet::Call), + ConvictionVoting(my_types::pallet_conviction_voting::pallet::Call), + Referenda(my_types::pallet_referenda::pallet::Call), + Whitelist(my_types::pallet_whitelist::pallet::Call), + Claims(my_types::polkadot_runtime_common::claims::pallet::Call), + Vesting(my_types::pallet_vesting::pallet::Call), + Utility(my_types::pallet_utility::pallet::Call), + Identity(my_types::pallet_identity::pallet::Call), + Proxy(my_types::pallet_proxy::pallet::Call), + Multisig(my_types::pallet_multisig::pallet::Call), + Bounties(my_types::pallet_bounties::pallet::Call), + ChildBounties(my_types::pallet_child_bounties::pallet::Call), + Tips(my_types::pallet_tips::pallet::Call), + ElectionProviderMultiPhase( + my_types::pallet_election_provider_multi_phase::pallet::Call, + ), + VoterList(my_types::pallet_bags_list::pallet::Call), + NominationPools(my_types::pallet_nomination_pools::pallet::Call), + FastUnstake(my_types::pallet_fast_unstake::pallet::Call), + Configuration( + my_types::polkadot_runtime_parachains::configuration::pallet::Call, + ), + ParasShared(my_types::polkadot_runtime_parachains::shared::pallet::Call), + ParaInclusion( + my_types::polkadot_runtime_parachains::inclusion::pallet::Call, + ), + ParaInherent( + my_types::polkadot_runtime_parachains::paras_inherent::pallet::Call, + ), + Paras(my_types::polkadot_runtime_parachains::paras::pallet::Call), + Initializer( + my_types::polkadot_runtime_parachains::initializer::pallet::Call, + ), + Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Call), + ParasDisputes(my_types::polkadot_runtime_parachains::disputes::pallet::Call), + ParasSlashing( + my_types::polkadot_runtime_parachains::disputes::slashing::pallet::Call, + ), + Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Call), + Slots(my_types::polkadot_runtime_common::slots::pallet::Call), + Auctions(my_types::polkadot_runtime_common::auctions::pallet::Call), + Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Call), + XcmPallet(my_types::pallet_xcm::pallet::Call), + MessageQueue(my_types::pallet_message_queue::pallet::Call), + } + #[derive(Clone, Debug)] + pub enum RuntimeError { + System(my_types::frame_system::pallet::Error), + Scheduler(my_types::pallet_scheduler::pallet::Error), + Preimage(my_types::pallet_preimage::pallet::Error), + Babe(my_types::pallet_babe::pallet::Error), + Indices(my_types::pallet_indices::pallet::Error), + Balances(my_types::pallet_balances::pallet::Error), + Staking(my_types::pallet_staking::pallet::pallet::Error), + Session(my_types::pallet_session::pallet::Error), + Grandpa(my_types::pallet_grandpa::pallet::Error), + ImOnline(my_types::pallet_im_online::pallet::Error), + Democracy(my_types::pallet_democracy::pallet::Error), + Council(my_types::pallet_collective::pallet::Error), + TechnicalCommittee(my_types::pallet_collective::pallet::Error), + PhragmenElection(my_types::pallet_elections_phragmen::pallet::Error), + TechnicalMembership(my_types::pallet_membership::pallet::Error), + Treasury(my_types::pallet_treasury::pallet::Error), + ConvictionVoting(my_types::pallet_conviction_voting::pallet::Error), + Referenda(my_types::pallet_referenda::pallet::Error), + Whitelist(my_types::pallet_whitelist::pallet::Error), + Claims(my_types::polkadot_runtime_common::claims::pallet::Error), + Vesting(my_types::pallet_vesting::pallet::Error), + Utility(my_types::pallet_utility::pallet::Error), + Identity(my_types::pallet_identity::pallet::Error), + Proxy(my_types::pallet_proxy::pallet::Error), + Multisig(my_types::pallet_multisig::pallet::Error), + Bounties(my_types::pallet_bounties::pallet::Error), + ChildBounties(my_types::pallet_child_bounties::pallet::Error), + Tips(my_types::pallet_tips::pallet::Error), + ElectionProviderMultiPhase( + my_types::pallet_election_provider_multi_phase::pallet::Error, + ), + VoterList(my_types::pallet_bags_list::pallet::Error), + NominationPools(my_types::pallet_nomination_pools::pallet::Error), + FastUnstake(my_types::pallet_fast_unstake::pallet::Error), + Configuration( + my_types::polkadot_runtime_parachains::configuration::pallet::Error, + ), + ParaInclusion( + my_types::polkadot_runtime_parachains::inclusion::pallet::Error, + ), + ParaInherent( + my_types::polkadot_runtime_parachains::paras_inherent::pallet::Error, + ), + Paras(my_types::polkadot_runtime_parachains::paras::pallet::Error), + Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Error), + ParasDisputes( + my_types::polkadot_runtime_parachains::disputes::pallet::Error, + ), + ParasSlashing( + my_types::polkadot_runtime_parachains::disputes::slashing::pallet::Error, + ), + Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Error), + Slots(my_types::polkadot_runtime_common::slots::pallet::Error), + Auctions(my_types::polkadot_runtime_common::auctions::pallet::Error), + Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Error), + XcmPallet(my_types::pallet_xcm::pallet::Error), + MessageQueue(my_types::pallet_message_queue::pallet::Error), + } + #[derive(Clone, Debug)] + pub enum RuntimeEvent { + System(my_types::frame_system::pallet::Event), + Scheduler(my_types::pallet_scheduler::pallet::Event), + Preimage(my_types::pallet_preimage::pallet::Event), + Indices(my_types::pallet_indices::pallet::Event), + Balances(my_types::pallet_balances::pallet::Event), + TransactionPayment(my_types::pallet_transaction_payment::pallet::Event), + Staking(my_types::pallet_staking::pallet::pallet::Event), + Offences(my_types::pallet_offences::pallet::Event), + Session(my_types::pallet_session::pallet::Event), + Grandpa(my_types::pallet_grandpa::pallet::Event), + ImOnline(my_types::pallet_im_online::pallet::Event), + Democracy(my_types::pallet_democracy::pallet::Event), + Council(my_types::pallet_collective::pallet::Event), + TechnicalCommittee(my_types::pallet_collective::pallet::Event), + PhragmenElection(my_types::pallet_elections_phragmen::pallet::Event), + TechnicalMembership(my_types::pallet_membership::pallet::Event), + Treasury(my_types::pallet_treasury::pallet::Event), + ConvictionVoting(my_types::pallet_conviction_voting::pallet::Event), + Referenda(my_types::pallet_referenda::pallet::Event), + Whitelist(my_types::pallet_whitelist::pallet::Event), + Claims(my_types::polkadot_runtime_common::claims::pallet::Event), + Vesting(my_types::pallet_vesting::pallet::Event), + Utility(my_types::pallet_utility::pallet::Event), + Identity(my_types::pallet_identity::pallet::Event), + Proxy(my_types::pallet_proxy::pallet::Event), + Multisig(my_types::pallet_multisig::pallet::Event), + Bounties(my_types::pallet_bounties::pallet::Event), + ChildBounties(my_types::pallet_child_bounties::pallet::Event), + Tips(my_types::pallet_tips::pallet::Event), + ElectionProviderMultiPhase( + my_types::pallet_election_provider_multi_phase::pallet::Event, + ), + VoterList(my_types::pallet_bags_list::pallet::Event), + NominationPools(my_types::pallet_nomination_pools::pallet::Event), + FastUnstake(my_types::pallet_fast_unstake::pallet::Event), + ParaInclusion( + my_types::polkadot_runtime_parachains::inclusion::pallet::Event, + ), + Paras(my_types::polkadot_runtime_parachains::paras::pallet::Event), + Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Event), + ParasDisputes( + my_types::polkadot_runtime_parachains::disputes::pallet::Event, + ), + Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Event), + Slots(my_types::polkadot_runtime_common::slots::pallet::Event), + Auctions(my_types::polkadot_runtime_common::auctions::pallet::Event), + Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Event), + XcmPallet(my_types::pallet_xcm::pallet::Event), + MessageQueue(my_types::pallet_message_queue::pallet::Event), + } + #[derive(Clone, Debug)] + pub enum RuntimeHoldReason {} + #[derive(Clone, Debug)] + pub struct SessionKeys { + pub grandpa: my_types::sp_consensus_grandpa::app::Public, + pub babe: my_types::sp_consensus_babe::app::Public, + pub im_online: my_types::pallet_im_online::sr25519::app_sr25519::Public, + pub para_validator: my_types::polkadot_primitives::v5::validator_app::Public, + pub para_assignment: my_types::polkadot_primitives::v5::assignment_app::Public, + pub authority_discovery: my_types::sp_authority_discovery::app::Public, + } + } + pub mod polkadot_runtime_common { + use super::my_types; + pub mod auctions { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::new_auction`]. + new_auction { + duration: ::core::primitive::u32, + lease_period_index: ::core::primitive::u32, + }, + ///See [`Pallet::bid`]. + bid { + para: my_types::polkadot_parachain::primitives::Id, + auction_index: ::core::primitive::u32, + first_slot: ::core::primitive::u32, + last_slot: ::core::primitive::u32, + amount: ::core::primitive::u128, + }, + ///See [`Pallet::cancel_auction`]. + cancel_auction, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///This auction is already in progress. + AuctionInProgress, + ///The lease period is in the past. + LeasePeriodInPast, + ///Para is not registered + ParaNotRegistered, + ///Not a current auction. + NotCurrentAuction, + ///Not an auction. + NotAuction, + ///Auction has already ended. + AuctionEnded, + ///The para is already leased out for part of this range. + AlreadyLeasedOut, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///An auction started. Provides its index and the block number where it will begin to + ///close and the first lease period of the quadruplet that is auctioned. + AuctionStarted { + auction_index: ::core::primitive::u32, + lease_period: ::core::primitive::u32, + ending: ::core::primitive::u32, + }, + ///An auction ended. All funds become unreserved. + AuctionClosed { auction_index: ::core::primitive::u32 }, + ///Funds were reserved for a winning bid. First balance is the extra amount reserved. + ///Second is the total. + Reserved { + bidder: my_types::sp_core::crypto::AccountId32, + extra_reserved: ::core::primitive::u128, + total_amount: ::core::primitive::u128, + }, + ///Funds were unreserved since bidder is no longer active. `[bidder, amount]` + Unreserved { + bidder: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///Someone attempted to lease the same slot twice for a parachain. The amount is held in reserve + ///but no parachain slot has been leased. + ReserveConfiscated { + para_id: my_types::polkadot_parachain::primitives::Id, + leaser: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + }, + ///A new bid has been accepted as the current winner. + BidAccepted { + bidder: my_types::sp_core::crypto::AccountId32, + para_id: my_types::polkadot_parachain::primitives::Id, + amount: ::core::primitive::u128, + first_slot: ::core::primitive::u32, + last_slot: ::core::primitive::u32, + }, + ///The winning offset was chosen for an auction. This will map into the `Winning` storage map. + WinningOffset { + auction_index: ::core::primitive::u32, + block_number: ::core::primitive::u32, + }, + } + } + } + pub mod claims { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::claim`]. + claim { + dest: my_types::sp_core::crypto::AccountId32, + ethereum_signature: my_types::polkadot_runtime_common::claims::EcdsaSignature, + }, + ///See [`Pallet::mint_claim`]. + mint_claim { + who: my_types::polkadot_runtime_common::claims::EthereumAddress, + value: ::core::primitive::u128, + vesting_schedule: ::core::option::Option< + ( + ::core::primitive::u128, + ::core::primitive::u128, + ::core::primitive::u32, + ), + >, + statement: ::core::option::Option< + my_types::polkadot_runtime_common::claims::StatementKind, + >, + }, + ///See [`Pallet::claim_attest`]. + claim_attest { + dest: my_types::sp_core::crypto::AccountId32, + ethereum_signature: my_types::polkadot_runtime_common::claims::EcdsaSignature, + statement: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::attest`]. + attest { statement: ::std::vec::Vec<::core::primitive::u8> }, + ///See [`Pallet::move_claim`]. + move_claim { + old: my_types::polkadot_runtime_common::claims::EthereumAddress, + new: my_types::polkadot_runtime_common::claims::EthereumAddress, + maybe_preclaim: ::core::option::Option< + my_types::sp_core::crypto::AccountId32, + >, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Invalid Ethereum signature. + InvalidEthereumSignature, + ///Ethereum address has no claim. + SignerHasNoClaim, + ///Account ID sending transaction has no claim. + SenderHasNoClaim, + ///There's not enough in the pot to pay out some unvested amount. Generally implies a logic + ///error. + PotUnderflow, + ///A needed statement was not included. + InvalidStatement, + ///The account already has a vested balance. + VestedBalanceExists, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Someone claimed some DOTs. + Claimed { + who: my_types::sp_core::crypto::AccountId32, + ethereum_address: my_types::polkadot_runtime_common::claims::EthereumAddress, + amount: ::core::primitive::u128, + }, + } + } + #[derive(Clone, Debug)] + pub struct EcdsaSignature(pub [::core::primitive::u8; 65usize]); + #[derive(Clone, Debug)] + pub struct EthereumAddress(pub [::core::primitive::u8; 20usize]); + #[derive(Clone, Debug)] + pub struct PrevalidateAttests; + #[derive(Clone, Debug)] + pub enum StatementKind { + Regular, + Saft, + } + } + pub mod crowdloan { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::create`]. + create { + index: my_types::polkadot_parachain::primitives::Id, + cap: ::core::primitive::u128, + first_period: ::core::primitive::u32, + last_period: ::core::primitive::u32, + end: ::core::primitive::u32, + verifier: ::core::option::Option< + my_types::sp_runtime::MultiSigner, + >, + }, + ///See [`Pallet::contribute`]. + contribute { + index: my_types::polkadot_parachain::primitives::Id, + value: ::core::primitive::u128, + signature: ::core::option::Option< + my_types::sp_runtime::MultiSignature, + >, + }, + ///See [`Pallet::withdraw`]. + withdraw { + who: my_types::sp_core::crypto::AccountId32, + index: my_types::polkadot_parachain::primitives::Id, + }, + ///See [`Pallet::refund`]. + refund { index: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::dissolve`]. + dissolve { index: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::edit`]. + edit { + index: my_types::polkadot_parachain::primitives::Id, + cap: ::core::primitive::u128, + first_period: ::core::primitive::u32, + last_period: ::core::primitive::u32, + end: ::core::primitive::u32, + verifier: ::core::option::Option< + my_types::sp_runtime::MultiSigner, + >, + }, + ///See [`Pallet::add_memo`]. + add_memo { + index: my_types::polkadot_parachain::primitives::Id, + memo: ::std::vec::Vec<::core::primitive::u8>, + }, + ///See [`Pallet::poke`]. + poke { index: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::contribute_all`]. + contribute_all { + index: my_types::polkadot_parachain::primitives::Id, + signature: ::core::option::Option< + my_types::sp_runtime::MultiSignature, + >, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The current lease period is more than the first lease period. + FirstPeriodInPast, + ///The first lease period needs to at least be less than 3 `max_value`. + FirstPeriodTooFarInFuture, + ///Last lease period must be greater than first lease period. + LastPeriodBeforeFirstPeriod, + ///The last lease period cannot be more than 3 periods after the first period. + LastPeriodTooFarInFuture, + ///The campaign ends before the current block number. The end must be in the future. + CannotEndInPast, + ///The end date for this crowdloan is not sensible. + EndTooFarInFuture, + ///There was an overflow. + Overflow, + ///The contribution was below the minimum, `MinContribution`. + ContributionTooSmall, + ///Invalid fund index. + InvalidParaId, + ///Contributions exceed maximum amount. + CapExceeded, + ///The contribution period has already ended. + ContributionPeriodOver, + ///The origin of this call is invalid. + InvalidOrigin, + ///This crowdloan does not correspond to a parachain. + NotParachain, + ///This parachain lease is still active and retirement cannot yet begin. + LeaseActive, + ///This parachain's bid or lease is still active and withdraw cannot yet begin. + BidOrLeaseActive, + ///The crowdloan has not yet ended. + FundNotEnded, + ///There are no contributions stored in this crowdloan. + NoContributions, + ///The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement period. + NotReadyToDissolve, + ///Invalid signature. + InvalidSignature, + ///The provided memo is too large. + MemoTooLarge, + ///The fund is already in `NewRaise` + AlreadyInNewRaise, + ///No contributions allowed during the VRF delay + VrfDelayInProgress, + ///A lease period has not started yet, due to an offset in the starting block. + NoLeasePeriod, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Create a new crowdloaning campaign. + Created { para_id: my_types::polkadot_parachain::primitives::Id }, + ///Contributed to a crowd sale. + Contributed { + who: my_types::sp_core::crypto::AccountId32, + fund_index: my_types::polkadot_parachain::primitives::Id, + amount: ::core::primitive::u128, + }, + ///Withdrew full balance of a contributor. + Withdrew { + who: my_types::sp_core::crypto::AccountId32, + fund_index: my_types::polkadot_parachain::primitives::Id, + amount: ::core::primitive::u128, + }, + ///The loans in a fund have been partially dissolved, i.e. there are some left + ///over child keys that still need to be killed. + PartiallyRefunded { + para_id: my_types::polkadot_parachain::primitives::Id, + }, + ///All loans in a fund have been refunded. + AllRefunded { + para_id: my_types::polkadot_parachain::primitives::Id, + }, + ///Fund is dissolved. + Dissolved { para_id: my_types::polkadot_parachain::primitives::Id }, + ///The result of trying to submit a new bid to the Slots pallet. + HandleBidResult { + para_id: my_types::polkadot_parachain::primitives::Id, + result: ::core::result::Result< + (), + my_types::sp_runtime::DispatchError, + >, + }, + ///The configuration to a crowdloan has been edited. + Edited { para_id: my_types::polkadot_parachain::primitives::Id }, + ///A memo has been updated. + MemoUpdated { + who: my_types::sp_core::crypto::AccountId32, + para_id: my_types::polkadot_parachain::primitives::Id, + memo: ::std::vec::Vec<::core::primitive::u8>, + }, + ///A parachain has been moved to `NewRaise` + AddedToNewRaise { + para_id: my_types::polkadot_parachain::primitives::Id, + }, + } + } + #[derive(Clone, Debug)] + pub struct FundInfo<_0, _1, _2, _3> { + pub depositor: _0, + pub verifier: ::core::option::Option, + pub deposit: _1, + pub raised: _1, + pub end: _2, + pub cap: _1, + pub last_contribution: my_types::polkadot_runtime_common::crowdloan::LastContribution< + _2, + >, + pub first_period: _3, + pub last_period: _3, + pub fund_index: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub enum LastContribution<_0> { + Never, + PreEnding(::core::primitive::u32), + Ending(_0), + } + } + pub mod paras_registrar { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::register`]. + register { + id: my_types::polkadot_parachain::primitives::Id, + genesis_head: my_types::polkadot_parachain::primitives::HeadData, + validation_code: my_types::polkadot_parachain::primitives::ValidationCode, + }, + ///See [`Pallet::force_register`]. + force_register { + who: my_types::sp_core::crypto::AccountId32, + deposit: ::core::primitive::u128, + id: my_types::polkadot_parachain::primitives::Id, + genesis_head: my_types::polkadot_parachain::primitives::HeadData, + validation_code: my_types::polkadot_parachain::primitives::ValidationCode, + }, + ///See [`Pallet::deregister`]. + deregister { id: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::swap`]. + swap { + id: my_types::polkadot_parachain::primitives::Id, + other: my_types::polkadot_parachain::primitives::Id, + }, + ///See [`Pallet::remove_lock`]. + remove_lock { para: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::reserve`]. + reserve, + ///See [`Pallet::add_lock`]. + add_lock { para: my_types::polkadot_parachain::primitives::Id }, + ///See [`Pallet::schedule_code_upgrade`]. + schedule_code_upgrade { + para: my_types::polkadot_parachain::primitives::Id, + new_code: my_types::polkadot_parachain::primitives::ValidationCode, + }, + ///See [`Pallet::set_current_head`]. + set_current_head { + para: my_types::polkadot_parachain::primitives::Id, + new_head: my_types::polkadot_parachain::primitives::HeadData, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The ID is not registered. + NotRegistered, + ///The ID is already registered. + AlreadyRegistered, + ///The caller is not the owner of this Id. + NotOwner, + ///Invalid para code size. + CodeTooLarge, + ///Invalid para head data size. + HeadDataTooLarge, + ///Para is not a Parachain. + NotParachain, + ///Para is not a Parathread. + NotParathread, + ///Cannot deregister para + CannotDeregister, + ///Cannot schedule downgrade of parachain to parathread + CannotDowngrade, + ///Cannot schedule upgrade of parathread to parachain + CannotUpgrade, + ///Para is locked from manipulation by the manager. Must use parachain or relay chain governance. + ParaLocked, + ///The ID given for registration has not been reserved. + NotReserved, + ///Registering parachain with empty code is not allowed. + EmptyCode, + ///Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras are + ///correct for the swap to work. + CannotSwap, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + Registered { + para_id: my_types::polkadot_parachain::primitives::Id, + manager: my_types::sp_core::crypto::AccountId32, + }, + Deregistered { + para_id: my_types::polkadot_parachain::primitives::Id, + }, + Reserved { + para_id: my_types::polkadot_parachain::primitives::Id, + who: my_types::sp_core::crypto::AccountId32, + }, + Swapped { + para_id: my_types::polkadot_parachain::primitives::Id, + other_id: my_types::polkadot_parachain::primitives::Id, + }, + } + } + #[derive(Clone, Debug)] + pub struct ParaInfo<_0, _1> { + pub manager: _0, + pub deposit: _1, + pub locked: ::core::primitive::bool, + } + } + pub mod slots { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::force_lease`]. + force_lease { + para: my_types::polkadot_parachain::primitives::Id, + leaser: my_types::sp_core::crypto::AccountId32, + amount: ::core::primitive::u128, + period_begin: ::core::primitive::u32, + period_count: ::core::primitive::u32, + }, + ///See [`Pallet::clear_all_leases`]. + clear_all_leases { + para: my_types::polkadot_parachain::primitives::Id, + }, + ///See [`Pallet::trigger_onboard`]. + trigger_onboard { + para: my_types::polkadot_parachain::primitives::Id, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The parachain ID is not onboarding. + ParaNotOnboarding, + ///There was an error with the lease. + LeaseError, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A new `[lease_period]` is beginning. + NewLeasePeriod { lease_period: ::core::primitive::u32 }, + ///A para has won the right to a continuous set of lease periods as a parachain. + ///First balance is any extra amount reserved on top of the para's existing deposit. + ///Second balance is the total amount reserved. + Leased { + para_id: my_types::polkadot_parachain::primitives::Id, + leaser: my_types::sp_core::crypto::AccountId32, + period_begin: ::core::primitive::u32, + period_count: ::core::primitive::u32, + extra_reserved: ::core::primitive::u128, + total_amount: ::core::primitive::u128, + }, + } + } + } + } + pub mod polkadot_runtime_parachains { + use super::my_types; + pub mod configuration { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::set_validation_upgrade_cooldown`]. + set_validation_upgrade_cooldown { new: ::core::primitive::u32 }, + ///See [`Pallet::set_validation_upgrade_delay`]. + set_validation_upgrade_delay { new: ::core::primitive::u32 }, + ///See [`Pallet::set_code_retention_period`]. + set_code_retention_period { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_code_size`]. + set_max_code_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_pov_size`]. + set_max_pov_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_head_data_size`]. + set_max_head_data_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_parathread_cores`]. + set_parathread_cores { new: ::core::primitive::u32 }, + ///See [`Pallet::set_parathread_retries`]. + set_parathread_retries { new: ::core::primitive::u32 }, + ///See [`Pallet::set_group_rotation_frequency`]. + set_group_rotation_frequency { new: ::core::primitive::u32 }, + ///See [`Pallet::set_chain_availability_period`]. + set_chain_availability_period { new: ::core::primitive::u32 }, + ///See [`Pallet::set_thread_availability_period`]. + set_thread_availability_period { new: ::core::primitive::u32 }, + ///See [`Pallet::set_scheduling_lookahead`]. + set_scheduling_lookahead { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_validators_per_core`]. + set_max_validators_per_core { + new: ::core::option::Option<::core::primitive::u32>, + }, + ///See [`Pallet::set_max_validators`]. + set_max_validators { + new: ::core::option::Option<::core::primitive::u32>, + }, + ///See [`Pallet::set_dispute_period`]. + set_dispute_period { new: ::core::primitive::u32 }, + ///See [`Pallet::set_dispute_post_conclusion_acceptance_period`]. + set_dispute_post_conclusion_acceptance_period { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_no_show_slots`]. + set_no_show_slots { new: ::core::primitive::u32 }, + ///See [`Pallet::set_n_delay_tranches`]. + set_n_delay_tranches { new: ::core::primitive::u32 }, + ///See [`Pallet::set_zeroth_delay_tranche_width`]. + set_zeroth_delay_tranche_width { new: ::core::primitive::u32 }, + ///See [`Pallet::set_needed_approvals`]. + set_needed_approvals { new: ::core::primitive::u32 }, + ///See [`Pallet::set_relay_vrf_modulo_samples`]. + set_relay_vrf_modulo_samples { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_upward_queue_count`]. + set_max_upward_queue_count { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_upward_queue_size`]. + set_max_upward_queue_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_downward_message_size`]. + set_max_downward_message_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_upward_message_size`]. + set_max_upward_message_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_max_upward_message_num_per_candidate`]. + set_max_upward_message_num_per_candidate { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_hrmp_open_request_ttl`]. + set_hrmp_open_request_ttl { new: ::core::primitive::u32 }, + ///See [`Pallet::set_hrmp_sender_deposit`]. + set_hrmp_sender_deposit { new: ::core::primitive::u128 }, + ///See [`Pallet::set_hrmp_recipient_deposit`]. + set_hrmp_recipient_deposit { new: ::core::primitive::u128 }, + ///See [`Pallet::set_hrmp_channel_max_capacity`]. + set_hrmp_channel_max_capacity { new: ::core::primitive::u32 }, + ///See [`Pallet::set_hrmp_channel_max_total_size`]. + set_hrmp_channel_max_total_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_hrmp_max_parachain_inbound_channels`]. + set_hrmp_max_parachain_inbound_channels { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_hrmp_max_parathread_inbound_channels`]. + set_hrmp_max_parathread_inbound_channels { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_hrmp_channel_max_message_size`]. + set_hrmp_channel_max_message_size { new: ::core::primitive::u32 }, + ///See [`Pallet::set_hrmp_max_parachain_outbound_channels`]. + set_hrmp_max_parachain_outbound_channels { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_hrmp_max_parathread_outbound_channels`]. + set_hrmp_max_parathread_outbound_channels { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_hrmp_max_message_num_per_candidate`]. + set_hrmp_max_message_num_per_candidate { + new: ::core::primitive::u32, + }, + ///See [`Pallet::set_pvf_checking_enabled`]. + set_pvf_checking_enabled { new: ::core::primitive::bool }, + ///See [`Pallet::set_pvf_voting_ttl`]. + set_pvf_voting_ttl { new: ::core::primitive::u32 }, + ///See [`Pallet::set_minimum_validation_upgrade_delay`]. + set_minimum_validation_upgrade_delay { new: ::core::primitive::u32 }, + ///See [`Pallet::set_bypass_consistency_check`]. + set_bypass_consistency_check { new: ::core::primitive::bool }, + ///See [`Pallet::set_async_backing_params`]. + set_async_backing_params { + new: my_types::polkadot_primitives::vstaging::AsyncBackingParams, + }, + ///See [`Pallet::set_executor_params`]. + set_executor_params { + new: my_types::polkadot_primitives::v5::executor_params::ExecutorParams, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The new value for a configuration parameter is invalid. + InvalidNewValue, + } + } + #[derive(Clone, Debug)] + pub struct HostConfiguration<_0> { + pub max_code_size: ::core::primitive::u32, + pub max_head_data_size: ::core::primitive::u32, + pub max_upward_queue_count: ::core::primitive::u32, + pub max_upward_queue_size: ::core::primitive::u32, + pub max_upward_message_size: ::core::primitive::u32, + pub max_upward_message_num_per_candidate: ::core::primitive::u32, + pub hrmp_max_message_num_per_candidate: ::core::primitive::u32, + pub validation_upgrade_cooldown: _0, + pub validation_upgrade_delay: _0, + pub async_backing_params: my_types::polkadot_primitives::vstaging::AsyncBackingParams, + pub max_pov_size: ::core::primitive::u32, + pub max_downward_message_size: ::core::primitive::u32, + pub hrmp_max_parachain_outbound_channels: ::core::primitive::u32, + pub hrmp_max_parathread_outbound_channels: ::core::primitive::u32, + pub hrmp_sender_deposit: ::core::primitive::u128, + pub hrmp_recipient_deposit: ::core::primitive::u128, + pub hrmp_channel_max_capacity: ::core::primitive::u32, + pub hrmp_channel_max_total_size: ::core::primitive::u32, + pub hrmp_max_parachain_inbound_channels: ::core::primitive::u32, + pub hrmp_max_parathread_inbound_channels: ::core::primitive::u32, + pub hrmp_channel_max_message_size: ::core::primitive::u32, + pub executor_params: my_types::polkadot_primitives::v5::executor_params::ExecutorParams, + pub code_retention_period: _0, + pub parathread_cores: ::core::primitive::u32, + pub parathread_retries: ::core::primitive::u32, + pub group_rotation_frequency: _0, + pub chain_availability_period: _0, + pub thread_availability_period: _0, + pub scheduling_lookahead: ::core::primitive::u32, + pub max_validators_per_core: ::core::option::Option<_0>, + pub max_validators: ::core::option::Option<_0>, + pub dispute_period: ::core::primitive::u32, + pub dispute_post_conclusion_acceptance_period: _0, + pub no_show_slots: ::core::primitive::u32, + pub n_delay_tranches: ::core::primitive::u32, + pub zeroth_delay_tranche_width: ::core::primitive::u32, + pub needed_approvals: ::core::primitive::u32, + pub relay_vrf_modulo_samples: ::core::primitive::u32, + pub pvf_checking_enabled: ::core::primitive::bool, + pub pvf_voting_ttl: ::core::primitive::u32, + pub minimum_validation_upgrade_delay: _0, + } + } + pub mod disputes { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::force_unfreeze`]. + force_unfreeze, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Duplicate dispute statement sets provided. + DuplicateDisputeStatementSets, + ///Ancient dispute statement provided. + AncientDisputeStatement, + ///Validator index on statement is out of bounds for session. + ValidatorIndexOutOfBounds, + ///Invalid signature on statement. + InvalidSignature, + ///Validator vote submitted more than once to dispute. + DuplicateStatement, + ///A dispute where there are only votes on one side. + SingleSidedDispute, + ///A dispute vote from a malicious backer. + MaliciousBacker, + ///No backing votes were provides along dispute statements. + MissingBackingVotes, + ///Unconfirmed dispute statement sets provided. + UnconfirmedDispute, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A dispute has been initiated. \[candidate hash, dispute location\] + DisputeInitiated( + my_types::polkadot_core_primitives::CandidateHash, + my_types::polkadot_runtime_parachains::disputes::DisputeLocation, + ), + ///A dispute has concluded for or against a candidate. + ///`\[para id, candidate hash, dispute result\]` + DisputeConcluded( + my_types::polkadot_core_primitives::CandidateHash, + my_types::polkadot_runtime_parachains::disputes::DisputeResult, + ), + ///A dispute has concluded with supermajority against a candidate. + ///Block authors should no longer build on top of this head and should + ///instead revert the block at the given height. This should be the + ///number of the child of the last known valid block in the chain. + Revert(::core::primitive::u32), + } + } + pub mod slashing { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::report_dispute_lost_unsigned`]. + report_dispute_lost_unsigned { + dispute_proof: ::std::boxed::Box< + my_types::polkadot_primitives::v5::slashing::DisputeProof, + >, + key_owner_proof: my_types::sp_session::MembershipProof, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The key ownership proof is invalid. + InvalidKeyOwnershipProof, + ///The session index is too old or invalid. + InvalidSessionIndex, + ///The candidate hash is invalid. + InvalidCandidateHash, + ///There is no pending slash for the given validator index and time + ///slot. + InvalidValidatorIndex, + ///The validator index does not match the validator id. + ValidatorIndexIdMismatch, + ///The given slashing report is valid but already previously reported. + DuplicateSlashingReport, + } + } + } + #[derive(Clone, Debug)] + pub enum DisputeLocation { + Local, + Remote, + } + #[derive(Clone, Debug)] + pub enum DisputeResult { + Valid, + Invalid, + } + } + pub mod hrmp { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::hrmp_init_open_channel`]. + hrmp_init_open_channel { + recipient: my_types::polkadot_parachain::primitives::Id, + proposed_max_capacity: ::core::primitive::u32, + proposed_max_message_size: ::core::primitive::u32, + }, + ///See [`Pallet::hrmp_accept_open_channel`]. + hrmp_accept_open_channel { + sender: my_types::polkadot_parachain::primitives::Id, + }, + ///See [`Pallet::hrmp_close_channel`]. + hrmp_close_channel { + channel_id: my_types::polkadot_parachain::primitives::HrmpChannelId, + }, + ///See [`Pallet::force_clean_hrmp`]. + force_clean_hrmp { + para: my_types::polkadot_parachain::primitives::Id, + inbound: ::core::primitive::u32, + outbound: ::core::primitive::u32, + }, + ///See [`Pallet::force_process_hrmp_open`]. + force_process_hrmp_open { channels: ::core::primitive::u32 }, + ///See [`Pallet::force_process_hrmp_close`]. + force_process_hrmp_close { channels: ::core::primitive::u32 }, + ///See [`Pallet::hrmp_cancel_open_request`]. + hrmp_cancel_open_request { + channel_id: my_types::polkadot_parachain::primitives::HrmpChannelId, + open_requests: ::core::primitive::u32, + }, + ///See [`Pallet::force_open_hrmp_channel`]. + force_open_hrmp_channel { + sender: my_types::polkadot_parachain::primitives::Id, + recipient: my_types::polkadot_parachain::primitives::Id, + max_capacity: ::core::primitive::u32, + max_message_size: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///The sender tried to open a channel to themselves. + OpenHrmpChannelToSelf, + ///The recipient is not a valid para. + OpenHrmpChannelInvalidRecipient, + ///The requested capacity is zero. + OpenHrmpChannelZeroCapacity, + ///The requested capacity exceeds the global limit. + OpenHrmpChannelCapacityExceedsLimit, + ///The requested maximum message size is 0. + OpenHrmpChannelZeroMessageSize, + ///The open request requested the message size that exceeds the global limit. + OpenHrmpChannelMessageSizeExceedsLimit, + ///The channel already exists + OpenHrmpChannelAlreadyExists, + ///There is already a request to open the same channel. + OpenHrmpChannelAlreadyRequested, + ///The sender already has the maximum number of allowed outbound channels. + OpenHrmpChannelLimitExceeded, + ///The channel from the sender to the origin doesn't exist. + AcceptHrmpChannelDoesntExist, + ///The channel is already confirmed. + AcceptHrmpChannelAlreadyConfirmed, + ///The recipient already has the maximum number of allowed inbound channels. + AcceptHrmpChannelLimitExceeded, + ///The origin tries to close a channel where it is neither the sender nor the recipient. + CloseHrmpChannelUnauthorized, + ///The channel to be closed doesn't exist. + CloseHrmpChannelDoesntExist, + ///The channel close request is already requested. + CloseHrmpChannelAlreadyUnderway, + ///Canceling is requested by neither the sender nor recipient of the open channel request. + CancelHrmpOpenChannelUnauthorized, + ///The open request doesn't exist. + OpenHrmpChannelDoesntExist, + ///Cannot cancel an HRMP open channel request because it is already confirmed. + OpenHrmpChannelAlreadyConfirmed, + ///The provided witness data is wrong. + WrongWitness, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Open HRMP channel requested. + ///`[sender, recipient, proposed_max_capacity, proposed_max_message_size]` + OpenChannelRequested( + my_types::polkadot_parachain::primitives::Id, + my_types::polkadot_parachain::primitives::Id, + ::core::primitive::u32, + ::core::primitive::u32, + ), + ///An HRMP channel request sent by the receiver was canceled by either party. + ///`[by_parachain, channel_id]` + OpenChannelCanceled( + my_types::polkadot_parachain::primitives::Id, + my_types::polkadot_parachain::primitives::HrmpChannelId, + ), + ///Open HRMP channel accepted. `[sender, recipient]` + OpenChannelAccepted( + my_types::polkadot_parachain::primitives::Id, + my_types::polkadot_parachain::primitives::Id, + ), + ///HRMP channel closed. `[by_parachain, channel_id]` + ChannelClosed( + my_types::polkadot_parachain::primitives::Id, + my_types::polkadot_parachain::primitives::HrmpChannelId, + ), + ///An HRMP channel was opened via Root origin. + ///`[sender, recipient, proposed_max_capacity, proposed_max_message_size]` + HrmpChannelForceOpened( + my_types::polkadot_parachain::primitives::Id, + my_types::polkadot_parachain::primitives::Id, + ::core::primitive::u32, + ::core::primitive::u32, + ), + } + } + #[derive(Clone, Debug)] + pub struct HrmpChannel { + pub max_capacity: ::core::primitive::u32, + pub max_total_size: ::core::primitive::u32, + pub max_message_size: ::core::primitive::u32, + pub msg_count: ::core::primitive::u32, + pub total_size: ::core::primitive::u32, + pub mqc_head: ::core::option::Option, + pub sender_deposit: ::core::primitive::u128, + pub recipient_deposit: ::core::primitive::u128, + } + #[derive(Clone, Debug)] + pub struct HrmpOpenChannelRequest { + pub confirmed: ::core::primitive::bool, + pub _age: ::core::primitive::u32, + pub sender_deposit: ::core::primitive::u128, + pub max_message_size: ::core::primitive::u32, + pub max_capacity: ::core::primitive::u32, + pub max_total_size: ::core::primitive::u32, + } + } + pub mod inclusion { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call {} + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Validator indices are out of order or contains duplicates. + UnsortedOrDuplicateValidatorIndices, + ///Dispute statement sets are out of order or contain duplicates. + UnsortedOrDuplicateDisputeStatementSet, + ///Backed candidates are out of order (core index) or contain duplicates. + UnsortedOrDuplicateBackedCandidates, + ///A different relay parent was provided compared to the on-chain stored one. + UnexpectedRelayParent, + ///Availability bitfield has unexpected size. + WrongBitfieldSize, + ///Bitfield consists of zeros only. + BitfieldAllZeros, + ///Multiple bitfields submitted by same validator or validators out of order by index. + BitfieldDuplicateOrUnordered, + ///Validator index out of bounds. + ValidatorIndexOutOfBounds, + ///Invalid signature + InvalidBitfieldSignature, + ///Candidate submitted but para not scheduled. + UnscheduledCandidate, + ///Candidate scheduled despite pending candidate already existing for the para. + CandidateScheduledBeforeParaFree, + ///Candidate included with the wrong collator. + WrongCollator, + ///Scheduled cores out of order. + ScheduledOutOfOrder, + ///Head data exceeds the configured maximum. + HeadDataTooLarge, + ///Code upgrade prematurely. + PrematureCodeUpgrade, + ///Output code is too large + NewCodeTooLarge, + ///Candidate not in parent context. + CandidateNotInParentContext, + ///Invalid group index in core assignment. + InvalidGroupIndex, + ///Insufficient (non-majority) backing. + InsufficientBacking, + ///Invalid (bad signature, unknown validator, etc.) backing. + InvalidBacking, + ///Collator did not sign PoV. + NotCollatorSigned, + ///The validation data hash does not match expected. + ValidationDataHashMismatch, + ///The downward message queue is not processed correctly. + IncorrectDownwardMessageHandling, + ///At least one upward message sent does not pass the acceptance criteria. + InvalidUpwardMessages, + ///The candidate didn't follow the rules of HRMP watermark advancement. + HrmpWatermarkMishandling, + ///The HRMP messages sent by the candidate is not valid. + InvalidOutboundHrmp, + ///The validation code hash of the candidate is not valid. + InvalidValidationCodeHash, + ///The `para_head` hash in the candidate descriptor doesn't match the hash of the actual para head in the + ///commitments. + ParaHeadMismatch, + ///A bitfield that references a freed core, + ///either intentionally or as part of a concluded + ///invalid dispute. + BitfieldReferencesFreedCore, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///A candidate was backed. `[candidate, head_data]` + CandidateBacked( + my_types::polkadot_primitives::v5::CandidateReceipt< + my_types::primitive_types::H256, + >, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + my_types::polkadot_primitives::v5::GroupIndex, + ), + ///A candidate was included. `[candidate, head_data]` + CandidateIncluded( + my_types::polkadot_primitives::v5::CandidateReceipt< + my_types::primitive_types::H256, + >, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + my_types::polkadot_primitives::v5::GroupIndex, + ), + ///A candidate timed out. `[candidate, head_data]` + CandidateTimedOut( + my_types::polkadot_primitives::v5::CandidateReceipt< + my_types::primitive_types::H256, + >, + my_types::polkadot_parachain::primitives::HeadData, + my_types::polkadot_primitives::v5::CoreIndex, + ), + ///Some upward messages have been received and will be processed. + UpwardMessagesReceived { + from: my_types::polkadot_parachain::primitives::Id, + count: ::core::primitive::u32, + }, + } + } + #[derive(Clone, Debug)] + pub enum AggregateMessageOrigin { + Ump(my_types::polkadot_runtime_parachains::inclusion::UmpQueueId), + } + #[derive(Clone, Debug)] + pub struct AvailabilityBitfieldRecord<_0> { + pub bitfield: my_types::polkadot_primitives::v5::AvailabilityBitfield, + pub submitted_at: _0, + } + #[derive(Clone, Debug)] + pub struct CandidatePendingAvailability<_0, _1> { + pub core: my_types::polkadot_primitives::v5::CoreIndex, + pub hash: my_types::polkadot_core_primitives::CandidateHash, + pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< + _0, + >, + pub availability_votes: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub backers: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub relay_parent_number: _1, + pub backed_in_number: _1, + pub backing_group: my_types::polkadot_primitives::v5::GroupIndex, + } + #[derive(Clone, Debug)] + pub enum UmpQueueId { + Para(my_types::polkadot_parachain::primitives::Id), + } + } + pub mod initializer { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::force_approve`]. + force_approve { up_to: ::core::primitive::u32 }, + } + } + #[derive(Clone, Debug)] + pub struct BufferedSessionChange { + pub validators: ::std::vec::Vec< + my_types::polkadot_primitives::v5::validator_app::Public, + >, + pub queued: ::std::vec::Vec< + my_types::polkadot_primitives::v5::validator_app::Public, + >, + pub session_index: ::core::primitive::u32, + } + } + pub mod origin { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Origin { + Parachain(my_types::polkadot_parachain::primitives::Id), + } + } + } + pub mod paras { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::force_set_current_code`]. + force_set_current_code { + para: my_types::polkadot_parachain::primitives::Id, + new_code: my_types::polkadot_parachain::primitives::ValidationCode, + }, + ///See [`Pallet::force_set_current_head`]. + force_set_current_head { + para: my_types::polkadot_parachain::primitives::Id, + new_head: my_types::polkadot_parachain::primitives::HeadData, + }, + ///See [`Pallet::force_schedule_code_upgrade`]. + force_schedule_code_upgrade { + para: my_types::polkadot_parachain::primitives::Id, + new_code: my_types::polkadot_parachain::primitives::ValidationCode, + relay_parent_number: ::core::primitive::u32, + }, + ///See [`Pallet::force_note_new_head`]. + force_note_new_head { + para: my_types::polkadot_parachain::primitives::Id, + new_head: my_types::polkadot_parachain::primitives::HeadData, + }, + ///See [`Pallet::force_queue_action`]. + force_queue_action { + para: my_types::polkadot_parachain::primitives::Id, + }, + ///See [`Pallet::add_trusted_validation_code`]. + add_trusted_validation_code { + validation_code: my_types::polkadot_parachain::primitives::ValidationCode, + }, + ///See [`Pallet::poke_unused_validation_code`]. + poke_unused_validation_code { + validation_code_hash: my_types::polkadot_parachain::primitives::ValidationCodeHash, + }, + ///See [`Pallet::include_pvf_check_statement`]. + include_pvf_check_statement { + stmt: my_types::polkadot_primitives::v5::PvfCheckStatement, + signature: my_types::polkadot_primitives::v5::validator_app::Signature, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Para is not registered in our system. + NotRegistered, + ///Para cannot be onboarded because it is already tracked by our system. + CannotOnboard, + ///Para cannot be offboarded at this time. + CannotOffboard, + ///Para cannot be upgraded to a parachain. + CannotUpgrade, + ///Para cannot be downgraded to a parathread. + CannotDowngrade, + ///The statement for PVF pre-checking is stale. + PvfCheckStatementStale, + ///The statement for PVF pre-checking is for a future session. + PvfCheckStatementFuture, + ///Claimed validator index is out of bounds. + PvfCheckValidatorIndexOutOfBounds, + ///The signature for the PVF pre-checking is invalid. + PvfCheckInvalidSignature, + ///The given validator already has cast a vote. + PvfCheckDoubleVote, + ///The given PVF does not exist at the moment of process a vote. + PvfCheckSubjectInvalid, + ///Parachain cannot currently schedule a code upgrade. + CannotUpgradeCode, + } + #[derive(Clone, Debug)] + ///The `Event` enum of this pallet + pub enum Event { + ///Current code has been updated for a Para. `para_id` + CurrentCodeUpdated(my_types::polkadot_parachain::primitives::Id), + ///Current head has been updated for a Para. `para_id` + CurrentHeadUpdated(my_types::polkadot_parachain::primitives::Id), + ///A code upgrade has been scheduled for a Para. `para_id` + CodeUpgradeScheduled(my_types::polkadot_parachain::primitives::Id), + ///A new head has been noted for a Para. `para_id` + NewHeadNoted(my_types::polkadot_parachain::primitives::Id), + ///A para has been queued to execute pending actions. `para_id` + ActionQueued( + my_types::polkadot_parachain::primitives::Id, + ::core::primitive::u32, + ), + ///The given para either initiated or subscribed to a PVF check for the given validation + ///code. `code_hash` `para_id` + PvfCheckStarted( + my_types::polkadot_parachain::primitives::ValidationCodeHash, + my_types::polkadot_parachain::primitives::Id, + ), + ///The given validation code was accepted by the PVF pre-checking vote. + ///`code_hash` `para_id` + PvfCheckAccepted( + my_types::polkadot_parachain::primitives::ValidationCodeHash, + my_types::polkadot_parachain::primitives::Id, + ), + ///The given validation code was rejected by the PVF pre-checking vote. + ///`code_hash` `para_id` + PvfCheckRejected( + my_types::polkadot_parachain::primitives::ValidationCodeHash, + my_types::polkadot_parachain::primitives::Id, + ), + } + } + #[derive(Clone, Debug)] + pub struct ParaGenesisArgs { + pub genesis_head: my_types::polkadot_parachain::primitives::HeadData, + pub validation_code: my_types::polkadot_parachain::primitives::ValidationCode, + pub para_kind: ::core::primitive::bool, + } + #[derive(Clone, Debug)] + pub enum ParaLifecycle { + Onboarding, + Parathread, + Parachain, + UpgradingParathread, + DowngradingParachain, + OffboardingParathread, + OffboardingParachain, + } + #[derive(Clone, Debug)] + pub struct ParaPastCodeMeta<_0> { + pub upgrade_times: ::std::vec::Vec< + my_types::polkadot_runtime_parachains::paras::ReplacementTimes<_0>, + >, + pub last_pruned: ::core::option::Option<_0>, + } + #[derive(Clone, Debug)] + pub struct PvfCheckActiveVoteState<_0> { + pub votes_accept: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub votes_reject: DecodedBits< + ::core::primitive::u8, + my_types::bitvec::order::Lsb0, + >, + pub age: ::core::primitive::u32, + pub created_at: _0, + pub causes: ::std::vec::Vec< + my_types::polkadot_runtime_parachains::paras::PvfCheckCause<_0>, + >, + } + #[derive(Clone, Debug)] + pub enum PvfCheckCause<_0> { + Onboarding(my_types::polkadot_parachain::primitives::Id), + Upgrade { + id: my_types::polkadot_parachain::primitives::Id, + relay_parent_number: _0, + }, + } + #[derive(Clone, Debug)] + pub struct ReplacementTimes<_0> { + pub expected_at: _0, + pub activated_at: _0, + } + } + pub mod paras_inherent { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call { + ///See [`Pallet::enter`]. + enter { + data: my_types::polkadot_primitives::v5::InherentData< + my_types::sp_runtime::generic::header::Header< + ::core::primitive::u32, + my_types::sp_runtime::traits::BlakeTwo256, + >, + >, + }, + } + #[derive(Clone, Debug)] + ///The `Error` enum of this pallet. + pub enum Error { + ///Inclusion inherent called more than once per block. + TooManyInclusionInherents, + ///The hash of the submitted parent header doesn't correspond to the saved block hash of + ///the parent. + InvalidParentHeader, + ///Disputed candidate that was concluded invalid. + CandidateConcludedInvalid, + ///The data given to the inherent will result in an overweight block. + InherentOverweight, + ///The ordering of dispute statements was invalid. + DisputeStatementsUnsortedOrDuplicates, + ///A dispute statement was invalid. + DisputeInvalid, + } + } + } + pub mod scheduler { + use super::my_types; + #[derive(Clone, Debug)] + pub enum AssignmentKind { + Parachain, + Parathread( + my_types::polkadot_primitives::v5::collator_app::Public, + ::core::primitive::u32, + ), + } + #[derive(Clone, Debug)] + pub struct CoreAssignment { + pub core: my_types::polkadot_primitives::v5::CoreIndex, + pub para_id: my_types::polkadot_parachain::primitives::Id, + pub kind: my_types::polkadot_runtime_parachains::scheduler::AssignmentKind, + pub group_idx: my_types::polkadot_primitives::v5::GroupIndex, + } + #[derive(Clone, Debug)] + pub struct ParathreadClaimQueue { + pub queue: ::std::vec::Vec< + my_types::polkadot_runtime_parachains::scheduler::QueuedParathread, + >, + pub next_core_offset: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct QueuedParathread { + pub claim: my_types::polkadot_primitives::v5::ParathreadEntry, + pub core_offset: ::core::primitive::u32, + } + } + pub mod shared { + use super::my_types; + pub mod pallet { + use super::my_types; + #[derive(Clone, Debug)] + ///Contains a variant per dispatchable extrinsic that this pallet has. + pub enum Call {} + } + } + } + pub mod primitive_types { + use super::my_types; + #[derive(Clone, Debug)] + pub struct H256(pub [::core::primitive::u8; 32usize]); + } + pub mod sp_arithmetic { + use super::my_types; + pub mod fixed_point { + use super::my_types; + #[derive(Clone, Debug)] + pub struct FixedI64(pub ::core::primitive::i64); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct FixedU128(pub ::core::primitive::u128); + } + pub mod per_things { + use super::my_types; + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct PerU16(pub ::core::primitive::u16); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Perbill(pub ::core::primitive::u32); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Percent(pub ::core::primitive::u8); + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Permill(pub ::core::primitive::u32); + } + #[derive(Clone, Debug)] + pub enum ArithmeticError { + Underflow, + Overflow, + DivisionByZero, + } + } + pub mod sp_authority_discovery { + use super::my_types; + pub mod app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + } + } + pub mod sp_consensus_babe { + use super::my_types; + pub mod app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::sr25519::Public); + } + pub mod digests { + use super::my_types; + #[derive(Clone, Debug)] + pub enum NextConfigDescriptor { + V1 { + c: (::core::primitive::u64, ::core::primitive::u64), + allowed_slots: my_types::sp_consensus_babe::AllowedSlots, + }, + } + #[derive(Clone, Debug)] + pub enum PreDigest { + Primary(my_types::sp_consensus_babe::digests::PrimaryPreDigest), + SecondaryPlain( + my_types::sp_consensus_babe::digests::SecondaryPlainPreDigest, + ), + SecondaryVRF( + my_types::sp_consensus_babe::digests::SecondaryVRFPreDigest, + ), + } + #[derive(Clone, Debug)] + pub struct PrimaryPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: my_types::sp_consensus_slots::Slot, + pub vrf_signature: my_types::sp_core::sr25519::vrf::VrfSignature, + } + #[derive(Clone, Debug)] + pub struct SecondaryPlainPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: my_types::sp_consensus_slots::Slot, + } + #[derive(Clone, Debug)] + pub struct SecondaryVRFPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: my_types::sp_consensus_slots::Slot, + pub vrf_signature: my_types::sp_core::sr25519::vrf::VrfSignature, + } + } + #[derive(Clone, Debug)] + pub enum AllowedSlots { + PrimarySlots, + PrimaryAndSecondaryPlainSlots, + PrimaryAndSecondaryVRFSlots, + } + #[derive(Clone, Debug)] + pub struct BabeConfiguration { + pub slot_duration: ::core::primitive::u64, + pub epoch_length: ::core::primitive::u64, + pub c: (::core::primitive::u64, ::core::primitive::u64), + pub authorities: ::std::vec::Vec< + (my_types::sp_consensus_babe::app::Public, ::core::primitive::u64), + >, + pub randomness: [::core::primitive::u8; 32usize], + pub allowed_slots: my_types::sp_consensus_babe::AllowedSlots, + } + #[derive(Clone, Debug)] + pub struct BabeEpochConfiguration { + pub c: (::core::primitive::u64, ::core::primitive::u64), + pub allowed_slots: my_types::sp_consensus_babe::AllowedSlots, + } + #[derive(Clone, Debug)] + pub struct Epoch { + pub epoch_index: ::core::primitive::u64, + pub start_slot: my_types::sp_consensus_slots::Slot, + pub duration: ::core::primitive::u64, + pub authorities: ::std::vec::Vec< + (my_types::sp_consensus_babe::app::Public, ::core::primitive::u64), + >, + pub randomness: [::core::primitive::u8; 32usize], + pub config: my_types::sp_consensus_babe::BabeEpochConfiguration, + } + #[derive(Clone, Debug)] + pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); + } + pub mod sp_consensus_beefy { + use super::my_types; + pub mod commitment { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Commitment<_0> { + pub payload: my_types::sp_consensus_beefy::payload::Payload, + pub block_number: _0, + pub validator_set_id: ::core::primitive::u64, + } + } + pub mod crypto { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::ecdsa::Public); + #[derive(Clone, Debug)] + pub struct Signature(pub my_types::sp_core::ecdsa::Signature); + } + pub mod payload { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Payload( + pub ::std::vec::Vec< + ( + [::core::primitive::u8; 2usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + >, + ); + } + #[derive(Clone, Debug)] + pub struct EquivocationProof<_0, _1, _2> { + pub first: my_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, + pub second: my_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, + } + #[derive(Clone, Debug)] + pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive(Clone, Debug)] + pub struct ValidatorSet<_0> { + pub validators: ::std::vec::Vec<_0>, + pub id: ::core::primitive::u64, + } + #[derive(Clone, Debug)] + pub struct VoteMessage<_0, _1, _2> { + pub commitment: my_types::sp_consensus_beefy::commitment::Commitment<_0>, + pub id: _1, + pub signature: _2, + } + } + pub mod sp_consensus_grandpa { + use super::my_types; + pub mod app { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub my_types::sp_core::ed25519::Public); + #[derive(Clone, Debug)] + pub struct Signature(pub my_types::sp_core::ed25519::Signature); + } + #[derive(Clone, Debug)] + pub enum Equivocation<_0, _1> { + Prevote( + my_types::finality_grandpa::Equivocation< + my_types::sp_consensus_grandpa::app::Public, + my_types::finality_grandpa::Prevote<_0, _1>, + my_types::sp_consensus_grandpa::app::Signature, + >, + ), + Precommit( + my_types::finality_grandpa::Equivocation< + my_types::sp_consensus_grandpa::app::Public, + my_types::finality_grandpa::Precommit<_0, _1>, + my_types::sp_consensus_grandpa::app::Signature, + >, + ), + } + #[derive(Clone, Debug)] + pub struct EquivocationProof<_0, _1> { + pub set_id: ::core::primitive::u64, + pub equivocation: my_types::sp_consensus_grandpa::Equivocation<_0, _1>, + } + #[derive(Clone, Debug)] + pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); + } + pub mod sp_consensus_slots { + use super::my_types; + #[derive(Clone, Debug)] + pub struct EquivocationProof<_0, _1> { + pub offender: _1, + pub slot: my_types::sp_consensus_slots::Slot, + pub first_header: _0, + pub second_header: _0, + } + #[derive(Clone, Debug, parity_scale_codec::CompactAs)] + pub struct Slot(pub ::core::primitive::u64); + } + pub mod sp_core { + use super::my_types; + pub mod crypto { + use super::my_types; + #[derive(Clone, Debug)] + pub struct AccountId32(pub [::core::primitive::u8; 32usize]); + #[derive(Clone, Debug)] + pub struct KeyTypeId(pub [::core::primitive::u8; 4usize]); + } + pub mod ecdsa { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub [::core::primitive::u8; 33usize]); + #[derive(Clone, Debug)] + pub struct Signature(pub [::core::primitive::u8; 65usize]); + } + pub mod ed25519 { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive(Clone, Debug)] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + pub mod sr25519 { + use super::my_types; + pub mod vrf { + use super::my_types; + #[derive(Clone, Debug)] + pub struct VrfSignature { + pub output: [::core::primitive::u8; 32usize], + pub proof: [::core::primitive::u8; 64usize], + } + } + #[derive(Clone, Debug)] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive(Clone, Debug)] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + #[derive(Clone, Debug)] + pub struct OpaqueMetadata(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive(Clone, Debug)] + pub enum Void {} + } + pub mod sp_inherents { + use super::my_types; + #[derive(Clone, Debug)] + pub struct CheckInherentsResult { + pub okay: ::core::primitive::bool, + pub fatal_error: ::core::primitive::bool, + pub errors: my_types::sp_inherents::InherentData, + } + #[derive(Clone, Debug)] + pub struct InherentData { + pub data: ::std::collections::BTreeMap< + [::core::primitive::u8; 8usize], + ::std::vec::Vec<::core::primitive::u8>, + >, + } + } + pub mod sp_mmr_primitives { + use super::my_types; + #[derive(Clone, Debug)] + pub struct EncodableOpaqueLeaf(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive(Clone, Debug)] + pub enum Error { + InvalidNumericOp, + Push, + GetRoot, + Commit, + GenerateProof, + Verify, + LeafNotFound, + PalletNotIncluded, + InvalidLeafIndex, + InvalidBestKnownBlock, + } + #[derive(Clone, Debug)] + pub struct Proof<_0> { + pub leaf_indices: ::std::vec::Vec<::core::primitive::u64>, + pub leaf_count: ::core::primitive::u64, + pub items: ::std::vec::Vec<_0>, + } + } + pub mod sp_npos_elections { + use super::my_types; + #[derive(Clone, Debug)] + pub struct ElectionScore { + pub minimal_stake: ::core::primitive::u128, + pub sum_stake: ::core::primitive::u128, + pub sum_stake_squared: ::core::primitive::u128, + } + #[derive(Clone, Debug)] + pub struct Support<_0> { + pub total: ::core::primitive::u128, + pub voters: ::std::vec::Vec<(_0, ::core::primitive::u128)>, + } + } + pub mod sp_runtime { + use super::my_types; + pub mod generic { + use super::my_types; + pub mod block { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Block<_0, _1> { + pub header: _0, + pub extrinsics: ::std::vec::Vec<_1>, + } + } + pub mod digest { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Digest { + pub logs: ::std::vec::Vec< + my_types::sp_runtime::generic::digest::DigestItem, + >, + } + #[derive(Clone, Debug)] + pub enum DigestItem { + PreRuntime( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + Consensus( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + Seal( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + Other(::std::vec::Vec<::core::primitive::u8>), + RuntimeEnvironmentUpdated, + } + } + pub mod era { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Era { + Immortal, + Mortal1(::core::primitive::u8), + Mortal2(::core::primitive::u8), + Mortal3(::core::primitive::u8), + Mortal4(::core::primitive::u8), + Mortal5(::core::primitive::u8), + Mortal6(::core::primitive::u8), + Mortal7(::core::primitive::u8), + Mortal8(::core::primitive::u8), + Mortal9(::core::primitive::u8), + Mortal10(::core::primitive::u8), + Mortal11(::core::primitive::u8), + Mortal12(::core::primitive::u8), + Mortal13(::core::primitive::u8), + Mortal14(::core::primitive::u8), + Mortal15(::core::primitive::u8), + Mortal16(::core::primitive::u8), + Mortal17(::core::primitive::u8), + Mortal18(::core::primitive::u8), + Mortal19(::core::primitive::u8), + Mortal20(::core::primitive::u8), + Mortal21(::core::primitive::u8), + Mortal22(::core::primitive::u8), + Mortal23(::core::primitive::u8), + Mortal24(::core::primitive::u8), + Mortal25(::core::primitive::u8), + Mortal26(::core::primitive::u8), + Mortal27(::core::primitive::u8), + Mortal28(::core::primitive::u8), + Mortal29(::core::primitive::u8), + Mortal30(::core::primitive::u8), + Mortal31(::core::primitive::u8), + Mortal32(::core::primitive::u8), + Mortal33(::core::primitive::u8), + Mortal34(::core::primitive::u8), + Mortal35(::core::primitive::u8), + Mortal36(::core::primitive::u8), + Mortal37(::core::primitive::u8), + Mortal38(::core::primitive::u8), + Mortal39(::core::primitive::u8), + Mortal40(::core::primitive::u8), + Mortal41(::core::primitive::u8), + Mortal42(::core::primitive::u8), + Mortal43(::core::primitive::u8), + Mortal44(::core::primitive::u8), + Mortal45(::core::primitive::u8), + Mortal46(::core::primitive::u8), + Mortal47(::core::primitive::u8), + Mortal48(::core::primitive::u8), + Mortal49(::core::primitive::u8), + Mortal50(::core::primitive::u8), + Mortal51(::core::primitive::u8), + Mortal52(::core::primitive::u8), + Mortal53(::core::primitive::u8), + Mortal54(::core::primitive::u8), + Mortal55(::core::primitive::u8), + Mortal56(::core::primitive::u8), + Mortal57(::core::primitive::u8), + Mortal58(::core::primitive::u8), + Mortal59(::core::primitive::u8), + Mortal60(::core::primitive::u8), + Mortal61(::core::primitive::u8), + Mortal62(::core::primitive::u8), + Mortal63(::core::primitive::u8), + Mortal64(::core::primitive::u8), + Mortal65(::core::primitive::u8), + Mortal66(::core::primitive::u8), + Mortal67(::core::primitive::u8), + Mortal68(::core::primitive::u8), + Mortal69(::core::primitive::u8), + Mortal70(::core::primitive::u8), + Mortal71(::core::primitive::u8), + Mortal72(::core::primitive::u8), + Mortal73(::core::primitive::u8), + Mortal74(::core::primitive::u8), + Mortal75(::core::primitive::u8), + Mortal76(::core::primitive::u8), + Mortal77(::core::primitive::u8), + Mortal78(::core::primitive::u8), + Mortal79(::core::primitive::u8), + Mortal80(::core::primitive::u8), + Mortal81(::core::primitive::u8), + Mortal82(::core::primitive::u8), + Mortal83(::core::primitive::u8), + Mortal84(::core::primitive::u8), + Mortal85(::core::primitive::u8), + Mortal86(::core::primitive::u8), + Mortal87(::core::primitive::u8), + Mortal88(::core::primitive::u8), + Mortal89(::core::primitive::u8), + Mortal90(::core::primitive::u8), + Mortal91(::core::primitive::u8), + Mortal92(::core::primitive::u8), + Mortal93(::core::primitive::u8), + Mortal94(::core::primitive::u8), + Mortal95(::core::primitive::u8), + Mortal96(::core::primitive::u8), + Mortal97(::core::primitive::u8), + Mortal98(::core::primitive::u8), + Mortal99(::core::primitive::u8), + Mortal100(::core::primitive::u8), + Mortal101(::core::primitive::u8), + Mortal102(::core::primitive::u8), + Mortal103(::core::primitive::u8), + Mortal104(::core::primitive::u8), + Mortal105(::core::primitive::u8), + Mortal106(::core::primitive::u8), + Mortal107(::core::primitive::u8), + Mortal108(::core::primitive::u8), + Mortal109(::core::primitive::u8), + Mortal110(::core::primitive::u8), + Mortal111(::core::primitive::u8), + Mortal112(::core::primitive::u8), + Mortal113(::core::primitive::u8), + Mortal114(::core::primitive::u8), + Mortal115(::core::primitive::u8), + Mortal116(::core::primitive::u8), + Mortal117(::core::primitive::u8), + Mortal118(::core::primitive::u8), + Mortal119(::core::primitive::u8), + Mortal120(::core::primitive::u8), + Mortal121(::core::primitive::u8), + Mortal122(::core::primitive::u8), + Mortal123(::core::primitive::u8), + Mortal124(::core::primitive::u8), + Mortal125(::core::primitive::u8), + Mortal126(::core::primitive::u8), + Mortal127(::core::primitive::u8), + Mortal128(::core::primitive::u8), + Mortal129(::core::primitive::u8), + Mortal130(::core::primitive::u8), + Mortal131(::core::primitive::u8), + Mortal132(::core::primitive::u8), + Mortal133(::core::primitive::u8), + Mortal134(::core::primitive::u8), + Mortal135(::core::primitive::u8), + Mortal136(::core::primitive::u8), + Mortal137(::core::primitive::u8), + Mortal138(::core::primitive::u8), + Mortal139(::core::primitive::u8), + Mortal140(::core::primitive::u8), + Mortal141(::core::primitive::u8), + Mortal142(::core::primitive::u8), + Mortal143(::core::primitive::u8), + Mortal144(::core::primitive::u8), + Mortal145(::core::primitive::u8), + Mortal146(::core::primitive::u8), + Mortal147(::core::primitive::u8), + Mortal148(::core::primitive::u8), + Mortal149(::core::primitive::u8), + Mortal150(::core::primitive::u8), + Mortal151(::core::primitive::u8), + Mortal152(::core::primitive::u8), + Mortal153(::core::primitive::u8), + Mortal154(::core::primitive::u8), + Mortal155(::core::primitive::u8), + Mortal156(::core::primitive::u8), + Mortal157(::core::primitive::u8), + Mortal158(::core::primitive::u8), + Mortal159(::core::primitive::u8), + Mortal160(::core::primitive::u8), + Mortal161(::core::primitive::u8), + Mortal162(::core::primitive::u8), + Mortal163(::core::primitive::u8), + Mortal164(::core::primitive::u8), + Mortal165(::core::primitive::u8), + Mortal166(::core::primitive::u8), + Mortal167(::core::primitive::u8), + Mortal168(::core::primitive::u8), + Mortal169(::core::primitive::u8), + Mortal170(::core::primitive::u8), + Mortal171(::core::primitive::u8), + Mortal172(::core::primitive::u8), + Mortal173(::core::primitive::u8), + Mortal174(::core::primitive::u8), + Mortal175(::core::primitive::u8), + Mortal176(::core::primitive::u8), + Mortal177(::core::primitive::u8), + Mortal178(::core::primitive::u8), + Mortal179(::core::primitive::u8), + Mortal180(::core::primitive::u8), + Mortal181(::core::primitive::u8), + Mortal182(::core::primitive::u8), + Mortal183(::core::primitive::u8), + Mortal184(::core::primitive::u8), + Mortal185(::core::primitive::u8), + Mortal186(::core::primitive::u8), + Mortal187(::core::primitive::u8), + Mortal188(::core::primitive::u8), + Mortal189(::core::primitive::u8), + Mortal190(::core::primitive::u8), + Mortal191(::core::primitive::u8), + Mortal192(::core::primitive::u8), + Mortal193(::core::primitive::u8), + Mortal194(::core::primitive::u8), + Mortal195(::core::primitive::u8), + Mortal196(::core::primitive::u8), + Mortal197(::core::primitive::u8), + Mortal198(::core::primitive::u8), + Mortal199(::core::primitive::u8), + Mortal200(::core::primitive::u8), + Mortal201(::core::primitive::u8), + Mortal202(::core::primitive::u8), + Mortal203(::core::primitive::u8), + Mortal204(::core::primitive::u8), + Mortal205(::core::primitive::u8), + Mortal206(::core::primitive::u8), + Mortal207(::core::primitive::u8), + Mortal208(::core::primitive::u8), + Mortal209(::core::primitive::u8), + Mortal210(::core::primitive::u8), + Mortal211(::core::primitive::u8), + Mortal212(::core::primitive::u8), + Mortal213(::core::primitive::u8), + Mortal214(::core::primitive::u8), + Mortal215(::core::primitive::u8), + Mortal216(::core::primitive::u8), + Mortal217(::core::primitive::u8), + Mortal218(::core::primitive::u8), + Mortal219(::core::primitive::u8), + Mortal220(::core::primitive::u8), + Mortal221(::core::primitive::u8), + Mortal222(::core::primitive::u8), + Mortal223(::core::primitive::u8), + Mortal224(::core::primitive::u8), + Mortal225(::core::primitive::u8), + Mortal226(::core::primitive::u8), + Mortal227(::core::primitive::u8), + Mortal228(::core::primitive::u8), + Mortal229(::core::primitive::u8), + Mortal230(::core::primitive::u8), + Mortal231(::core::primitive::u8), + Mortal232(::core::primitive::u8), + Mortal233(::core::primitive::u8), + Mortal234(::core::primitive::u8), + Mortal235(::core::primitive::u8), + Mortal236(::core::primitive::u8), + Mortal237(::core::primitive::u8), + Mortal238(::core::primitive::u8), + Mortal239(::core::primitive::u8), + Mortal240(::core::primitive::u8), + Mortal241(::core::primitive::u8), + Mortal242(::core::primitive::u8), + Mortal243(::core::primitive::u8), + Mortal244(::core::primitive::u8), + Mortal245(::core::primitive::u8), + Mortal246(::core::primitive::u8), + Mortal247(::core::primitive::u8), + Mortal248(::core::primitive::u8), + Mortal249(::core::primitive::u8), + Mortal250(::core::primitive::u8), + Mortal251(::core::primitive::u8), + Mortal252(::core::primitive::u8), + Mortal253(::core::primitive::u8), + Mortal254(::core::primitive::u8), + Mortal255(::core::primitive::u8), + } + } + pub mod header { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Header<_0, _1> { + pub parent_hash: my_types::primitive_types::H256, + pub number: _0, + pub state_root: my_types::primitive_types::H256, + pub extrinsics_root: my_types::primitive_types::H256, + pub digest: my_types::sp_runtime::generic::digest::Digest, + pub __ignore: ::core::marker::PhantomData<_1>, + } + } + pub mod unchecked_extrinsic { + use super::my_types; + #[derive(Clone, Debug)] + pub struct UncheckedExtrinsic<_0, _1, _2, _3>( + pub ::std::vec::Vec<::core::primitive::u8>, + pub ::core::marker::PhantomData<(_1, _0, _2, _3)>, + ); + } + } + pub mod multiaddress { + use super::my_types; + #[derive(Clone, Debug)] + pub enum MultiAddress<_0, _1> { + Id(_0), + Index(_1), + Raw(::std::vec::Vec<::core::primitive::u8>), + Address32([::core::primitive::u8; 32usize]), + Address20([::core::primitive::u8; 20usize]), + } + } + pub mod traits { + use super::my_types; + #[derive(Clone, Debug)] + pub struct BlakeTwo256; + } + pub mod transaction_validity { + use super::my_types; + #[derive(Clone, Debug)] + pub enum InvalidTransaction { + Call, + Payment, + Future, + Stale, + BadProof, + AncientBirthBlock, + ExhaustsResources, + Custom(::core::primitive::u8), + BadMandatory, + MandatoryValidation, + BadSigner, + } + #[derive(Clone, Debug)] + pub enum TransactionSource { + InBlock, + Local, + External, + } + #[derive(Clone, Debug)] + pub enum TransactionValidityError { + Invalid(my_types::sp_runtime::transaction_validity::InvalidTransaction), + Unknown(my_types::sp_runtime::transaction_validity::UnknownTransaction), + } + #[derive(Clone, Debug)] + pub enum UnknownTransaction { + CannotLookup, + NoUnsignedValidator, + Custom(::core::primitive::u8), + } + #[derive(Clone, Debug)] + pub struct ValidTransaction { + pub priority: ::core::primitive::u64, + pub requires: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + pub provides: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + pub longevity: ::core::primitive::u64, + pub propagate: ::core::primitive::bool, + } + } + #[derive(Clone, Debug)] + pub enum DispatchError { + Other, + CannotLookup, + BadOrigin, + Module(my_types::sp_runtime::ModuleError), + ConsumerRemaining, + NoProviders, + TooManyConsumers, + Token(my_types::sp_runtime::TokenError), + Arithmetic(my_types::sp_arithmetic::ArithmeticError), + Transactional(my_types::sp_runtime::TransactionalError), + Exhausted, + Corruption, + Unavailable, + RootNotAllowed, + } + #[derive(Clone, Debug)] + pub struct DispatchErrorWithPostInfo<_0> { + pub post_info: _0, + pub error: my_types::sp_runtime::DispatchError, + } + #[derive(Clone, Debug)] + pub struct ModuleError { + pub index: ::core::primitive::u8, + pub error: [::core::primitive::u8; 4usize], + } + #[derive(Clone, Debug)] + pub enum MultiSignature { + Ed25519(my_types::sp_core::ed25519::Signature), + Sr25519(my_types::sp_core::sr25519::Signature), + Ecdsa(my_types::sp_core::ecdsa::Signature), + } + #[derive(Clone, Debug)] + pub enum MultiSigner { + Ed25519(my_types::sp_core::ed25519::Public), + Sr25519(my_types::sp_core::sr25519::Public), + Ecdsa(my_types::sp_core::ecdsa::Public), + } + #[derive(Clone, Debug)] + pub enum TokenError { + FundsUnavailable, + OnlyProvider, + BelowMinimum, + CannotCreate, + UnknownAsset, + Frozen, + Unsupported, + CannotCreateHold, + NotExpendable, + Blocked, + } + #[derive(Clone, Debug)] + pub enum TransactionalError { + LimitReached, + NoLayer, + } + } + pub mod sp_session { + use super::my_types; + #[derive(Clone, Debug)] + pub struct MembershipProof { + pub session: ::core::primitive::u32, + pub trie_nodes: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + pub validator_count: ::core::primitive::u32, + } + } + pub mod sp_staking { + use super::my_types; + pub mod offence { + use super::my_types; + #[derive(Clone, Debug)] + pub struct OffenceDetails<_0, _1> { + pub offender: _1, + pub reporters: ::std::vec::Vec<_0>, + } + } + } + pub mod sp_version { + use super::my_types; + #[derive(Clone, Debug)] + pub struct RuntimeVersion { + pub spec_name: ::std::string::String, + pub impl_name: ::std::string::String, + pub authoring_version: ::core::primitive::u32, + pub spec_version: ::core::primitive::u32, + pub impl_version: ::core::primitive::u32, + pub apis: ::std::vec::Vec< + ([::core::primitive::u8; 8usize], ::core::primitive::u32), + >, + pub transaction_version: ::core::primitive::u32, + pub state_version: ::core::primitive::u8, + } + } + pub mod sp_weights { + use super::my_types; + pub mod weight_v2 { + use super::my_types; + #[derive(Clone, Debug)] + pub struct Weight { + pub ref_time: ::core::primitive::u64, + pub proof_size: ::core::primitive::u64, + } + } + #[derive(Clone, Debug)] + pub struct RuntimeDbWeight { + pub read: ::core::primitive::u64, + pub write: ::core::primitive::u64, + } + } + pub mod xcm { + use super::my_types; + pub mod double_encoded { + use super::my_types; + #[derive(Clone, Debug)] + pub struct DoubleEncoded { + pub encoded: ::std::vec::Vec<::core::primitive::u8>, + } + } + pub mod v2 { + use super::my_types; + pub mod junction { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Junction { + Parachain(::core::primitive::u32), + AccountId32 { + network: my_types::xcm::v2::NetworkId, + id: [::core::primitive::u8; 32usize], + }, + AccountIndex64 { + network: my_types::xcm::v2::NetworkId, + index: ::core::primitive::u64, + }, + AccountKey20 { + network: my_types::xcm::v2::NetworkId, + key: [::core::primitive::u8; 20usize], + }, + PalletInstance(::core::primitive::u8), + GeneralIndex(::core::primitive::u128), + GeneralKey( + my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< + ::core::primitive::u8, + >, + ), + OnlyChild, + Plurality { + id: my_types::xcm::v2::BodyId, + part: my_types::xcm::v2::BodyPart, + }, + } + } + pub mod multiasset { + use super::my_types; + #[derive(Clone, Debug)] + pub enum AssetId { + Concrete(my_types::xcm::v2::multilocation::MultiLocation), + Abstract(::std::vec::Vec<::core::primitive::u8>), + } + #[derive(Clone, Debug)] + pub enum AssetInstance { + Undefined, + Index(::core::primitive::u128), + Array4([::core::primitive::u8; 4usize]), + Array8([::core::primitive::u8; 8usize]), + Array16([::core::primitive::u8; 16usize]), + Array32([::core::primitive::u8; 32usize]), + Blob(::std::vec::Vec<::core::primitive::u8>), + } + #[derive(Clone, Debug)] + pub enum Fungibility { + Fungible(::core::primitive::u128), + NonFungible(my_types::xcm::v2::multiasset::AssetInstance), + } + #[derive(Clone, Debug)] + pub struct MultiAsset { + pub id: my_types::xcm::v2::multiasset::AssetId, + pub fun: my_types::xcm::v2::multiasset::Fungibility, + } + #[derive(Clone, Debug)] + pub enum MultiAssetFilter { + Definite(my_types::xcm::v2::multiasset::MultiAssets), + Wild(my_types::xcm::v2::multiasset::WildMultiAsset), + } + #[derive(Clone, Debug)] + pub struct MultiAssets( + pub ::std::vec::Vec, + ); + #[derive(Clone, Debug)] + pub enum WildFungibility { + Fungible, + NonFungible, + } + #[derive(Clone, Debug)] + pub enum WildMultiAsset { + All, + AllOf { + id: my_types::xcm::v2::multiasset::AssetId, + fun: my_types::xcm::v2::multiasset::WildFungibility, + }, + } + } + pub mod multilocation { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Junctions { + Here, + X1(my_types::xcm::v2::junction::Junction), + X2( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X3( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X4( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X5( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X6( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X7( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + X8( + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + my_types::xcm::v2::junction::Junction, + ), + } + #[derive(Clone, Debug)] + pub struct MultiLocation { + pub parents: ::core::primitive::u8, + pub interior: my_types::xcm::v2::multilocation::Junctions, + } + } + pub mod traits { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Error { + Overflow, + Unimplemented, + UntrustedReserveLocation, + UntrustedTeleportLocation, + MultiLocationFull, + MultiLocationNotInvertible, + BadOrigin, + InvalidLocation, + AssetNotFound, + FailedToTransactAsset, + NotWithdrawable, + LocationCannotHold, + ExceedsMaxMessageSize, + DestinationUnsupported, + Transport, + Unroutable, + UnknownClaim, + FailedToDecode, + MaxWeightInvalid, + NotHoldingFees, + TooExpensive, + Trap(::core::primitive::u64), + UnhandledXcmVersion, + WeightLimitReached(::core::primitive::u64), + Barrier, + WeightNotComputable, + } + } + #[derive(Clone, Debug)] + pub enum BodyId { + Unit, + Named( + my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< + ::core::primitive::u8, + >, + ), + Index(::core::primitive::u32), + Executive, + Technical, + Legislative, + Judicial, + Defense, + Administration, + Treasury, + } + #[derive(Clone, Debug)] + pub enum BodyPart { + Voice, + Members { count: ::core::primitive::u32 }, + Fraction { nom: ::core::primitive::u32, denom: ::core::primitive::u32 }, + AtLeastProportion { + nom: ::core::primitive::u32, + denom: ::core::primitive::u32, + }, + MoreThanProportion { + nom: ::core::primitive::u32, + denom: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + pub enum Instruction { + WithdrawAsset(my_types::xcm::v2::multiasset::MultiAssets), + ReserveAssetDeposited(my_types::xcm::v2::multiasset::MultiAssets), + ReceiveTeleportedAsset(my_types::xcm::v2::multiasset::MultiAssets), + QueryResponse { + query_id: ::core::primitive::u64, + response: my_types::xcm::v2::Response, + max_weight: ::core::primitive::u64, + }, + TransferAsset { + assets: my_types::xcm::v2::multiasset::MultiAssets, + beneficiary: my_types::xcm::v2::multilocation::MultiLocation, + }, + TransferReserveAsset { + assets: my_types::xcm::v2::multiasset::MultiAssets, + dest: my_types::xcm::v2::multilocation::MultiLocation, + xcm: my_types::xcm::v2::Xcm, + }, + Transact { + origin_type: my_types::xcm::v2::OriginKind, + require_weight_at_most: ::core::primitive::u64, + call: my_types::xcm::double_encoded::DoubleEncoded, + }, + HrmpNewChannelOpenRequest { + sender: ::core::primitive::u32, + max_message_size: ::core::primitive::u32, + max_capacity: ::core::primitive::u32, + }, + HrmpChannelAccepted { recipient: ::core::primitive::u32 }, + HrmpChannelClosing { + initiator: ::core::primitive::u32, + sender: ::core::primitive::u32, + recipient: ::core::primitive::u32, + }, + ClearOrigin, + DescendOrigin(my_types::xcm::v2::multilocation::Junctions), + ReportError { + query_id: ::core::primitive::u64, + dest: my_types::xcm::v2::multilocation::MultiLocation, + max_response_weight: ::core::primitive::u64, + }, + DepositAsset { + assets: my_types::xcm::v2::multiasset::MultiAssetFilter, + max_assets: ::core::primitive::u32, + beneficiary: my_types::xcm::v2::multilocation::MultiLocation, + }, + DepositReserveAsset { + assets: my_types::xcm::v2::multiasset::MultiAssetFilter, + max_assets: ::core::primitive::u32, + dest: my_types::xcm::v2::multilocation::MultiLocation, + xcm: my_types::xcm::v2::Xcm, + }, + ExchangeAsset { + give: my_types::xcm::v2::multiasset::MultiAssetFilter, + receive: my_types::xcm::v2::multiasset::MultiAssets, + }, + InitiateReserveWithdraw { + assets: my_types::xcm::v2::multiasset::MultiAssetFilter, + reserve: my_types::xcm::v2::multilocation::MultiLocation, + xcm: my_types::xcm::v2::Xcm, + }, + InitiateTeleport { + assets: my_types::xcm::v2::multiasset::MultiAssetFilter, + dest: my_types::xcm::v2::multilocation::MultiLocation, + xcm: my_types::xcm::v2::Xcm, + }, + QueryHolding { + query_id: ::core::primitive::u64, + dest: my_types::xcm::v2::multilocation::MultiLocation, + assets: my_types::xcm::v2::multiasset::MultiAssetFilter, + max_response_weight: ::core::primitive::u64, + }, + BuyExecution { + fees: my_types::xcm::v2::multiasset::MultiAsset, + weight_limit: my_types::xcm::v2::WeightLimit, + }, + RefundSurplus, + SetErrorHandler(my_types::xcm::v2::Xcm), + SetAppendix(my_types::xcm::v2::Xcm), + ClearError, + ClaimAsset { + assets: my_types::xcm::v2::multiasset::MultiAssets, + ticket: my_types::xcm::v2::multilocation::MultiLocation, + }, + Trap(::core::primitive::u64), + SubscribeVersion { + query_id: ::core::primitive::u64, + max_response_weight: ::core::primitive::u64, + }, + UnsubscribeVersion, + } + #[derive(Clone, Debug)] + pub enum NetworkId { + Any, + Named( + my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< + ::core::primitive::u8, + >, + ), + Polkadot, + Kusama, + } + #[derive(Clone, Debug)] + pub enum OriginKind { + Native, + SovereignAccount, + Superuser, + Xcm, + } + #[derive(Clone, Debug)] + pub enum Response { + Null, + Assets(my_types::xcm::v2::multiasset::MultiAssets), + ExecutionResult( + ::core::option::Option< + (::core::primitive::u32, my_types::xcm::v2::traits::Error), + >, + ), + Version(::core::primitive::u32), + } + #[derive(Clone, Debug)] + pub enum WeightLimit { + Unlimited, + Limited(::core::primitive::u64), + } + #[derive(Clone, Debug)] + pub struct Xcm(pub ::std::vec::Vec); + } + pub mod v3 { + use super::my_types; + pub mod junction { + use super::my_types; + #[derive(Clone, Debug)] + pub enum BodyId { + Unit, + Moniker([::core::primitive::u8; 4usize]), + Index(::core::primitive::u32), + Executive, + Technical, + Legislative, + Judicial, + Defense, + Administration, + Treasury, + } + #[derive(Clone, Debug)] + pub enum BodyPart { + Voice, + Members { count: ::core::primitive::u32 }, + Fraction { + nom: ::core::primitive::u32, + denom: ::core::primitive::u32, + }, + AtLeastProportion { + nom: ::core::primitive::u32, + denom: ::core::primitive::u32, + }, + MoreThanProportion { + nom: ::core::primitive::u32, + denom: ::core::primitive::u32, + }, + } + #[derive(Clone, Debug)] + pub enum Junction { + Parachain(::core::primitive::u32), + AccountId32 { + network: ::core::option::Option< + my_types::xcm::v3::junction::NetworkId, + >, + id: [::core::primitive::u8; 32usize], + }, + AccountIndex64 { + network: ::core::option::Option< + my_types::xcm::v3::junction::NetworkId, + >, + index: ::core::primitive::u64, + }, + AccountKey20 { + network: ::core::option::Option< + my_types::xcm::v3::junction::NetworkId, + >, + key: [::core::primitive::u8; 20usize], + }, + PalletInstance(::core::primitive::u8), + GeneralIndex(::core::primitive::u128), + GeneralKey { + length: ::core::primitive::u8, + data: [::core::primitive::u8; 32usize], + }, + OnlyChild, + Plurality { + id: my_types::xcm::v3::junction::BodyId, + part: my_types::xcm::v3::junction::BodyPart, + }, + GlobalConsensus(my_types::xcm::v3::junction::NetworkId), + } + #[derive(Clone, Debug)] + pub enum NetworkId { + ByGenesis([::core::primitive::u8; 32usize]), + ByFork { + block_number: ::core::primitive::u64, + block_hash: [::core::primitive::u8; 32usize], + }, + Polkadot, + Kusama, + Westend, + Rococo, + Wococo, + Ethereum { chain_id: ::core::primitive::u64 }, + BitcoinCore, + BitcoinCash, + } + } + pub mod junctions { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Junctions { + Here, + X1(my_types::xcm::v3::junction::Junction), + X2( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X3( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X4( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X5( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X6( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X7( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + X8( + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + my_types::xcm::v3::junction::Junction, + ), + } + } + pub mod multiasset { + use super::my_types; + #[derive(Clone, Debug)] + pub enum AssetId { + Concrete(my_types::xcm::v3::multilocation::MultiLocation), + Abstract([::core::primitive::u8; 32usize]), + } + #[derive(Clone, Debug)] + pub enum AssetInstance { + Undefined, + Index(::core::primitive::u128), + Array4([::core::primitive::u8; 4usize]), + Array8([::core::primitive::u8; 8usize]), + Array16([::core::primitive::u8; 16usize]), + Array32([::core::primitive::u8; 32usize]), + } + #[derive(Clone, Debug)] + pub enum Fungibility { + Fungible(::core::primitive::u128), + NonFungible(my_types::xcm::v3::multiasset::AssetInstance), + } + #[derive(Clone, Debug)] + pub struct MultiAsset { + pub id: my_types::xcm::v3::multiasset::AssetId, + pub fun: my_types::xcm::v3::multiasset::Fungibility, + } + #[derive(Clone, Debug)] + pub enum MultiAssetFilter { + Definite(my_types::xcm::v3::multiasset::MultiAssets), + Wild(my_types::xcm::v3::multiasset::WildMultiAsset), + } + #[derive(Clone, Debug)] + pub struct MultiAssets( + pub ::std::vec::Vec, + ); + #[derive(Clone, Debug)] + pub enum WildFungibility { + Fungible, + NonFungible, + } + #[derive(Clone, Debug)] + pub enum WildMultiAsset { + All, + AllOf { + id: my_types::xcm::v3::multiasset::AssetId, + fun: my_types::xcm::v3::multiasset::WildFungibility, + }, + AllCounted(::core::primitive::u32), + AllOfCounted { + id: my_types::xcm::v3::multiasset::AssetId, + fun: my_types::xcm::v3::multiasset::WildFungibility, + count: ::core::primitive::u32, + }, + } + } + pub mod multilocation { + use super::my_types; + #[derive(Clone, Debug)] + pub struct MultiLocation { + pub parents: ::core::primitive::u8, + pub interior: my_types::xcm::v3::junctions::Junctions, + } + } + pub mod traits { + use super::my_types; + #[derive(Clone, Debug)] + pub enum Error { + Overflow, + Unimplemented, + UntrustedReserveLocation, + UntrustedTeleportLocation, + LocationFull, + LocationNotInvertible, + BadOrigin, + InvalidLocation, + AssetNotFound, + FailedToTransactAsset, + NotWithdrawable, + LocationCannotHold, + ExceedsMaxMessageSize, + DestinationUnsupported, + Transport, + Unroutable, + UnknownClaim, + FailedToDecode, + MaxWeightInvalid, + NotHoldingFees, + TooExpensive, + Trap(::core::primitive::u64), + ExpectationFalse, + PalletNotFound, + NameMismatch, + VersionIncompatible, + HoldingWouldOverflow, + ExportError, + ReanchorFailed, + NoDeal, + FeesNotMet, + LockError, + NoPermission, + Unanchored, + NotDepositable, + UnhandledXcmVersion, + WeightLimitReached(my_types::sp_weights::weight_v2::Weight), + Barrier, + WeightNotComputable, + ExceedsStackLimit, + } + #[derive(Clone, Debug)] + pub enum Outcome { + Complete(my_types::sp_weights::weight_v2::Weight), + Incomplete( + my_types::sp_weights::weight_v2::Weight, + my_types::xcm::v3::traits::Error, + ), + Error(my_types::xcm::v3::traits::Error), + } + } + #[derive(Clone, Debug)] + pub enum Instruction { + WithdrawAsset(my_types::xcm::v3::multiasset::MultiAssets), + ReserveAssetDeposited(my_types::xcm::v3::multiasset::MultiAssets), + ReceiveTeleportedAsset(my_types::xcm::v3::multiasset::MultiAssets), + QueryResponse { + query_id: ::core::primitive::u64, + response: my_types::xcm::v3::Response, + max_weight: my_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + my_types::xcm::v3::multilocation::MultiLocation, + >, + }, + TransferAsset { + assets: my_types::xcm::v3::multiasset::MultiAssets, + beneficiary: my_types::xcm::v3::multilocation::MultiLocation, + }, + TransferReserveAsset { + assets: my_types::xcm::v3::multiasset::MultiAssets, + dest: my_types::xcm::v3::multilocation::MultiLocation, + xcm: my_types::xcm::v3::Xcm, + }, + Transact { + origin_kind: my_types::xcm::v2::OriginKind, + require_weight_at_most: my_types::sp_weights::weight_v2::Weight, + call: my_types::xcm::double_encoded::DoubleEncoded, + }, + HrmpNewChannelOpenRequest { + sender: ::core::primitive::u32, + max_message_size: ::core::primitive::u32, + max_capacity: ::core::primitive::u32, + }, + HrmpChannelAccepted { recipient: ::core::primitive::u32 }, + HrmpChannelClosing { + initiator: ::core::primitive::u32, + sender: ::core::primitive::u32, + recipient: ::core::primitive::u32, + }, + ClearOrigin, + DescendOrigin(my_types::xcm::v3::junctions::Junctions), + ReportError(my_types::xcm::v3::QueryResponseInfo), + DepositAsset { + assets: my_types::xcm::v3::multiasset::MultiAssetFilter, + beneficiary: my_types::xcm::v3::multilocation::MultiLocation, + }, + DepositReserveAsset { + assets: my_types::xcm::v3::multiasset::MultiAssetFilter, + dest: my_types::xcm::v3::multilocation::MultiLocation, + xcm: my_types::xcm::v3::Xcm, + }, + ExchangeAsset { + give: my_types::xcm::v3::multiasset::MultiAssetFilter, + want: my_types::xcm::v3::multiasset::MultiAssets, + maximal: ::core::primitive::bool, + }, + InitiateReserveWithdraw { + assets: my_types::xcm::v3::multiasset::MultiAssetFilter, + reserve: my_types::xcm::v3::multilocation::MultiLocation, + xcm: my_types::xcm::v3::Xcm, + }, + InitiateTeleport { + assets: my_types::xcm::v3::multiasset::MultiAssetFilter, + dest: my_types::xcm::v3::multilocation::MultiLocation, + xcm: my_types::xcm::v3::Xcm, + }, + ReportHolding { + response_info: my_types::xcm::v3::QueryResponseInfo, + assets: my_types::xcm::v3::multiasset::MultiAssetFilter, + }, + BuyExecution { + fees: my_types::xcm::v3::multiasset::MultiAsset, + weight_limit: my_types::xcm::v3::WeightLimit, + }, + RefundSurplus, + SetErrorHandler(my_types::xcm::v3::Xcm), + SetAppendix(my_types::xcm::v3::Xcm), + ClearError, + ClaimAsset { + assets: my_types::xcm::v3::multiasset::MultiAssets, + ticket: my_types::xcm::v3::multilocation::MultiLocation, + }, + Trap(::core::primitive::u64), + SubscribeVersion { + query_id: ::core::primitive::u64, + max_response_weight: my_types::sp_weights::weight_v2::Weight, + }, + UnsubscribeVersion, + BurnAsset(my_types::xcm::v3::multiasset::MultiAssets), + ExpectAsset(my_types::xcm::v3::multiasset::MultiAssets), + ExpectOrigin( + ::core::option::Option< + my_types::xcm::v3::multilocation::MultiLocation, + >, + ), + ExpectError( + ::core::option::Option< + (::core::primitive::u32, my_types::xcm::v3::traits::Error), + >, + ), + ExpectTransactStatus(my_types::xcm::v3::MaybeErrorCode), + QueryPallet { + module_name: ::std::vec::Vec<::core::primitive::u8>, + response_info: my_types::xcm::v3::QueryResponseInfo, + }, + ExpectPallet { + index: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + module_name: ::std::vec::Vec<::core::primitive::u8>, + crate_major: ::core::primitive::u32, + min_crate_minor: ::core::primitive::u32, + }, + ReportTransactStatus(my_types::xcm::v3::QueryResponseInfo), + ClearTransactStatus, + UniversalOrigin(my_types::xcm::v3::junction::Junction), + ExportMessage { + network: my_types::xcm::v3::junction::NetworkId, + destination: my_types::xcm::v3::junctions::Junctions, + xcm: my_types::xcm::v3::Xcm, + }, + LockAsset { + asset: my_types::xcm::v3::multiasset::MultiAsset, + unlocker: my_types::xcm::v3::multilocation::MultiLocation, + }, + UnlockAsset { + asset: my_types::xcm::v3::multiasset::MultiAsset, + target: my_types::xcm::v3::multilocation::MultiLocation, + }, + NoteUnlockable { + asset: my_types::xcm::v3::multiasset::MultiAsset, + owner: my_types::xcm::v3::multilocation::MultiLocation, + }, + RequestUnlock { + asset: my_types::xcm::v3::multiasset::MultiAsset, + locker: my_types::xcm::v3::multilocation::MultiLocation, + }, + SetFeesMode { jit_withdraw: ::core::primitive::bool }, + SetTopic([::core::primitive::u8; 32usize]), + ClearTopic, + AliasOrigin(my_types::xcm::v3::multilocation::MultiLocation), + UnpaidExecution { + weight_limit: my_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + my_types::xcm::v3::multilocation::MultiLocation, + >, + }, + } + #[derive(Clone, Debug)] + pub enum MaybeErrorCode { + Success, + Error( + my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + TruncatedError( + my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + } + #[derive(Clone, Debug)] + pub struct PalletInfo { + pub index: ::core::primitive::u32, + pub name: my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + pub module_name: my_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + pub major: ::core::primitive::u32, + pub minor: ::core::primitive::u32, + pub patch: ::core::primitive::u32, + } + #[derive(Clone, Debug)] + pub struct QueryResponseInfo { + pub destination: my_types::xcm::v3::multilocation::MultiLocation, + pub query_id: ::core::primitive::u64, + pub max_weight: my_types::sp_weights::weight_v2::Weight, + } + #[derive(Clone, Debug)] + pub enum Response { + Null, + Assets(my_types::xcm::v3::multiasset::MultiAssets), + ExecutionResult( + ::core::option::Option< + (::core::primitive::u32, my_types::xcm::v3::traits::Error), + >, + ), + Version(::core::primitive::u32), + PalletsInfo( + my_types::bounded_collections::bounded_vec::BoundedVec< + my_types::xcm::v3::PalletInfo, + >, + ), + DispatchResult(my_types::xcm::v3::MaybeErrorCode), + } + #[derive(Clone, Debug)] + pub enum WeightLimit { + Unlimited, + Limited(my_types::sp_weights::weight_v2::Weight), + } + #[derive(Clone, Debug)] + pub struct Xcm(pub ::std::vec::Vec); + } + #[derive(Clone, Debug)] + pub enum VersionedAssetId { + V3(my_types::xcm::v3::multiasset::AssetId), + } + #[derive(Clone, Debug)] + pub enum VersionedMultiAssets { + V2(my_types::xcm::v2::multiasset::MultiAssets), + V3(my_types::xcm::v3::multiasset::MultiAssets), + } + #[derive(Clone, Debug)] + pub enum VersionedMultiLocation { + V2(my_types::xcm::v2::multilocation::MultiLocation), + V3(my_types::xcm::v3::multilocation::MultiLocation), + } + #[derive(Clone, Debug)] + pub enum VersionedResponse { + V2(my_types::xcm::v2::Response), + V3(my_types::xcm::v3::Response), + } + #[derive(Clone, Debug)] + pub enum VersionedXcm { + V2(my_types::xcm::v2::Xcm), + V3(my_types::xcm::v3::Xcm), + } + } +} diff --git a/artifacts/polkadot.json b/artifacts/polkadot.json deleted file mode 100644 index 5edd6eb..0000000 --- a/artifacts/polkadot.json +++ /dev/null @@ -1,47956 +0,0 @@ -[ - 1635018093, - { - "V15": { - "types": { - "types": [ - { - "id": 0, - "type": { - "path": ["sp_core", "crypto", "AccountId32"], - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ] - } - } - } - }, - { - "id": 1, - "type": { - "def": { - "array": { - "len": 32, - "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": { - "path": ["frame_support", "dispatch", "PerDispatchClass"], - "params": [ - { - "name": "T", - "type": 9 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "normal", - "type": 9, - "typeName": "T" - }, - { - "name": "operational", - "type": 9, - "typeName": "T" - }, - { - "name": "mandatory", - "type": 9, - "typeName": "T" - } - ] - } - } - } - }, - { - "id": 9, - "type": { - "path": ["sp_weights", "weight_v2", "Weight"], - "def": { - "composite": { - "fields": [ - { - "name": "ref_time", - "type": 10, - "typeName": "u64" - }, - { - "name": "proof_size", - "type": 10, - "typeName": "u64" - } - ] - } - } - } - }, - { - "id": 10, - "type": { - "def": { - "compact": { - "type": 11 - } - } - } - }, - { - "id": 11, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 12, - "type": { - "path": ["primitive_types", "H256"], - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ] - } - } - } - }, - { - "id": 13, - "type": { - "def": { - "sequence": { - "type": 2 - } - } - } - }, - { - "id": 14, - "type": { - "path": ["sp_runtime", "generic", "digest", "Digest"], - "def": { - "composite": { - "fields": [ - { - "name": "logs", - "type": 15, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 15, - "type": { - "def": { - "sequence": { - "type": 16 - } - } - } - }, - { - "id": 16, - "type": { - "path": ["sp_runtime", "generic", "digest", "DigestItem"], - "def": { - "variant": { - "variants": [ - { - "name": "PreRuntime", - "fields": [ - { - "type": 17, - "typeName": "ConsensusEngineId" - }, - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 6 - }, - { - "name": "Consensus", - "fields": [ - { - "type": 17, - "typeName": "ConsensusEngineId" - }, - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 4 - }, - { - "name": "Seal", - "fields": [ - { - "type": 17, - "typeName": "ConsensusEngineId" - }, - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 5 - }, - { - "name": "Other", - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 0 - }, - { - "name": "RuntimeEnvironmentUpdated", - "index": 8 - } - ] - } - } - } - }, - { - "id": 17, - "type": { - "def": { - "array": { - "len": 4, - "type": 2 - } - } - } - }, - { - "id": 18, - "type": { - "def": { - "sequence": { - "type": 19 - } - } - } - }, - { - "id": 19, - "type": { - "path": ["frame_system", "EventRecord"], - "params": [ - { - "name": "E", - "type": 20 - }, - { - "name": "T", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "phase", - "type": 177, - "typeName": "Phase" - }, - { - "name": "event", - "type": 20, - "typeName": "E" - }, - { - "name": "topics", - "type": 178, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 20, - "type": { - "path": ["rococo_runtime", "RuntimeEvent"], - "def": { - "variant": { - "variants": [ - { - "name": "System", - "fields": [ - { - "type": 21, - "typeName": "frame_system::Event" - } - ], - "index": 0 - }, - { - "name": "Indices", - "fields": [ - { - "type": 30, - "typeName": "pallet_indices::Event" - } - ], - "index": 3 - }, - { - "name": "Balances", - "fields": [ - { - "type": 31, - "typeName": "pallet_balances::Event" - } - ], - "index": 4 - }, - { - "name": "TransactionPayment", - "fields": [ - { - "type": 33, - "typeName": "pallet_transaction_payment::Event" - } - ], - "index": 33 - }, - { - "name": "Offences", - "fields": [ - { - "type": 34, - "typeName": "pallet_offences::Event" - } - ], - "index": 7 - }, - { - "name": "Session", - "fields": [ - { - "type": 36, - "typeName": "pallet_session::Event" - } - ], - "index": 8 - }, - { - "name": "Grandpa", - "fields": [ - { - "type": 37, - "typeName": "pallet_grandpa::Event" - } - ], - "index": 10 - }, - { - "name": "ImOnline", - "fields": [ - { - "type": 42, - "typeName": "pallet_im_online::Event" - } - ], - "index": 11 - }, - { - "name": "Democracy", - "fields": [ - { - "type": 48, - "typeName": "pallet_democracy::Event" - } - ], - "index": 13 - }, - { - "name": "Council", - "fields": [ - { - "type": 53, - "typeName": "pallet_collective::Event" - } - ], - "index": 14 - }, - { - "name": "TechnicalCommittee", - "fields": [ - { - "type": 56, - "typeName": "pallet_collective::Event" - } - ], - "index": 15 - }, - { - "name": "PhragmenElection", - "fields": [ - { - "type": 57, - "typeName": "pallet_elections_phragmen::Event" - } - ], - "index": 16 - }, - { - "name": "TechnicalMembership", - "fields": [ - { - "type": 60, - "typeName": "pallet_membership::Event" - } - ], - "index": 17 - }, - { - "name": "Treasury", - "fields": [ - { - "type": 61, - "typeName": "pallet_treasury::Event" - } - ], - "index": 18 - }, - { - "name": "Claims", - "fields": [ - { - "type": 62, - "typeName": "claims::Event" - } - ], - "index": 19 - }, - { - "name": "Utility", - "fields": [ - { - "type": 65, - "typeName": "pallet_utility::Event" - } - ], - "index": 24 - }, - { - "name": "Identity", - "fields": [ - { - "type": 66, - "typeName": "pallet_identity::Event" - } - ], - "index": 25 - }, - { - "name": "Society", - "fields": [ - { - "type": 67, - "typeName": "pallet_society::Event" - } - ], - "index": 26 - }, - { - "name": "Recovery", - "fields": [ - { - "type": 70, - "typeName": "pallet_recovery::Event" - } - ], - "index": 27 - }, - { - "name": "Vesting", - "fields": [ - { - "type": 71, - "typeName": "pallet_vesting::Event" - } - ], - "index": 28 - }, - { - "name": "Scheduler", - "fields": [ - { - "type": 72, - "typeName": "pallet_scheduler::Event" - } - ], - "index": 29 - }, - { - "name": "Proxy", - "fields": [ - { - "type": 75, - "typeName": "pallet_proxy::Event" - } - ], - "index": 30 - }, - { - "name": "Multisig", - "fields": [ - { - "type": 78, - "typeName": "pallet_multisig::Event" - } - ], - "index": 31 - }, - { - "name": "Preimage", - "fields": [ - { - "type": 80, - "typeName": "pallet_preimage::Event" - } - ], - "index": 32 - }, - { - "name": "Bounties", - "fields": [ - { - "type": 81, - "typeName": "pallet_bounties::Event" - } - ], - "index": 35 - }, - { - "name": "ChildBounties", - "fields": [ - { - "type": 82, - "typeName": "pallet_child_bounties::Event" - } - ], - "index": 40 - }, - { - "name": "Tips", - "fields": [ - { - "type": 83, - "typeName": "pallet_tips::Event" - } - ], - "index": 36 - }, - { - "name": "Nis", - "fields": [ - { - "type": 84, - "typeName": "pallet_nis::Event" - } - ], - "index": 38 - }, - { - "name": "NisCounterpartBalances", - "fields": [ - { - "type": 86, - "typeName": "pallet_balances::Event" - } - ], - "index": 45 - }, - { - "name": "ParaInclusion", - "fields": [ - { - "type": 87, - "typeName": "parachains_inclusion::Event" - } - ], - "index": 53 - }, - { - "name": "Paras", - "fields": [ - { - "type": 99, - "typeName": "parachains_paras::Event" - } - ], - "index": 56 - }, - { - "name": "Hrmp", - "fields": [ - { - "type": 100, - "typeName": "parachains_hrmp::Event" - } - ], - "index": 60 - }, - { - "name": "ParasDisputes", - "fields": [ - { - "type": 102, - "typeName": "parachains_disputes::Event" - } - ], - "index": 62 - }, - { - "name": "MessageQueue", - "fields": [ - { - "type": 106, - "typeName": "pallet_message_queue::Event" - } - ], - "index": 64 - }, - { - "name": "OnDemandAssignmentProvider", - "fields": [ - { - "type": 110, - "typeName": "parachains_assigner_on_demand::Event" - } - ], - "index": 66 - }, - { - "name": "Registrar", - "fields": [ - { - "type": 112, - "typeName": "paras_registrar::Event" - } - ], - "index": 70 - }, - { - "name": "Slots", - "fields": [ - { - "type": 113, - "typeName": "slots::Event" - } - ], - "index": 71 - }, - { - "name": "Auctions", - "fields": [ - { - "type": 114, - "typeName": "auctions::Event" - } - ], - "index": 72 - }, - { - "name": "Crowdloan", - "fields": [ - { - "type": 115, - "typeName": "crowdloan::Event" - } - ], - "index": 73 - }, - { - "name": "XcmPallet", - "fields": [ - { - "type": 116, - "typeName": "pallet_xcm::Event" - } - ], - "index": 99 - }, - { - "name": "AssignedSlots", - "fields": [ - { - "type": 170, - "typeName": "assigned_slots::Event" - } - ], - "index": 251 - }, - { - "name": "ValidatorManager", - "fields": [ - { - "type": 171, - "typeName": "validator_manager::Event" - } - ], - "index": 252 - }, - { - "name": "StateTrieMigration", - "fields": [ - { - "type": 172, - "typeName": "pallet_state_trie_migration::Event" - } - ], - "index": 254 - }, - { - "name": "Sudo", - "fields": [ - { - "type": 175, - "typeName": "pallet_sudo::Event" - } - ], - "index": 255 - } - ] - } - } - } - }, - { - "id": 21, - "type": { - "path": ["frame_system", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ExtrinsicSuccess", - "fields": [ - { - "name": "dispatch_info", - "type": 22, - "typeName": "DispatchInfo" - } - ], - "index": 0, - "docs": ["An extrinsic completed successfully."] - }, - { - "name": "ExtrinsicFailed", - "fields": [ - { - "name": "dispatch_error", - "type": 25, - "typeName": "DispatchError" - }, - { - "name": "dispatch_info", - "type": 22, - "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": 12, - "typeName": "T::Hash" - } - ], - "index": 5, - "docs": ["On on-chain remark happened."] - } - ] - } - }, - "docs": ["Event for the System pallet."] - } - }, - { - "id": 22, - "type": { - "path": ["frame_support", "dispatch", "DispatchInfo"], - "def": { - "composite": { - "fields": [ - { - "name": "weight", - "type": 9, - "typeName": "Weight" - }, - { - "name": "class", - "type": 23, - "typeName": "DispatchClass" - }, - { - "name": "pays_fee", - "type": 24, - "typeName": "Pays" - } - ] - } - } - } - }, - { - "id": 23, - "type": { - "path": ["frame_support", "dispatch", "DispatchClass"], - "def": { - "variant": { - "variants": [ - { - "name": "Normal", - "index": 0 - }, - { - "name": "Operational", - "index": 1 - }, - { - "name": "Mandatory", - "index": 2 - } - ] - } - } - } - }, - { - "id": 24, - "type": { - "path": ["frame_support", "dispatch", "Pays"], - "def": { - "variant": { - "variants": [ - { - "name": "Yes", - "index": 0 - }, - { - "name": "No", - "index": 1 - } - ] - } - } - } - }, - { - "id": 25, - "type": { - "path": ["sp_runtime", "DispatchError"], - "def": { - "variant": { - "variants": [ - { - "name": "Other", - "index": 0 - }, - { - "name": "CannotLookup", - "index": 1 - }, - { - "name": "BadOrigin", - "index": 2 - }, - { - "name": "Module", - "fields": [ - { - "type": 26, - "typeName": "ModuleError" - } - ], - "index": 3 - }, - { - "name": "ConsumerRemaining", - "index": 4 - }, - { - "name": "NoProviders", - "index": 5 - }, - { - "name": "TooManyConsumers", - "index": 6 - }, - { - "name": "Token", - "fields": [ - { - "type": 27, - "typeName": "TokenError" - } - ], - "index": 7 - }, - { - "name": "Arithmetic", - "fields": [ - { - "type": 28, - "typeName": "ArithmeticError" - } - ], - "index": 8 - }, - { - "name": "Transactional", - "fields": [ - { - "type": 29, - "typeName": "TransactionalError" - } - ], - "index": 9 - }, - { - "name": "Exhausted", - "index": 10 - }, - { - "name": "Corruption", - "index": 11 - }, - { - "name": "Unavailable", - "index": 12 - }, - { - "name": "RootNotAllowed", - "index": 13 - } - ] - } - } - } - }, - { - "id": 26, - "type": { - "path": ["sp_runtime", "ModuleError"], - "def": { - "composite": { - "fields": [ - { - "name": "index", - "type": 2, - "typeName": "u8" - }, - { - "name": "error", - "type": 17, - "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]" - } - ] - } - } - } - }, - { - "id": 27, - "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": 28, - "type": { - "path": ["sp_arithmetic", "ArithmeticError"], - "def": { - "variant": { - "variants": [ - { - "name": "Underflow", - "index": 0 - }, - { - "name": "Overflow", - "index": 1 - }, - { - "name": "DivisionByZero", - "index": 2 - } - ] - } - } - } - }, - { - "id": 29, - "type": { - "path": ["sp_runtime", "TransactionalError"], - "def": { - "variant": { - "variants": [ - { - "name": "LimitReached", - "index": 0 - }, - { - "name": "NoLayer", - "index": 1 - } - ] - } - } - } - }, - { - "id": 30, - "type": { - "path": ["pallet_indices", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "IndexAssigned", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 0, - "docs": ["A account index was assigned."] - }, - { - "name": "IndexFreed", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 1, - "docs": [ - "A account index has been freed up (unassigned)." - ] - }, - { - "name": "IndexFrozen", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - }, - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 2, - "docs": [ - "A account index has been frozen to its current account ID." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 31, - "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": 32, - "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."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 32, - "type": { - "path": [ - "frame_support", - "traits", - "tokens", - "misc", - "BalanceStatus" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Free", - "index": 0 - }, - { - "name": "Reserved", - "index": 1 - } - ] - } - } - } - }, - { - "id": 33, - "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": 34, - "type": { - "path": ["pallet_offences", "pallet", "Event"], - "def": { - "variant": { - "variants": [ - { - "name": "Offence", - "fields": [ - { - "name": "kind", - "type": 35, - "typeName": "Kind" - }, - { - "name": "timeslot", - "type": 13, - "typeName": "OpaqueTimeSlot" - } - ], - "index": 0, - "docs": [ - "There is an offence reported of the given `kind` happened at the `session_index` and", - "(kind-specific) time slot. This event is not deposited for duplicate slashes.", - "\\[kind, timeslot\\]." - ] - } - ] - } - }, - "docs": ["Events type."] - } - }, - { - "id": 35, - "type": { - "def": { - "array": { - "len": 16, - "type": 2 - } - } - } - }, - { - "id": 36, - "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": 37, - "type": { - "path": ["pallet_grandpa", "pallet", "Event"], - "def": { - "variant": { - "variants": [ - { - "name": "NewAuthorities", - "fields": [ - { - "name": "authority_set", - "type": 38, - "typeName": "AuthorityList" - } - ], - "index": 0, - "docs": ["New authority set has been applied."] - }, - { - "name": "Paused", - "index": 1, - "docs": ["Current authority set has been paused."] - }, - { - "name": "Resumed", - "index": 2, - "docs": ["Current authority set has been resumed."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 38, - "type": { - "def": { - "sequence": { - "type": 39 - } - } - } - }, - { - "id": 39, - "type": { - "def": { - "tuple": [40, 11] - } - } - }, - { - "id": 40, - "type": { - "path": ["sp_consensus_grandpa", "app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 41, - "typeName": "ed25519::Public" - } - ] - } - } - } - }, - { - "id": 41, - "type": { - "path": ["sp_core", "ed25519", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ] - } - } - } - }, - { - "id": 42, - "type": { - "path": ["pallet_im_online", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "HeartbeatReceived", - "fields": [ - { - "name": "authority_id", - "type": 43, - "typeName": "T::AuthorityId" - } - ], - "index": 0, - "docs": [ - "A new heartbeat was received from `AuthorityId`." - ] - }, - { - "name": "AllGood", - "index": 1, - "docs": [ - "At the end of the session, no offence was committed." - ] - }, - { - "name": "SomeOffline", - "fields": [ - { - "name": "offline", - "type": 45, - "typeName": "Vec>" - } - ], - "index": 2, - "docs": [ - "At the end of the session, at least one validator was found to be offline." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 43, - "type": { - "path": ["pallet_im_online", "sr25519", "app_sr25519", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 44, - "type": { - "path": ["sp_core", "sr25519", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ] - } - } - } - }, - { - "id": 45, - "type": { - "def": { - "sequence": { - "type": 46 - } - } - } - }, - { - "id": 46, - "type": { - "def": { - "tuple": [0, 47] - } - } - }, - { - "id": 47, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 48, - "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": 49, - "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": 12, - "typeName": "H256" - }, - { - "name": "until", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 9, - "docs": ["An external proposal has been vetoed."] - }, - { - "name": "Blacklisted", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "H256" - } - ], - "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": 50, - "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 secconded 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": 52, - "typeName": "MetadataOwner", - "docs": ["Metadata owner."] - }, - { - "name": "hash", - "type": 12, - "typeName": "PreimageHash", - "docs": ["Preimage hash."] - } - ], - "index": 14, - "docs": [ - "Metadata for a proposal or a referendum has been set." - ] - }, - { - "name": "MetadataCleared", - "fields": [ - { - "name": "owner", - "type": 52, - "typeName": "MetadataOwner", - "docs": ["Metadata owner."] - }, - { - "name": "hash", - "type": 12, - "typeName": "PreimageHash", - "docs": ["Preimage hash."] - } - ], - "index": 15, - "docs": [ - "Metadata for a proposal or a referendum has been cleared." - ] - }, - { - "name": "MetadataTransferred", - "fields": [ - { - "name": "prev_owner", - "type": 52, - "typeName": "MetadataOwner", - "docs": ["Previous metadata owner."] - }, - { - "name": "owner", - "type": 52, - "typeName": "MetadataOwner", - "docs": ["New metadata owner."] - }, - { - "name": "hash", - "type": 12, - "typeName": "PreimageHash", - "docs": ["Preimage hash."] - } - ], - "index": 16, - "docs": ["Metadata has been transferred to new owner."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 49, - "type": { - "path": ["pallet_democracy", "vote_threshold", "VoteThreshold"], - "def": { - "variant": { - "variants": [ - { - "name": "SuperMajorityApprove", - "index": 0 - }, - { - "name": "SuperMajorityAgainst", - "index": 1 - }, - { - "name": "SimpleMajority", - "index": 2 - } - ] - } - } - } - }, - { - "id": 50, - "type": { - "path": ["pallet_democracy", "vote", "AccountVote"], - "params": [ - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Standard", - "fields": [ - { - "name": "vote", - "type": 51, - "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": 51, - "type": { - "path": ["pallet_democracy", "vote", "Vote"], - "def": { - "composite": { - "fields": [ - { - "type": 2 - } - ] - } - } - } - }, - { - "id": 52, - "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": 53, - "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": 12, - "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": 12, - "typeName": "T::Hash" - }, - { - "name": "voted", - "type": 54, - "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": 12, - "typeName": "T::Hash" - } - ], - "index": 2, - "docs": [ - "A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 3, - "docs": [ - "A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "result", - "type": 55, - "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": 12, - "typeName": "T::Hash" - }, - { - "name": "result", - "type": 55, - "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": 12, - "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": 54, - "type": { - "def": { - "primitive": "bool" - } - } - }, - { - "id": 55, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 47 - }, - { - "name": "E", - "type": 25 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 47 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 25 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 56, - "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": 12, - "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": 12, - "typeName": "T::Hash" - }, - { - "name": "voted", - "type": 54, - "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": 12, - "typeName": "T::Hash" - } - ], - "index": 2, - "docs": [ - "A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 3, - "docs": [ - "A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "result", - "type": 55, - "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": 12, - "typeName": "T::Hash" - }, - { - "name": "result", - "type": 55, - "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": 12, - "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": 57, - "type": { - "path": ["pallet_elections_phragmen", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NewTerm", - "fields": [ - { - "name": "new_members", - "type": 58, - "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": 58, - "type": { - "def": { - "sequence": { - "type": 59 - } - } - } - }, - { - "id": 59, - "type": { - "def": { - "tuple": [0, 6] - } - } - }, - { - "id": 60, - "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": 61, - "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." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 62, - "type": { - "path": ["polkadot_runtime_common", "claims", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Claimed", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "ethereum_address", - "type": 63, - "typeName": "EthereumAddress" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 0, - "docs": ["Someone claimed some DOTs."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 63, - "type": { - "path": ["polkadot_runtime_common", "claims", "EthereumAddress"], - "def": { - "composite": { - "fields": [ - { - "type": 64, - "typeName": "[u8; 20]" - } - ] - } - } - } - }, - { - "id": 64, - "type": { - "def": { - "array": { - "len": 20, - "type": 2 - } - } - } - }, - { - "id": 65, - "type": { - "path": ["pallet_utility", "pallet", "Event"], - "def": { - "variant": { - "variants": [ - { - "name": "BatchInterrupted", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "u32" - }, - { - "name": "error", - "type": 25, - "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": 25, - "typeName": "DispatchError" - } - ], - "index": 4, - "docs": [ - "A single item within a Batch of dispatches has completed with error." - ] - }, - { - "name": "DispatchedAs", - "fields": [ - { - "name": "result", - "type": 55, - "typeName": "DispatchResult" - } - ], - "index": 5, - "docs": ["A call was dispatched."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 66, - "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." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 67, - "type": { - "path": ["pallet_society", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Founded", - "fields": [ - { - "name": "founder", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 0, - "docs": ["The society is founded by the given identity."] - }, - { - "name": "Bid", - "fields": [ - { - "name": "candidate_id", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "offer", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": [ - "A membership bid just happened. The given account is the candidate's ID and their offer", - "is the second." - ] - }, - { - "name": "Vouch", - "fields": [ - { - "name": "candidate_id", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "offer", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "vouching", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 2, - "docs": [ - "A membership bid just happened by vouching. The given account is the candidate's ID and", - "their offer is the second. The vouching party is the third." - ] - }, - { - "name": "AutoUnbid", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 3, - "docs": [ - "A candidate was dropped (due to an excess of bids in the system)." - ] - }, - { - "name": "Unbid", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 4, - "docs": ["A candidate was dropped (by their request)."] - }, - { - "name": "Unvouch", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 5, - "docs": [ - "A candidate was dropped (by request of who vouched for them)." - ] - }, - { - "name": "Inducted", - "fields": [ - { - "name": "primary", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "candidates", - "type": 68, - "typeName": "Vec" - } - ], - "index": 6, - "docs": [ - "A group of candidates have been inducted. The batch's primary is the first value, the", - "batch in full is the second." - ] - }, - { - "name": "SuspendedMemberJudgement", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "judged", - "type": 54, - "typeName": "bool" - } - ], - "index": 7, - "docs": ["A suspended member has been judged."] - }, - { - "name": "CandidateSuspended", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 8, - "docs": ["A candidate has been suspended"] - }, - { - "name": "MemberSuspended", - "fields": [ - { - "name": "member", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 9, - "docs": ["A member has been suspended"] - }, - { - "name": "Challenged", - "fields": [ - { - "name": "member", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 10, - "docs": ["A member has been challenged"] - }, - { - "name": "Vote", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "voter", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "vote", - "type": 54, - "typeName": "bool" - } - ], - "index": 11, - "docs": ["A vote has been placed"] - }, - { - "name": "DefenderVote", - "fields": [ - { - "name": "voter", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "vote", - "type": 54, - "typeName": "bool" - } - ], - "index": 12, - "docs": ["A vote has been placed for a defending member"] - }, - { - "name": "NewParams", - "fields": [ - { - "name": "params", - "type": 69, - "typeName": "GroupParamsFor" - } - ], - "index": 13, - "docs": [ - "A new set of \\[params\\] has been set for the group." - ] - }, - { - "name": "Unfounded", - "fields": [ - { - "name": "founder", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 14, - "docs": ["Society is unfounded."] - }, - { - "name": "Deposit", - "fields": [ - { - "name": "value", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 15, - "docs": [ - "Some funds were deposited into the society account." - ] - }, - { - "name": "Elevated", - "fields": [ - { - "name": "member", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "rank", - "type": 4, - "typeName": "Rank" - } - ], - "index": 16, - "docs": ["A \\[member\\] got elevated to \\[rank\\]."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 68, - "type": { - "def": { - "sequence": { - "type": 0 - } - } - } - }, - { - "id": 69, - "type": { - "path": ["pallet_society", "GroupParams"], - "params": [ - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "max_members", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_intake", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_strikes", - "type": 4, - "typeName": "u32" - }, - { - "name": "candidate_deposit", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 70, - "type": { - "path": ["pallet_recovery", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "RecoveryCreated", - "fields": [ - { - "name": "account", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 0, - "docs": [ - "A recovery process has been set up for an account." - ] - }, - { - "name": "RecoveryInitiated", - "fields": [ - { - "name": "lost_account", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "rescuer_account", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 1, - "docs": [ - "A recovery process has been initiated for lost account by rescuer account." - ] - }, - { - "name": "RecoveryVouched", - "fields": [ - { - "name": "lost_account", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "rescuer_account", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "sender", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 2, - "docs": [ - "A recovery process for lost account by rescuer account has been vouched for by sender." - ] - }, - { - "name": "RecoveryClosed", - "fields": [ - { - "name": "lost_account", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "rescuer_account", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 3, - "docs": [ - "A recovery process for lost account by rescuer account has been closed." - ] - }, - { - "name": "AccountRecovered", - "fields": [ - { - "name": "lost_account", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "rescuer_account", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 4, - "docs": [ - "Lost account has been successfully recovered by rescuer account." - ] - }, - { - "name": "RecoveryRemoved", - "fields": [ - { - "name": "lost_account", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 5, - "docs": [ - "A recovery process has been removed for an account." - ] - } - ] - } - }, - "docs": ["Events type."] - } - }, - { - "id": 71, - "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": 72, - "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": 73, - "typeName": "TaskAddress>" - }, - { - "name": "id", - "type": 74, - "typeName": "Option" - }, - { - "name": "result", - "type": 55, - "typeName": "DispatchResult" - } - ], - "index": 2, - "docs": ["Dispatched some task."] - }, - { - "name": "CallUnavailable", - "fields": [ - { - "name": "task", - "type": 73, - "typeName": "TaskAddress>" - }, - { - "name": "id", - "type": 74, - "typeName": "Option" - } - ], - "index": 3, - "docs": [ - "The call for the provided hash was not found so the task has been aborted." - ] - }, - { - "name": "PeriodicFailed", - "fields": [ - { - "name": "task", - "type": 73, - "typeName": "TaskAddress>" - }, - { - "name": "id", - "type": 74, - "typeName": "Option" - } - ], - "index": 4, - "docs": [ - "The given task was unable to be renewed since the agenda is full at that block." - ] - }, - { - "name": "PermanentlyOverweight", - "fields": [ - { - "name": "task", - "type": 73, - "typeName": "TaskAddress>" - }, - { - "name": "id", - "type": 74, - "typeName": "Option" - } - ], - "index": 5, - "docs": [ - "The given task can never be executed since it is overweight." - ] - } - ] - } - }, - "docs": ["Events type."] - } - }, - { - "id": 73, - "type": { - "def": { - "tuple": [4, 4] - } - } - }, - { - "id": 74, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 1 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 1 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 75, - "type": { - "path": ["pallet_proxy", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ProxyExecuted", - "fields": [ - { - "name": "result", - "type": 55, - "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": 76, - "typeName": "T::ProxyType" - }, - { - "name": "disambiguation_index", - "type": 77, - "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": 12, - "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": 76, - "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": 76, - "typeName": "T::ProxyType" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 4, - "docs": ["A proxy was removed."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 76, - "type": { - "path": ["rococo_runtime", "ProxyType"], - "def": { - "variant": { - "variants": [ - { - "name": "Any", - "index": 0 - }, - { - "name": "NonTransfer", - "index": 1 - }, - { - "name": "Governance", - "index": 2 - }, - { - "name": "IdentityJudgement", - "index": 3 - }, - { - "name": "CancelProxy", - "index": 4 - }, - { - "name": "Auction", - "index": 5 - }, - { - "name": "Society", - "index": 6 - }, - { - "name": "OnDemandOrdering", - "index": 7 - } - ] - } - } - } - }, - { - "id": 77, - "type": { - "def": { - "primitive": "u16" - } - } - }, - { - "id": 78, - "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": 1, - "typeName": "CallHash" - } - ], - "index": 0, - "docs": ["A new multisig operation has begun."] - }, - { - "name": "MultisigApproval", - "fields": [ - { - "name": "approving", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "timepoint", - "type": 79, - "typeName": "Timepoint>" - }, - { - "name": "multisig", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "call_hash", - "type": 1, - "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": 79, - "typeName": "Timepoint>" - }, - { - "name": "multisig", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "call_hash", - "type": 1, - "typeName": "CallHash" - }, - { - "name": "result", - "type": 55, - "typeName": "DispatchResult" - } - ], - "index": 2, - "docs": ["A multisig operation has been executed."] - }, - { - "name": "MultisigCancelled", - "fields": [ - { - "name": "cancelling", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "timepoint", - "type": 79, - "typeName": "Timepoint>" - }, - { - "name": "multisig", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "call_hash", - "type": 1, - "typeName": "CallHash" - } - ], - "index": 3, - "docs": ["A multisig operation has been cancelled."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 79, - "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": 80, - "type": { - "path": ["pallet_preimage", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Noted", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 0, - "docs": ["A preimage has been noted."] - }, - { - "name": "Requested", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 1, - "docs": ["A preimage has been requested."] - }, - { - "name": "Cleared", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 2, - "docs": ["A preimage has ben cleared."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 81, - "type": { - "path": ["pallet_bounties", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "BountyProposed", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 0, - "docs": ["New bounty proposal."] - }, - { - "name": "BountyRejected", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "bond", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": [ - "A bounty proposal was rejected; funds were slashed." - ] - }, - { - "name": "BountyBecameActive", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 2, - "docs": ["A bounty proposal is funded and became active."] - }, - { - "name": "BountyAwarded", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 3, - "docs": ["A bounty is awarded to a beneficiary."] - }, - { - "name": "BountyClaimed", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "payout", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 4, - "docs": ["A bounty is claimed by beneficiary."] - }, - { - "name": "BountyCanceled", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 5, - "docs": ["A bounty is cancelled."] - }, - { - "name": "BountyExtended", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 6, - "docs": ["A bounty expiry is extended."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 82, - "type": { - "path": ["pallet_child_bounties", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Added", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "child_index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 0, - "docs": ["A child-bounty is added."] - }, - { - "name": "Awarded", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "child_index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 1, - "docs": ["A child-bounty is awarded to a beneficiary."] - }, - { - "name": "Claimed", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "child_index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "payout", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 2, - "docs": ["A child-bounty is claimed by beneficiary."] - }, - { - "name": "Canceled", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "child_index", - "type": 4, - "typeName": "BountyIndex" - } - ], - "index": 3, - "docs": ["A child-bounty is cancelled."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 83, - "type": { - "path": ["pallet_tips", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NewTip", - "fields": [ - { - "name": "tip_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 0, - "docs": ["A new tip suggestion has been opened."] - }, - { - "name": "TipClosing", - "fields": [ - { - "name": "tip_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 1, - "docs": [ - "A tip suggestion has reached threshold and is closing." - ] - }, - { - "name": "TipClosed", - "fields": [ - { - "name": "tip_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "payout", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": ["A tip suggestion has been closed."] - }, - { - "name": "TipRetracted", - "fields": [ - { - "name": "tip_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 3, - "docs": ["A tip suggestion has been retracted."] - }, - { - "name": "TipSlashed", - "fields": [ - { - "name": "tip_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "finder", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "deposit", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 4, - "docs": ["A tip suggestion has been slashed."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 84, - "type": { - "path": ["pallet_nis", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "BidPlaced", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "duration", - "type": 4, - "typeName": "u32" - } - ], - "index": 0, - "docs": ["A bid was successfully placed."] - }, - { - "name": "BidRetracted", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "duration", - "type": 4, - "typeName": "u32" - } - ], - "index": 1, - "docs": [ - "A bid was successfully removed (before being accepted)." - ] - }, - { - "name": "BidDropped", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "duration", - "type": 4, - "typeName": "u32" - } - ], - "index": 2, - "docs": [ - "A bid was dropped from a queue because of another, more substantial, bid was present." - ] - }, - { - "name": "Issued", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "ReceiptIndex", - "docs": ["The identity of the receipt."] - }, - { - "name": "expiry", - "type": 4, - "typeName": "BlockNumberFor", - "docs": [ - "The block number at which the receipt may be thawed." - ] - }, - { - "name": "who", - "type": 0, - "typeName": "T::AccountId", - "docs": ["The owner of the receipt."] - }, - { - "name": "proportion", - "type": 85, - "typeName": "Perquintill", - "docs": [ - "The proportion of the effective total issuance which the receipt represents." - ] - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf", - "docs": [ - "The amount of funds which were debited from the owner." - ] - } - ], - "index": 3, - "docs": [ - "A bid was accepted. The balance may not be released until expiry." - ] - }, - { - "name": "Thawed", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "ReceiptIndex", - "docs": ["The identity of the receipt."] - }, - { - "name": "who", - "type": 0, - "typeName": "T::AccountId", - "docs": ["The owner."] - }, - { - "name": "proportion", - "type": 85, - "typeName": "Perquintill", - "docs": [ - "The proportion of the effective total issuance by which the owner was debited." - ] - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf", - "docs": [ - "The amount by which the owner was credited." - ] - }, - { - "name": "dropped", - "type": 54, - "typeName": "bool", - "docs": ["If `true` then the receipt is done."] - } - ], - "index": 4, - "docs": [ - "An receipt has been (at least partially) thawed." - ] - }, - { - "name": "Funded", - "fields": [ - { - "name": "deficit", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 5, - "docs": ["An automatic funding of the deficit was made."] - }, - { - "name": "Transferred", - "fields": [ - { - "name": "from", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "to", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "index", - "type": 4, - "typeName": "ReceiptIndex" - } - ], - "index": 6, - "docs": ["A receipt was transfered."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 85, - "type": { - "path": ["sp_arithmetic", "per_things", "Perquintill"], - "def": { - "composite": { - "fields": [ - { - "type": 11, - "typeName": "u64" - } - ] - } - } - } - }, - { - "id": 86, - "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": 32, - "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."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 87, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "CandidateBacked", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - }, - { - "type": 98, - "typeName": "GroupIndex" - } - ], - "index": 0, - "docs": [ - "A candidate was backed. `[candidate, head_data]`" - ] - }, - { - "name": "CandidateIncluded", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - }, - { - "type": 98, - "typeName": "GroupIndex" - } - ], - "index": 1, - "docs": [ - "A candidate was included. `[candidate, head_data]`" - ] - }, - { - "name": "CandidateTimedOut", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - } - ], - "index": 2, - "docs": [ - "A candidate timed out. `[candidate, head_data]`" - ] - }, - { - "name": "UpwardMessagesReceived", - "fields": [ - { - "name": "from", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "count", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": [ - "Some upward messages have been received and will be processed." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 88, - "type": { - "path": ["polkadot_primitives", "v5", "CandidateReceipt"], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "descriptor", - "type": 89, - "typeName": "CandidateDescriptor" - }, - { - "name": "commitments_hash", - "type": 12, - "typeName": "Hash" - } - ] - } - } - } - }, - { - "id": 89, - "type": { - "path": ["polkadot_primitives", "v5", "CandidateDescriptor"], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "Id" - }, - { - "name": "relay_parent", - "type": 12, - "typeName": "H" - }, - { - "name": "collator", - "type": 91, - "typeName": "CollatorId" - }, - { - "name": "persisted_validation_data_hash", - "type": 12, - "typeName": "Hash" - }, - { - "name": "pov_hash", - "type": 12, - "typeName": "Hash" - }, - { - "name": "erasure_root", - "type": 12, - "typeName": "Hash" - }, - { - "name": "signature", - "type": 92, - "typeName": "CollatorSignature" - }, - { - "name": "para_head", - "type": 12, - "typeName": "Hash" - }, - { - "name": "validation_code_hash", - "type": 95, - "typeName": "ValidationCodeHash" - } - ] - } - } - } - }, - { - "id": 90, - "type": { - "path": ["polkadot_parachain_primitives", "primitives", "Id"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 91, - "type": { - "path": ["polkadot_primitives", "v5", "collator_app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 92, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "collator_app", - "Signature" - ], - "def": { - "composite": { - "fields": [ - { - "type": 93, - "typeName": "sr25519::Signature" - } - ] - } - } - } - }, - { - "id": 93, - "type": { - "path": ["sp_core", "sr25519", "Signature"], - "def": { - "composite": { - "fields": [ - { - "type": 94, - "typeName": "[u8; 64]" - } - ] - } - } - } - }, - { - "id": 94, - "type": { - "def": { - "array": { - "len": 64, - "type": 2 - } - } - } - }, - { - "id": 95, - "type": { - "path": [ - "polkadot_parachain_primitives", - "primitives", - "ValidationCodeHash" - ], - "def": { - "composite": { - "fields": [ - { - "type": 12, - "typeName": "Hash" - } - ] - } - } - } - }, - { - "id": 96, - "type": { - "path": [ - "polkadot_parachain_primitives", - "primitives", - "HeadData" - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 97, - "type": { - "path": ["polkadot_primitives", "v5", "CoreIndex"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 98, - "type": { - "path": ["polkadot_primitives", "v5", "GroupIndex"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 99, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "pallet", - "Event" - ], - "def": { - "variant": { - "variants": [ - { - "name": "CurrentCodeUpdated", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0, - "docs": [ - "Current code has been updated for a Para. `para_id`" - ] - }, - { - "name": "CurrentHeadUpdated", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": [ - "Current head has been updated for a Para. `para_id`" - ] - }, - { - "name": "CodeUpgradeScheduled", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": [ - "A code upgrade has been scheduled for a Para. `para_id`" - ] - }, - { - "name": "NewHeadNoted", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 3, - "docs": [ - "A new head has been noted for a Para. `para_id`" - ] - }, - { - "name": "ActionQueued", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 4, - "typeName": "SessionIndex" - } - ], - "index": 4, - "docs": [ - "A para has been queued to execute pending actions. `para_id`" - ] - }, - { - "name": "PvfCheckStarted", - "fields": [ - { - "type": 95, - "typeName": "ValidationCodeHash" - }, - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 5, - "docs": [ - "The given para either initiated or subscribed to a PVF check for the given validation", - "code. `code_hash` `para_id`" - ] - }, - { - "name": "PvfCheckAccepted", - "fields": [ - { - "type": 95, - "typeName": "ValidationCodeHash" - }, - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 6, - "docs": [ - "The given validation code was accepted by the PVF pre-checking vote.", - "`code_hash` `para_id`" - ] - }, - { - "name": "PvfCheckRejected", - "fields": [ - { - "type": 95, - "typeName": "ValidationCodeHash" - }, - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 7, - "docs": [ - "The given validation code was rejected by the PVF pre-checking vote.", - "`code_hash` `para_id`" - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 100, - "type": { - "path": [ - "polkadot_runtime_parachains", - "hrmp", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "OpenChannelRequested", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 4, - "typeName": "u32" - }, - { - "type": 4, - "typeName": "u32" - } - ], - "index": 0, - "docs": [ - "Open HRMP channel requested.", - "`[sender, recipient, proposed_max_capacity, proposed_max_message_size]`" - ] - }, - { - "name": "OpenChannelCanceled", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 101, - "typeName": "HrmpChannelId" - } - ], - "index": 1, - "docs": [ - "An HRMP channel request sent by the receiver was canceled by either party.", - "`[by_parachain, channel_id]`" - ] - }, - { - "name": "OpenChannelAccepted", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": [ - "Open HRMP channel accepted. `[sender, recipient]`" - ] - }, - { - "name": "ChannelClosed", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 101, - "typeName": "HrmpChannelId" - } - ], - "index": 3, - "docs": [ - "HRMP channel closed. `[by_parachain, channel_id]`" - ] - }, - { - "name": "HrmpChannelForceOpened", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 4, - "typeName": "u32" - }, - { - "type": 4, - "typeName": "u32" - } - ], - "index": 4, - "docs": [ - "An HRMP channel was opened via Root origin.", - "`[sender, recipient, proposed_max_capacity, proposed_max_message_size]`" - ] - }, - { - "name": "HrmpSystemChannelOpened", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 4, - "typeName": "u32" - }, - { - "type": 4, - "typeName": "u32" - } - ], - "index": 5, - "docs": [ - "An HRMP channel was opened between two system chains.", - "`[sender, recipient, proposed_max_capacity, proposed_max_message_size]`" - ] - }, - { - "name": "OpenChannelDepositsUpdated", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - }, - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 6, - "docs": [ - "An HRMP channel's deposits were updated.", - "`[sender, recipient]`" - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 101, - "type": { - "path": [ - "polkadot_parachain_primitives", - "primitives", - "HrmpChannelId" - ], - "def": { - "composite": { - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "Id" - }, - { - "name": "recipient", - "type": 90, - "typeName": "Id" - } - ] - } - } - } - }, - { - "id": 102, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "DisputeInitiated", - "fields": [ - { - "type": 103, - "typeName": "CandidateHash" - }, - { - "type": 104, - "typeName": "DisputeLocation" - } - ], - "index": 0, - "docs": [ - "A dispute has been initiated. \\[candidate hash, dispute location\\]" - ] - }, - { - "name": "DisputeConcluded", - "fields": [ - { - "type": 103, - "typeName": "CandidateHash" - }, - { - "type": 105, - "typeName": "DisputeResult" - } - ], - "index": 1, - "docs": [ - "A dispute has concluded for or against a candidate.", - "`\\[para id, candidate hash, dispute result\\]`" - ] - }, - { - "name": "Revert", - "fields": [ - { - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": [ - "A dispute has concluded with supermajority against a candidate.", - "Block authors should no longer build on top of this head and should", - "instead revert the block at the given height. This should be the", - "number of the child of the last known valid block in the chain." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 103, - "type": { - "path": ["polkadot_core_primitives", "CandidateHash"], - "def": { - "composite": { - "fields": [ - { - "type": 12, - "typeName": "Hash" - } - ] - } - } - } - }, - { - "id": 104, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "DisputeLocation" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Local", - "index": 0 - }, - { - "name": "Remote", - "index": 1 - } - ] - } - } - } - }, - { - "id": 105, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "DisputeResult" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Valid", - "index": 0 - }, - { - "name": "Invalid", - "index": 1 - } - ] - } - } - } - }, - { - "id": 106, - "type": { - "path": ["pallet_message_queue", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ProcessingFailed", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "[u8; 32]" - }, - { - "name": "origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "error", - "type": 109, - "typeName": "ProcessMessageError" - } - ], - "index": 0, - "docs": [ - "Message discarded due to an error in the `MessageProcessor` (usually a format error)." - ] - }, - { - "name": "Processed", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "[u8; 32]" - }, - { - "name": "origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "weight_used", - "type": 9, - "typeName": "Weight" - }, - { - "name": "success", - "type": 54, - "typeName": "bool" - } - ], - "index": 1, - "docs": ["Message is processed."] - }, - { - "name": "OverweightEnqueued", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "[u8; 32]" - }, - { - "name": "origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "page_index", - "type": 4, - "typeName": "PageIndex" - }, - { - "name": "message_index", - "type": 4, - "typeName": "T::Size" - } - ], - "index": 2, - "docs": ["Message placed in overweight queue."] - }, - { - "name": "PageReaped", - "fields": [ - { - "name": "origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "index", - "type": 4, - "typeName": "PageIndex" - } - ], - "index": 3, - "docs": ["This page was reaped."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 107, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "AggregateMessageOrigin" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ump", - "fields": [ - { - "type": 108, - "typeName": "UmpQueueId" - } - ], - "index": 0 - } - ] - } - } - } - }, - { - "id": 108, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "UmpQueueId" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Para", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0 - } - ] - } - } - } - }, - { - "id": 109, - "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": 9, - "typeName": "Weight" - } - ], - "index": 3 - }, - { - "name": "Yield", - "index": 4 - } - ] - } - } - } - }, - { - "id": 110, - "type": { - "path": [ - "polkadot_runtime_parachains", - "assigner_on_demand", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "OnDemandOrderPlaced", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "spot_price", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 0, - "docs": ["An order was placed at some spot price amount."] - }, - { - "name": "SpotTrafficSet", - "fields": [ - { - "name": "traffic", - "type": 111, - "typeName": "FixedU128" - } - ], - "index": 1, - "docs": [ - "The value of the spot traffic multiplier changed." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 111, - "type": { - "path": ["sp_arithmetic", "fixed_point", "FixedU128"], - "def": { - "composite": { - "fields": [ - { - "type": 6, - "typeName": "u128" - } - ] - } - } - } - }, - { - "id": 112, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_registrar", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Registered", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "manager", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 0 - }, - { - "name": "Deregistered", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1 - }, - { - "name": "Reserved", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 2 - }, - { - "name": "Swapped", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "other_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 3 - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 113, - "type": { - "path": ["polkadot_runtime_common", "slots", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NewLeasePeriod", - "fields": [ - { - "name": "lease_period", - "type": 4, - "typeName": "LeasePeriodOf" - } - ], - "index": 0, - "docs": ["A new `[lease_period]` is beginning."] - }, - { - "name": "Leased", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "leaser", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "period_begin", - "type": 4, - "typeName": "LeasePeriodOf" - }, - { - "name": "period_count", - "type": 4, - "typeName": "LeasePeriodOf" - }, - { - "name": "extra_reserved", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "total_amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": [ - "A para has won the right to a continuous set of lease periods as a parachain.", - "First balance is any extra amount reserved on top of the para's existing deposit.", - "Second balance is the total amount reserved." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 114, - "type": { - "path": [ - "polkadot_runtime_common", - "auctions", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "AuctionStarted", - "fields": [ - { - "name": "auction_index", - "type": 4, - "typeName": "AuctionIndex" - }, - { - "name": "lease_period", - "type": 4, - "typeName": "LeasePeriodOf" - }, - { - "name": "ending", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 0, - "docs": [ - "An auction started. Provides its index and the block number where it will begin to", - "close and the first lease period of the quadruplet that is auctioned." - ] - }, - { - "name": "AuctionClosed", - "fields": [ - { - "name": "auction_index", - "type": 4, - "typeName": "AuctionIndex" - } - ], - "index": 1, - "docs": ["An auction ended. All funds become unreserved."] - }, - { - "name": "Reserved", - "fields": [ - { - "name": "bidder", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "extra_reserved", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "total_amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": [ - "Funds were reserved for a winning bid. First balance is the extra amount reserved.", - "Second is the total." - ] - }, - { - "name": "Unreserved", - "fields": [ - { - "name": "bidder", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 3, - "docs": [ - "Funds were unreserved since bidder is no longer active. `[bidder, amount]`" - ] - }, - { - "name": "ReserveConfiscated", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "leaser", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 4, - "docs": [ - "Someone attempted to lease the same slot twice for a parachain. The amount is held in", - "reserve but no parachain slot has been leased." - ] - }, - { - "name": "BidAccepted", - "fields": [ - { - "name": "bidder", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "first_slot", - "type": 4, - "typeName": "LeasePeriodOf" - }, - { - "name": "last_slot", - "type": 4, - "typeName": "LeasePeriodOf" - } - ], - "index": 5, - "docs": [ - "A new bid has been accepted as the current winner." - ] - }, - { - "name": "WinningOffset", - "fields": [ - { - "name": "auction_index", - "type": 4, - "typeName": "AuctionIndex" - }, - { - "name": "block_number", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 6, - "docs": [ - "The winning offset was chosen for an auction. This will map into the `Winning` storage", - "map." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 115, - "type": { - "path": [ - "polkadot_runtime_common", - "crowdloan", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Created", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0, - "docs": ["Create a new crowdloaning campaign."] - }, - { - "name": "Contributed", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "fund_index", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": ["Contributed to a crowd sale."] - }, - { - "name": "Withdrew", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "fund_index", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": ["Withdrew full balance of a contributor."] - }, - { - "name": "PartiallyRefunded", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 3, - "docs": [ - "The loans in a fund have been partially dissolved, i.e. there are some left", - "over child keys that still need to be killed." - ] - }, - { - "name": "AllRefunded", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 4, - "docs": ["All loans in a fund have been refunded."] - }, - { - "name": "Dissolved", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 5, - "docs": ["Fund is dissolved."] - }, - { - "name": "HandleBidResult", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "result", - "type": 55, - "typeName": "DispatchResult" - } - ], - "index": 6, - "docs": [ - "The result of trying to submit a new bid to the Slots pallet." - ] - }, - { - "name": "Edited", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 7, - "docs": [ - "The configuration to a crowdloan has been edited." - ] - }, - { - "name": "MemoUpdated", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "memo", - "type": 13, - "typeName": "Vec" - } - ], - "index": 8, - "docs": ["A memo has been updated."] - }, - { - "name": "AddedToNewRaise", - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 9, - "docs": ["A parachain has been moved to `NewRaise`"] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 116, - "type": { - "path": ["pallet_xcm", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Attempted", - "fields": [ - { - "name": "outcome", - "type": 117, - "typeName": "xcm::latest::Outcome" - } - ], - "index": 0, - "docs": ["Execution of an XCM message was attempted."] - }, - { - "name": "Sent", - "fields": [ - { - "name": "origin", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "destination", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "message", - "type": 128, - "typeName": "Xcm<()>" - }, - { - "name": "message_id", - "type": 1, - "typeName": "XcmHash" - } - ], - "index": 1, - "docs": ["A XCM message was sent."] - }, - { - "name": "UnexpectedResponse", - "fields": [ - { - "name": "origin", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "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": 11, - "typeName": "QueryId" - }, - { - "name": "response", - "type": 138, - "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": 11, - "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": 11, - "typeName": "QueryId" - }, - { - "name": "pallet_index", - "type": 2, - "typeName": "u8" - }, - { - "name": "call_index", - "type": 2, - "typeName": "u8" - }, - { - "name": "actual_weight", - "type": 9, - "typeName": "Weight" - }, - { - "name": "max_budgeted_weight", - "type": 9, - "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": 11, - "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": 11, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "typeName": "QueryId" - }, - { - "name": "expected_location", - "type": 147, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "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": 11, - "typeName": "QueryId" - } - ], - "index": 10, - "docs": [ - "Received query response has been read and removed." - ] - }, - { - "name": "AssetsTrapped", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "H256" - }, - { - "name": "origin", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "assets", - "type": 155, - "typeName": "VersionedMultiAssets" - } - ], - "index": 11, - "docs": ["Some assets have been placed in an asset trap."] - }, - { - "name": "VersionChangeNotified", - "fields": [ - { - "name": "destination", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "result", - "type": 4, - "typeName": "XcmVersion" - }, - { - "name": "cost", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "message_id", - "type": 1, - "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": 119, - "typeName": "MultiLocation" - }, - { - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "typeName": "QueryId" - }, - { - "name": "error", - "type": 118, - "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": 169, - "typeName": "VersionedMultiLocation" - }, - { - "name": "query_id", - "type": 11, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 11, - "typeName": "QueryId" - }, - { - "name": "expected_querier", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "maybe_actual_querier", - "type": 147, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "cost", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "message_id", - "type": 1, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "cost", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "message_id", - "type": 1, - "typeName": "XcmHash" - } - ], - "index": 19, - "docs": [ - "We have requested that a remote chain send us XCM version change notifications." - ] - }, - { - "name": "VersionNotifyUnrequested", - "fields": [ - { - "name": "destination", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "cost", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "message_id", - "type": 1, - "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": 119, - "typeName": "MultiLocation" - }, - { - "name": "fees", - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 21, - "docs": [ - "Fees were paid from a location for an operation (often for using `SendXcm`)." - ] - }, - { - "name": "AssetsClaimed", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "H256" - }, - { - "name": "origin", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "assets", - "type": 155, - "typeName": "VersionedMultiAssets" - } - ], - "index": 22, - "docs": [ - "Some assets have been claimed from an asset trap" - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 117, - "type": { - "path": ["staging_xcm", "v3", "traits", "Outcome"], - "def": { - "variant": { - "variants": [ - { - "name": "Complete", - "fields": [ - { - "type": 9, - "typeName": "Weight" - } - ], - "index": 0 - }, - { - "name": "Incomplete", - "fields": [ - { - "type": 9, - "typeName": "Weight" - }, - { - "type": 118, - "typeName": "Error" - } - ], - "index": 1 - }, - { - "name": "Error", - "fields": [ - { - "type": 118, - "typeName": "Error" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 118, - "type": { - "path": ["staging_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": 11, - "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": 9, - "typeName": "Weight" - } - ], - "index": 36 - }, - { - "name": "Barrier", - "index": 37 - }, - { - "name": "WeightNotComputable", - "index": 38 - }, - { - "name": "ExceedsStackLimit", - "index": 39 - } - ] - } - } - } - }, - { - "id": 119, - "type": { - "path": ["staging_xcm", "v3", "multilocation", "MultiLocation"], - "def": { - "composite": { - "fields": [ - { - "name": "parents", - "type": 2, - "typeName": "u8" - }, - { - "name": "interior", - "type": 120, - "typeName": "Junctions" - } - ] - } - } - } - }, - { - "id": 120, - "type": { - "path": ["staging_xcm", "v3", "junctions", "Junctions"], - "def": { - "variant": { - "variants": [ - { - "name": "Here", - "index": 0 - }, - { - "name": "X1", - "fields": [ - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 1 - }, - { - "name": "X2", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 2 - }, - { - "name": "X3", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 3 - }, - { - "name": "X4", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 4 - }, - { - "name": "X5", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 5 - }, - { - "name": "X6", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 6 - }, - { - "name": "X7", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 7 - }, - { - "name": "X8", - "fields": [ - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - }, - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 8 - } - ] - } - } - } - }, - { - "id": 121, - "type": { - "path": ["staging_xcm", "v3", "junction", "Junction"], - "def": { - "variant": { - "variants": [ - { - "name": "Parachain", - "fields": [ - { - "type": 122, - "typeName": "u32" - } - ], - "index": 0 - }, - { - "name": "AccountId32", - "fields": [ - { - "name": "network", - "type": 123, - "typeName": "Option" - }, - { - "name": "id", - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 1 - }, - { - "name": "AccountIndex64", - "fields": [ - { - "name": "network", - "type": 123, - "typeName": "Option" - }, - { - "name": "index", - "type": 10, - "typeName": "u64" - } - ], - "index": 2 - }, - { - "name": "AccountKey20", - "fields": [ - { - "name": "network", - "type": 123, - "typeName": "Option" - }, - { - "name": "key", - "type": 64, - "typeName": "[u8; 20]" - } - ], - "index": 3 - }, - { - "name": "PalletInstance", - "fields": [ - { - "type": 2, - "typeName": "u8" - } - ], - "index": 4 - }, - { - "name": "GeneralIndex", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 5 - }, - { - "name": "GeneralKey", - "fields": [ - { - "name": "length", - "type": 2, - "typeName": "u8" - }, - { - "name": "data", - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 6 - }, - { - "name": "OnlyChild", - "index": 7 - }, - { - "name": "Plurality", - "fields": [ - { - "name": "id", - "type": 126, - "typeName": "BodyId" - }, - { - "name": "part", - "type": 127, - "typeName": "BodyPart" - } - ], - "index": 8 - }, - { - "name": "GlobalConsensus", - "fields": [ - { - "type": 124, - "typeName": "NetworkId" - } - ], - "index": 9 - } - ] - } - } - } - }, - { - "id": 122, - "type": { - "def": { - "compact": { - "type": 4 - } - } - } - }, - { - "id": 123, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 124 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 124 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 124, - "type": { - "path": ["staging_xcm", "v3", "junction", "NetworkId"], - "def": { - "variant": { - "variants": [ - { - "name": "ByGenesis", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 0 - }, - { - "name": "ByFork", - "fields": [ - { - "name": "block_number", - "type": 11, - "typeName": "u64" - }, - { - "name": "block_hash", - "type": 1, - "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": 10, - "typeName": "u64" - } - ], - "index": 7 - }, - { - "name": "BitcoinCore", - "index": 8 - }, - { - "name": "BitcoinCash", - "index": 9 - } - ] - } - } - } - }, - { - "id": 125, - "type": { - "def": { - "compact": { - "type": 6 - } - } - } - }, - { - "id": 126, - "type": { - "path": ["staging_xcm", "v3", "junction", "BodyId"], - "def": { - "variant": { - "variants": [ - { - "name": "Unit", - "index": 0 - }, - { - "name": "Moniker", - "fields": [ - { - "type": 17, - "typeName": "[u8; 4]" - } - ], - "index": 1 - }, - { - "name": "Index", - "fields": [ - { - "type": 122, - "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": 127, - "type": { - "path": ["staging_xcm", "v3", "junction", "BodyPart"], - "def": { - "variant": { - "variants": [ - { - "name": "Voice", - "index": 0 - }, - { - "name": "Members", - "fields": [ - { - "name": "count", - "type": 122, - "typeName": "u32" - } - ], - "index": 1 - }, - { - "name": "Fraction", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 2 - }, - { - "name": "AtLeastProportion", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 3 - }, - { - "name": "MoreThanProportion", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 4 - } - ] - } - } - } - }, - { - "id": 128, - "type": { - "path": ["staging_xcm", "v3", "Xcm"], - "params": [ - { - "name": "Call", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 129, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 129, - "type": { - "def": { - "sequence": { - "type": 130 - } - } - } - }, - { - "id": 130, - "type": { - "path": ["staging_xcm", "v3", "Instruction"], - "params": [ - { - "name": "Call", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "WithdrawAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "ReserveAssetDeposited", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ReceiveTeleportedAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 2 - }, - { - "name": "QueryResponse", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "response", - "type": 138, - "typeName": "Response" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - }, - { - "name": "querier", - "type": 147, - "typeName": "Option" - } - ], - "index": 3 - }, - { - "name": "TransferAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "beneficiary", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 4 - }, - { - "name": "TransferReserveAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 5 - }, - { - "name": "Transact", - "fields": [ - { - "name": "origin_kind", - "type": 148, - "typeName": "OriginKind" - }, - { - "name": "require_weight_at_most", - "type": 9, - "typeName": "Weight" - }, - { - "name": "call", - "type": 149, - "typeName": "DoubleEncoded" - } - ], - "index": 6 - }, - { - "name": "HrmpNewChannelOpenRequest", - "fields": [ - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_capacity", - "type": 122, - "typeName": "u32" - } - ], - "index": 7 - }, - { - "name": "HrmpChannelAccepted", - "fields": [ - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 8 - }, - { - "name": "HrmpChannelClosing", - "fields": [ - { - "name": "initiator", - "type": 122, - "typeName": "u32" - }, - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 9 - }, - { - "name": "ClearOrigin", - "index": 10 - }, - { - "name": "DescendOrigin", - "fields": [ - { - "type": 120, - "typeName": "InteriorMultiLocation" - } - ], - "index": 11 - }, - { - "name": "ReportError", - "fields": [ - { - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 12 - }, - { - "name": "DepositAsset", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "beneficiary", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 13 - }, - { - "name": "DepositReserveAsset", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 14 - }, - { - "name": "ExchangeAsset", - "fields": [ - { - "name": "give", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "want", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "maximal", - "type": 54, - "typeName": "bool" - } - ], - "index": 15 - }, - { - "name": "InitiateReserveWithdraw", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "reserve", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 16 - }, - { - "name": "InitiateTeleport", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 17 - }, - { - "name": "ReportHolding", - "fields": [ - { - "name": "response_info", - "type": 150, - "typeName": "QueryResponseInfo" - }, - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - } - ], - "index": 18 - }, - { - "name": "BuyExecution", - "fields": [ - { - "name": "fees", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - } - ], - "index": 19 - }, - { - "name": "RefundSurplus", - "index": 20 - }, - { - "name": "SetErrorHandler", - "fields": [ - { - "type": 128, - "typeName": "Xcm" - } - ], - "index": 21 - }, - { - "name": "SetAppendix", - "fields": [ - { - "type": 128, - "typeName": "Xcm" - } - ], - "index": 22 - }, - { - "name": "ClearError", - "index": 23 - }, - { - "name": "ClaimAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "ticket", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 24 - }, - { - "name": "Trap", - "fields": [ - { - "type": 10, - "typeName": "u64" - } - ], - "index": 25 - }, - { - "name": "SubscribeVersion", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "max_response_weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 26 - }, - { - "name": "UnsubscribeVersion", - "index": 27 - }, - { - "name": "BurnAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 28 - }, - { - "name": "ExpectAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 29 - }, - { - "name": "ExpectOrigin", - "fields": [ - { - "type": 147, - "typeName": "Option" - } - ], - "index": 30 - }, - { - "name": "ExpectError", - "fields": [ - { - "type": 139, - "typeName": "Option<(u32, Error)>" - } - ], - "index": 31 - }, - { - "name": "ExpectTransactStatus", - "fields": [ - { - "type": 145, - "typeName": "MaybeErrorCode" - } - ], - "index": 32 - }, - { - "name": "QueryPallet", - "fields": [ - { - "name": "module_name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "response_info", - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 33 - }, - { - "name": "ExpectPallet", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "u32" - }, - { - "name": "name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "module_name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "crate_major", - "type": 122, - "typeName": "u32" - }, - { - "name": "min_crate_minor", - "type": 122, - "typeName": "u32" - } - ], - "index": 34 - }, - { - "name": "ReportTransactStatus", - "fields": [ - { - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 35 - }, - { - "name": "ClearTransactStatus", - "index": 36 - }, - { - "name": "UniversalOrigin", - "fields": [ - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 37 - }, - { - "name": "ExportMessage", - "fields": [ - { - "name": "network", - "type": 124, - "typeName": "NetworkId" - }, - { - "name": "destination", - "type": 120, - "typeName": "InteriorMultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 38 - }, - { - "name": "LockAsset", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "unlocker", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 39 - }, - { - "name": "UnlockAsset", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "target", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 40 - }, - { - "name": "NoteUnlockable", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "owner", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 41 - }, - { - "name": "RequestUnlock", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "locker", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 42 - }, - { - "name": "SetFeesMode", - "fields": [ - { - "name": "jit_withdraw", - "type": 54, - "typeName": "bool" - } - ], - "index": 43 - }, - { - "name": "SetTopic", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 44 - }, - { - "name": "ClearTopic", - "index": 45 - }, - { - "name": "AliasOrigin", - "fields": [ - { - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 46 - }, - { - "name": "UnpaidExecution", - "fields": [ - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - }, - { - "name": "check_origin", - "type": 147, - "typeName": "Option" - } - ], - "index": 47 - } - ] - } - } - } - }, - { - "id": 131, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "MultiAssets"], - "def": { - "composite": { - "fields": [ - { - "type": 132, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 132, - "type": { - "def": { - "sequence": { - "type": 133 - } - } - } - }, - { - "id": 133, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "MultiAsset"], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 134, - "typeName": "AssetId" - }, - { - "name": "fun", - "type": 135, - "typeName": "Fungibility" - } - ] - } - } - } - }, - { - "id": 134, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "AssetId"], - "def": { - "variant": { - "variants": [ - { - "name": "Concrete", - "fields": [ - { - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 0 - }, - { - "name": "Abstract", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 135, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "Fungibility"], - "def": { - "variant": { - "variants": [ - { - "name": "Fungible", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 0 - }, - { - "name": "NonFungible", - "fields": [ - { - "type": 136, - "typeName": "AssetInstance" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 136, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "AssetInstance"], - "def": { - "variant": { - "variants": [ - { - "name": "Undefined", - "index": 0 - }, - { - "name": "Index", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 1 - }, - { - "name": "Array4", - "fields": [ - { - "type": 17, - "typeName": "[u8; 4]" - } - ], - "index": 2 - }, - { - "name": "Array8", - "fields": [ - { - "type": 137, - "typeName": "[u8; 8]" - } - ], - "index": 3 - }, - { - "name": "Array16", - "fields": [ - { - "type": 35, - "typeName": "[u8; 16]" - } - ], - "index": 4 - }, - { - "name": "Array32", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 5 - } - ] - } - } - } - }, - { - "id": 137, - "type": { - "def": { - "array": { - "len": 8, - "type": 2 - } - } - } - }, - { - "id": 138, - "type": { - "path": ["staging_xcm", "v3", "Response"], - "def": { - "variant": { - "variants": [ - { - "name": "Null", - "index": 0 - }, - { - "name": "Assets", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ExecutionResult", - "fields": [ - { - "type": 139, - "typeName": "Option<(u32, Error)>" - } - ], - "index": 2 - }, - { - "name": "Version", - "fields": [ - { - "type": 4, - "typeName": "super::Version" - } - ], - "index": 3 - }, - { - "name": "PalletsInfo", - "fields": [ - { - "type": 141, - "typeName": "BoundedVec" - } - ], - "index": 4 - }, - { - "name": "DispatchResult", - "fields": [ - { - "type": 145, - "typeName": "MaybeErrorCode" - } - ], - "index": 5 - } - ] - } - } - } - }, - { - "id": 139, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 140 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 140 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 140, - "type": { - "def": { - "tuple": [4, 118] - } - } - }, - { - "id": 141, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 142 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 144, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 142, - "type": { - "path": ["staging_xcm", "v3", "PalletInfo"], - "def": { - "composite": { - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "u32" - }, - { - "name": "name", - "type": 143, - "typeName": "BoundedVec" - }, - { - "name": "module_name", - "type": 143, - "typeName": "BoundedVec" - }, - { - "name": "major", - "type": 122, - "typeName": "u32" - }, - { - "name": "minor", - "type": 122, - "typeName": "u32" - }, - { - "name": "patch", - "type": 122, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 143, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 144, - "type": { - "def": { - "sequence": { - "type": 142 - } - } - } - }, - { - "id": 145, - "type": { - "path": ["staging_xcm", "v3", "MaybeErrorCode"], - "def": { - "variant": { - "variants": [ - { - "name": "Success", - "index": 0 - }, - { - "name": "Error", - "fields": [ - { - "type": 146, - "typeName": "BoundedVec" - } - ], - "index": 1 - }, - { - "name": "TruncatedError", - "fields": [ - { - "type": 146, - "typeName": "BoundedVec" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 146, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 147, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 119 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 119 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 148, - "type": { - "path": ["staging_xcm", "v2", "OriginKind"], - "def": { - "variant": { - "variants": [ - { - "name": "Native", - "index": 0 - }, - { - "name": "SovereignAccount", - "index": 1 - }, - { - "name": "Superuser", - "index": 2 - }, - { - "name": "Xcm", - "index": 3 - } - ] - } - } - } - }, - { - "id": 149, - "type": { - "path": ["staging_xcm", "double_encoded", "DoubleEncoded"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "encoded", - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 150, - "type": { - "path": ["staging_xcm", "v3", "QueryResponseInfo"], - "def": { - "composite": { - "fields": [ - { - "name": "destination", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - } - ] - } - } - } - }, - { - "id": 151, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "MultiAssetFilter"], - "def": { - "variant": { - "variants": [ - { - "name": "Definite", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "Wild", - "fields": [ - { - "type": 152, - "typeName": "WildMultiAsset" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 152, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "WildMultiAsset"], - "def": { - "variant": { - "variants": [ - { - "name": "All", - "index": 0 - }, - { - "name": "AllOf", - "fields": [ - { - "name": "id", - "type": 134, - "typeName": "AssetId" - }, - { - "name": "fun", - "type": 153, - "typeName": "WildFungibility" - } - ], - "index": 1 - }, - { - "name": "AllCounted", - "fields": [ - { - "type": 122, - "typeName": "u32" - } - ], - "index": 2 - }, - { - "name": "AllOfCounted", - "fields": [ - { - "name": "id", - "type": 134, - "typeName": "AssetId" - }, - { - "name": "fun", - "type": 153, - "typeName": "WildFungibility" - }, - { - "name": "count", - "type": 122, - "typeName": "u32" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 153, - "type": { - "path": ["staging_xcm", "v3", "multiasset", "WildFungibility"], - "def": { - "variant": { - "variants": [ - { - "name": "Fungible", - "index": 0 - }, - { - "name": "NonFungible", - "index": 1 - } - ] - } - } - } - }, - { - "id": 154, - "type": { - "path": ["staging_xcm", "v3", "WeightLimit"], - "def": { - "variant": { - "variants": [ - { - "name": "Unlimited", - "index": 0 - }, - { - "name": "Limited", - "fields": [ - { - "type": 9, - "typeName": "Weight" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 155, - "type": { - "path": ["staging_xcm", "VersionedMultiAssets"], - "def": { - "variant": { - "variants": [ - { - "name": "V2", - "fields": [ - { - "type": 156, - "typeName": "v2::MultiAssets" - } - ], - "index": 1 - }, - { - "name": "V3", - "fields": [ - { - "type": 131, - "typeName": "v3::MultiAssets" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 156, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "MultiAssets"], - "def": { - "composite": { - "fields": [ - { - "type": 157, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 157, - "type": { - "def": { - "sequence": { - "type": 158 - } - } - } - }, - { - "id": 158, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "MultiAsset"], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 159, - "typeName": "AssetId" - }, - { - "name": "fun", - "type": 167, - "typeName": "Fungibility" - } - ] - } - } - } - }, - { - "id": 159, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "AssetId"], - "def": { - "variant": { - "variants": [ - { - "name": "Concrete", - "fields": [ - { - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 0 - }, - { - "name": "Abstract", - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 160, - "type": { - "path": ["staging_xcm", "v2", "multilocation", "MultiLocation"], - "def": { - "composite": { - "fields": [ - { - "name": "parents", - "type": 2, - "typeName": "u8" - }, - { - "name": "interior", - "type": 161, - "typeName": "Junctions" - } - ] - } - } - } - }, - { - "id": 161, - "type": { - "path": ["staging_xcm", "v2", "multilocation", "Junctions"], - "def": { - "variant": { - "variants": [ - { - "name": "Here", - "index": 0 - }, - { - "name": "X1", - "fields": [ - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 1 - }, - { - "name": "X2", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 2 - }, - { - "name": "X3", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 3 - }, - { - "name": "X4", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 4 - }, - { - "name": "X5", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 5 - }, - { - "name": "X6", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 6 - }, - { - "name": "X7", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 7 - }, - { - "name": "X8", - "fields": [ - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - }, - { - "type": 162, - "typeName": "Junction" - } - ], - "index": 8 - } - ] - } - } - } - }, - { - "id": 162, - "type": { - "path": ["staging_xcm", "v2", "junction", "Junction"], - "def": { - "variant": { - "variants": [ - { - "name": "Parachain", - "fields": [ - { - "type": 122, - "typeName": "u32" - } - ], - "index": 0 - }, - { - "name": "AccountId32", - "fields": [ - { - "name": "network", - "type": 163, - "typeName": "NetworkId" - }, - { - "name": "id", - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 1 - }, - { - "name": "AccountIndex64", - "fields": [ - { - "name": "network", - "type": 163, - "typeName": "NetworkId" - }, - { - "name": "index", - "type": 10, - "typeName": "u64" - } - ], - "index": 2 - }, - { - "name": "AccountKey20", - "fields": [ - { - "name": "network", - "type": 163, - "typeName": "NetworkId" - }, - { - "name": "key", - "type": 64, - "typeName": "[u8; 20]" - } - ], - "index": 3 - }, - { - "name": "PalletInstance", - "fields": [ - { - "type": 2, - "typeName": "u8" - } - ], - "index": 4 - }, - { - "name": "GeneralIndex", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 5 - }, - { - "name": "GeneralKey", - "fields": [ - { - "type": 164, - "typeName": "WeakBoundedVec>" - } - ], - "index": 6 - }, - { - "name": "OnlyChild", - "index": 7 - }, - { - "name": "Plurality", - "fields": [ - { - "name": "id", - "type": 165, - "typeName": "BodyId" - }, - { - "name": "part", - "type": 166, - "typeName": "BodyPart" - } - ], - "index": 8 - } - ] - } - } - } - }, - { - "id": 163, - "type": { - "path": ["staging_xcm", "v2", "NetworkId"], - "def": { - "variant": { - "variants": [ - { - "name": "Any", - "index": 0 - }, - { - "name": "Named", - "fields": [ - { - "type": 164, - "typeName": "WeakBoundedVec>" - } - ], - "index": 1 - }, - { - "name": "Polkadot", - "index": 2 - }, - { - "name": "Kusama", - "index": 3 - } - ] - } - } - } - }, - { - "id": 164, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 165, - "type": { - "path": ["staging_xcm", "v2", "BodyId"], - "def": { - "variant": { - "variants": [ - { - "name": "Unit", - "index": 0 - }, - { - "name": "Named", - "fields": [ - { - "type": 164, - "typeName": "WeakBoundedVec>" - } - ], - "index": 1 - }, - { - "name": "Index", - "fields": [ - { - "type": 122, - "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": 166, - "type": { - "path": ["staging_xcm", "v2", "BodyPart"], - "def": { - "variant": { - "variants": [ - { - "name": "Voice", - "index": 0 - }, - { - "name": "Members", - "fields": [ - { - "name": "count", - "type": 122, - "typeName": "u32" - } - ], - "index": 1 - }, - { - "name": "Fraction", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 2 - }, - { - "name": "AtLeastProportion", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 3 - }, - { - "name": "MoreThanProportion", - "fields": [ - { - "name": "nom", - "type": 122, - "typeName": "u32" - }, - { - "name": "denom", - "type": 122, - "typeName": "u32" - } - ], - "index": 4 - } - ] - } - } - } - }, - { - "id": 167, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "Fungibility"], - "def": { - "variant": { - "variants": [ - { - "name": "Fungible", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 0 - }, - { - "name": "NonFungible", - "fields": [ - { - "type": 168, - "typeName": "AssetInstance" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 168, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "AssetInstance"], - "def": { - "variant": { - "variants": [ - { - "name": "Undefined", - "index": 0 - }, - { - "name": "Index", - "fields": [ - { - "type": 125, - "typeName": "u128" - } - ], - "index": 1 - }, - { - "name": "Array4", - "fields": [ - { - "type": 17, - "typeName": "[u8; 4]" - } - ], - "index": 2 - }, - { - "name": "Array8", - "fields": [ - { - "type": 137, - "typeName": "[u8; 8]" - } - ], - "index": 3 - }, - { - "name": "Array16", - "fields": [ - { - "type": 35, - "typeName": "[u8; 16]" - } - ], - "index": 4 - }, - { - "name": "Array32", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 5 - }, - { - "name": "Blob", - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 6 - } - ] - } - } - } - }, - { - "id": 169, - "type": { - "path": ["staging_xcm", "VersionedMultiLocation"], - "def": { - "variant": { - "variants": [ - { - "name": "V2", - "fields": [ - { - "type": 160, - "typeName": "v2::MultiLocation" - } - ], - "index": 1 - }, - { - "name": "V3", - "fields": [ - { - "type": 119, - "typeName": "v3::MultiLocation" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 170, - "type": { - "path": [ - "polkadot_runtime_common", - "assigned_slots", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "PermanentSlotAssigned", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0, - "docs": [ - "A parachain was assigned a permanent parachain slot" - ] - }, - { - "name": "TemporarySlotAssigned", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": [ - "A parachain was assigned a temporary parachain slot" - ] - }, - { - "name": "MaxPermanentSlotsChanged", - "fields": [ - { - "name": "slots", - "type": 4, - "typeName": "u32" - } - ], - "index": 2, - "docs": [ - "The maximum number of permanent slots has been changed" - ] - }, - { - "name": "MaxTemporarySlotsChanged", - "fields": [ - { - "name": "slots", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": [ - "The maximum number of temporary slots has been changed" - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 171, - "type": { - "path": [ - "rococo_runtime", - "validator_manager", - "pallet", - "Event" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ValidatorsRegistered", - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["New validators were added to the set."] - }, - { - "name": "ValidatorsDeregistered", - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ], - "index": 1, - "docs": ["Validators were removed from the set."] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 172, - "type": { - "path": ["pallet_state_trie_migration", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Migrated", - "fields": [ - { - "name": "top", - "type": 4, - "typeName": "u32" - }, - { - "name": "child", - "type": 4, - "typeName": "u32" - }, - { - "name": "compute", - "type": 173, - "typeName": "MigrationCompute" - } - ], - "index": 0, - "docs": [ - "Given number of `(top, child)` keys were migrated respectively, with the given", - "`compute`." - ] - }, - { - "name": "Slashed", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": ["Some account got slashed by the given amount."] - }, - { - "name": "AutoMigrationFinished", - "index": 2, - "docs": ["The auto migration task finished."] - }, - { - "name": "Halted", - "fields": [ - { - "name": "error", - "type": 174, - "typeName": "Error" - } - ], - "index": 3, - "docs": [ - "Migration got halted due to an error or miss-configuration." - ] - } - ] - } - }, - "docs": ["Inner events of this pallet."] - } - }, - { - "id": 173, - "type": { - "path": [ - "pallet_state_trie_migration", - "pallet", - "MigrationCompute" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Signed", - "index": 0 - }, - { - "name": "Auto", - "index": 1 - } - ] - } - } - } - }, - { - "id": 174, - "type": { - "path": ["pallet_state_trie_migration", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "MaxSignedLimits", - "index": 0, - "docs": ["Max signed limits not respected."] - }, - { - "name": "KeyTooLong", - "index": 1, - "docs": [ - "A key was longer than the configured maximum.", - "", - "This means that the migration halted at the current [`Progress`] and", - "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", - "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", - "The value should only be increased to avoid a storage migration for the currently", - "stored [`crate::Progress::LastKey`]." - ] - }, - { - "name": "NotEnoughFunds", - "index": 2, - "docs": ["submitter does not have enough funds."] - }, - { - "name": "BadWitness", - "index": 3, - "docs": ["Bad witness data provided."] - }, - { - "name": "SignedMigrationNotAllowed", - "index": 4, - "docs": [ - "Signed migration is not allowed because the maximum limit is not set yet." - ] - }, - { - "name": "BadChildRoot", - "index": 5, - "docs": ["Bad child root provided."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 175, - "type": { - "path": ["pallet_sudo", "pallet", "Event"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Sudid", - "fields": [ - { - "name": "sudo_result", - "type": 55, - "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_sudoer", - "type": 176, - "typeName": "Option", - "docs": [ - "The old sudo key if one was previously set." - ] - } - ], - "index": 1, - "docs": ["The sudo key has been updated."] - }, - { - "name": "SudoAsDone", - "fields": [ - { - "name": "sudo_result", - "type": 55, - "typeName": "DispatchResult", - "docs": [ - "The result of the call made by the sudo user." - ] - } - ], - "index": 2, - "docs": [ - "A [sudo_as](Pallet::sudo_as) call just took place." - ] - } - ] - } - }, - "docs": ["The `Event` enum of this pallet"] - } - }, - { - "id": 176, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 0 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 0 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 177, - "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": 178, - "type": { - "def": { - "sequence": { - "type": 12 - } - } - } - }, - { - "id": 179, - "type": { - "def": { - "sequence": { - "type": 73 - } - } - } - }, - { - "id": 180, - "type": { - "path": ["frame_system", "LastRuntimeUpgradeInfo"], - "def": { - "composite": { - "fields": [ - { - "name": "spec_version", - "type": 122, - "typeName": "codec::Compact" - }, - { - "name": "spec_name", - "type": 181, - "typeName": "sp_runtime::RuntimeString" - } - ] - } - } - } - }, - { - "id": 181, - "type": { - "def": { - "primitive": "str" - } - } - }, - { - "id": 182, - "type": { - "path": ["frame_system", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "remark", - "fields": [ - { - "name": "remark", - "type": 13, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::remark`]."] - }, - { - "name": "set_heap_pages", - "fields": [ - { - "name": "pages", - "type": 11, - "typeName": "u64" - } - ], - "index": 1, - "docs": ["See [`Pallet::set_heap_pages`]."] - }, - { - "name": "set_code", - "fields": [ - { - "name": "code", - "type": 13, - "typeName": "Vec" - } - ], - "index": 2, - "docs": ["See [`Pallet::set_code`]."] - }, - { - "name": "set_code_without_checks", - "fields": [ - { - "name": "code", - "type": 13, - "typeName": "Vec" - } - ], - "index": 3, - "docs": ["See [`Pallet::set_code_without_checks`]."] - }, - { - "name": "set_storage", - "fields": [ - { - "name": "items", - "type": 183, - "typeName": "Vec" - } - ], - "index": 4, - "docs": ["See [`Pallet::set_storage`]."] - }, - { - "name": "kill_storage", - "fields": [ - { - "name": "keys", - "type": 185, - "typeName": "Vec" - } - ], - "index": 5, - "docs": ["See [`Pallet::kill_storage`]."] - }, - { - "name": "kill_prefix", - "fields": [ - { - "name": "prefix", - "type": 13, - "typeName": "Key" - }, - { - "name": "subkeys", - "type": 4, - "typeName": "u32" - } - ], - "index": 6, - "docs": ["See [`Pallet::kill_prefix`]."] - }, - { - "name": "remark_with_event", - "fields": [ - { - "name": "remark", - "type": 13, - "typeName": "Vec" - } - ], - "index": 7, - "docs": ["See [`Pallet::remark_with_event`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 183, - "type": { - "def": { - "sequence": { - "type": 184 - } - } - } - }, - { - "id": 184, - "type": { - "def": { - "tuple": [13, 13] - } - } - }, - { - "id": 185, - "type": { - "def": { - "sequence": { - "type": 13 - } - } - } - }, - { - "id": 186, - "type": { - "path": ["frame_system", "limits", "BlockWeights"], - "def": { - "composite": { - "fields": [ - { - "name": "base_block", - "type": 9, - "typeName": "Weight" - }, - { - "name": "max_block", - "type": 9, - "typeName": "Weight" - }, - { - "name": "per_class", - "type": 187, - "typeName": "PerDispatchClass" - } - ] - } - } - } - }, - { - "id": 187, - "type": { - "path": ["frame_support", "dispatch", "PerDispatchClass"], - "params": [ - { - "name": "T", - "type": 188 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "normal", - "type": 188, - "typeName": "T" - }, - { - "name": "operational", - "type": 188, - "typeName": "T" - }, - { - "name": "mandatory", - "type": 188, - "typeName": "T" - } - ] - } - } - } - }, - { - "id": 188, - "type": { - "path": ["frame_system", "limits", "WeightsPerClass"], - "def": { - "composite": { - "fields": [ - { - "name": "base_extrinsic", - "type": 9, - "typeName": "Weight" - }, - { - "name": "max_extrinsic", - "type": 189, - "typeName": "Option" - }, - { - "name": "max_total", - "type": 189, - "typeName": "Option" - }, - { - "name": "reserved", - "type": 189, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 189, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 9 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 9 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 190, - "type": { - "path": ["frame_system", "limits", "BlockLength"], - "def": { - "composite": { - "fields": [ - { - "name": "max", - "type": 191, - "typeName": "PerDispatchClass" - } - ] - } - } - } - }, - { - "id": 191, - "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": 192, - "type": { - "path": ["sp_weights", "RuntimeDbWeight"], - "def": { - "composite": { - "fields": [ - { - "name": "read", - "type": 11, - "typeName": "u64" - }, - { - "name": "write", - "type": 11, - "typeName": "u64" - } - ] - } - } - } - }, - { - "id": 193, - "type": { - "path": ["sp_version", "RuntimeVersion"], - "def": { - "composite": { - "fields": [ - { - "name": "spec_name", - "type": 181, - "typeName": "RuntimeString" - }, - { - "name": "impl_name", - "type": 181, - "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": 194, - "typeName": "ApisVec" - }, - { - "name": "transaction_version", - "type": 4, - "typeName": "u32" - }, - { - "name": "state_version", - "type": 2, - "typeName": "u8" - } - ] - } - } - } - }, - { - "id": 194, - "type": { - "path": ["Cow"], - "params": [ - { - "name": "T", - "type": 195 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 195 - } - ] - } - } - } - }, - { - "id": 195, - "type": { - "def": { - "sequence": { - "type": 196 - } - } - } - }, - { - "id": 196, - "type": { - "def": { - "tuple": [137, 4] - } - } - }, - { - "id": 197, - "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." - ] - } - ] - } - }, - "docs": ["Error for the System pallet"] - } - }, - { - "id": 198, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 199 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 201, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 199, - "type": { - "def": { - "tuple": [200, 11] - } - } - }, - { - "id": 200, - "type": { - "path": ["sp_consensus_babe", "app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 201, - "type": { - "def": { - "sequence": { - "type": 199 - } - } - } - }, - { - "id": 202, - "type": { - "path": ["sp_consensus_slots", "Slot"], - "def": { - "composite": { - "fields": [ - { - "type": 11, - "typeName": "u64" - } - ] - } - } - } - }, - { - "id": 203, - "type": { - "path": ["sp_consensus_babe", "digests", "NextConfigDescriptor"], - "def": { - "variant": { - "variants": [ - { - "name": "V1", - "fields": [ - { - "name": "c", - "type": 204, - "typeName": "(u64, u64)" - }, - { - "name": "allowed_slots", - "type": 205, - "typeName": "AllowedSlots" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 204, - "type": { - "def": { - "tuple": [11, 11] - } - } - }, - { - "id": 205, - "type": { - "path": ["sp_consensus_babe", "AllowedSlots"], - "def": { - "variant": { - "variants": [ - { - "name": "PrimarySlots", - "index": 0 - }, - { - "name": "PrimaryAndSecondaryPlainSlots", - "index": 1 - }, - { - "name": "PrimaryAndSecondaryVRFSlots", - "index": 2 - } - ] - } - } - } - }, - { - "id": 206, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 1 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 207, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 207, - "type": { - "def": { - "sequence": { - "type": 1 - } - } - } - }, - { - "id": 208, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 209 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 209 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 209, - "type": { - "path": ["sp_consensus_babe", "digests", "PreDigest"], - "def": { - "variant": { - "variants": [ - { - "name": "Primary", - "fields": [ - { - "type": 210, - "typeName": "PrimaryPreDigest" - } - ], - "index": 1 - }, - { - "name": "SecondaryPlain", - "fields": [ - { - "type": 212, - "typeName": "SecondaryPlainPreDigest" - } - ], - "index": 2 - }, - { - "name": "SecondaryVRF", - "fields": [ - { - "type": 213, - "typeName": "SecondaryVRFPreDigest" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 210, - "type": { - "path": ["sp_consensus_babe", "digests", "PrimaryPreDigest"], - "def": { - "composite": { - "fields": [ - { - "name": "authority_index", - "type": 4, - "typeName": "super::AuthorityIndex" - }, - { - "name": "slot", - "type": 202, - "typeName": "Slot" - }, - { - "name": "vrf_signature", - "type": 211, - "typeName": "VrfSignature" - } - ] - } - } - } - }, - { - "id": 211, - "type": { - "path": ["sp_core", "sr25519", "vrf", "VrfSignature"], - "def": { - "composite": { - "fields": [ - { - "name": "output", - "type": 1, - "typeName": "VrfOutput" - }, - { - "name": "proof", - "type": 94, - "typeName": "VrfProof" - } - ] - } - } - } - }, - { - "id": 212, - "type": { - "path": [ - "sp_consensus_babe", - "digests", - "SecondaryPlainPreDigest" - ], - "def": { - "composite": { - "fields": [ - { - "name": "authority_index", - "type": 4, - "typeName": "super::AuthorityIndex" - }, - { - "name": "slot", - "type": 202, - "typeName": "Slot" - } - ] - } - } - } - }, - { - "id": 213, - "type": { - "path": ["sp_consensus_babe", "digests", "SecondaryVRFPreDigest"], - "def": { - "composite": { - "fields": [ - { - "name": "authority_index", - "type": 4, - "typeName": "super::AuthorityIndex" - }, - { - "name": "slot", - "type": 202, - "typeName": "Slot" - }, - { - "name": "vrf_signature", - "type": 211, - "typeName": "VrfSignature" - } - ] - } - } - } - }, - { - "id": 214, - "type": { - "path": ["sp_consensus_babe", "BabeEpochConfiguration"], - "def": { - "composite": { - "fields": [ - { - "name": "c", - "type": 204, - "typeName": "(u64, u64)" - }, - { - "name": "allowed_slots", - "type": 205, - "typeName": "AllowedSlots" - } - ] - } - } - } - }, - { - "id": 215, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 216 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 217, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 216, - "type": { - "def": { - "tuple": [11, 4] - } - } - }, - { - "id": 217, - "type": { - "def": { - "sequence": { - "type": 216 - } - } - } - }, - { - "id": 218, - "type": { - "path": ["pallet_babe", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "report_equivocation", - "fields": [ - { - "name": "equivocation_proof", - "type": 219, - "typeName": "Box>>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 0, - "docs": ["See [`Pallet::report_equivocation`]."] - }, - { - "name": "report_equivocation_unsigned", - "fields": [ - { - "name": "equivocation_proof", - "type": 219, - "typeName": "Box>>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 1, - "docs": ["See [`Pallet::report_equivocation_unsigned`]."] - }, - { - "name": "plan_config_change", - "fields": [ - { - "name": "config", - "type": 203, - "typeName": "NextConfigDescriptor" - } - ], - "index": 2, - "docs": ["See [`Pallet::plan_config_change`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 219, - "type": { - "path": ["sp_consensus_slots", "EquivocationProof"], - "params": [ - { - "name": "Header", - "type": 220 - }, - { - "name": "Id", - "type": 200 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "offender", - "type": 200, - "typeName": "Id" - }, - { - "name": "slot", - "type": 202, - "typeName": "Slot" - }, - { - "name": "first_header", - "type": 220, - "typeName": "Header" - }, - { - "name": "second_header", - "type": 220, - "typeName": "Header" - } - ] - } - } - } - }, - { - "id": 220, - "type": { - "path": ["sp_runtime", "generic", "header", "Header"], - "params": [ - { - "name": "Number", - "type": 4 - }, - { - "name": "Hash", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "parent_hash", - "type": 12, - "typeName": "Hash::Output" - }, - { - "name": "number", - "type": 122, - "typeName": "Number" - }, - { - "name": "state_root", - "type": 12, - "typeName": "Hash::Output" - }, - { - "name": "extrinsics_root", - "type": 12, - "typeName": "Hash::Output" - }, - { - "name": "digest", - "type": 14, - "typeName": "Digest" - } - ] - } - } - } - }, - { - "id": 221, - "type": { - "path": ["sp_session", "MembershipProof"], - "def": { - "composite": { - "fields": [ - { - "name": "session", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "trie_nodes", - "type": 185, - "typeName": "Vec>" - }, - { - "name": "validator_count", - "type": 4, - "typeName": "ValidatorCount" - } - ] - } - } - } - }, - { - "id": 222, - "type": { - "path": ["pallet_babe", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidEquivocationProof", - "index": 0, - "docs": [ - "An equivocation proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "InvalidKeyOwnershipProof", - "index": 1, - "docs": [ - "A key ownership proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "DuplicateOffenceReport", - "index": 2, - "docs": [ - "A given equivocation report is valid but already previously reported." - ] - }, - { - "name": "InvalidConfiguration", - "index": 3, - "docs": ["Submitted configuration is invalid."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 223, - "type": { - "path": ["pallet_timestamp", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "set", - "fields": [ - { - "name": "now", - "type": 10, - "typeName": "T::Moment" - } - ], - "index": 0, - "docs": ["See [`Pallet::set`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 224, - "type": { - "def": { - "tuple": [0, 6, 54] - } - } - }, - { - "id": 225, - "type": { - "path": ["pallet_indices", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "claim", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 0, - "docs": ["See [`Pallet::claim`]."] - }, - { - "name": "transfer", - "fields": [ - { - "name": "new", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 1, - "docs": ["See [`Pallet::transfer`]."] - }, - { - "name": "free", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 2, - "docs": ["See [`Pallet::free`]."] - }, - { - "name": "force_transfer", - "fields": [ - { - "name": "new", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - }, - { - "name": "freeze", - "type": 54, - "typeName": "bool" - } - ], - "index": 3, - "docs": ["See [`Pallet::force_transfer`]."] - }, - { - "name": "freeze", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "T::AccountIndex" - } - ], - "index": 4, - "docs": ["See [`Pallet::freeze`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 226, - "type": { - "path": ["sp_runtime", "multiaddress", "MultiAddress"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "AccountIndex", - "type": 47 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Id", - "fields": [ - { - "type": 0, - "typeName": "AccountId" - } - ], - "index": 0 - }, - { - "name": "Index", - "fields": [ - { - "type": 227, - "typeName": "AccountIndex" - } - ], - "index": 1 - }, - { - "name": "Raw", - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ], - "index": 2 - }, - { - "name": "Address32", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 3 - }, - { - "name": "Address20", - "fields": [ - { - "type": 64, - "typeName": "[u8; 20]" - } - ], - "index": 4 - } - ] - } - } - } - }, - { - "id": 227, - "type": { - "def": { - "compact": { - "type": 47 - } - } - } - }, - { - "id": 228, - "type": { - "path": ["pallet_indices", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NotAssigned", - "index": 0, - "docs": ["The index was not already assigned."] - }, - { - "name": "NotOwner", - "index": 1, - "docs": ["The index is assigned to another account."] - }, - { - "name": "InUse", - "index": 2, - "docs": ["The index was not available."] - }, - { - "name": "NotTransfer", - "index": 3, - "docs": [ - "The source and destination accounts are identical." - ] - }, - { - "name": "Permanent", - "index": 4, - "docs": [ - "The index is permanent and may not be freed/changed." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 229, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 230 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 232, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 230, - "type": { - "path": ["pallet_balances", "types", "BalanceLock"], - "params": [ - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 137, - "typeName": "LockIdentifier" - }, - { - "name": "amount", - "type": 6, - "typeName": "Balance" - }, - { - "name": "reasons", - "type": 231, - "typeName": "Reasons" - } - ] - } - } - } - }, - { - "id": 231, - "type": { - "path": ["pallet_balances", "types", "Reasons"], - "def": { - "variant": { - "variants": [ - { - "name": "Fee", - "index": 0 - }, - { - "name": "Misc", - "index": 1 - }, - { - "name": "All", - "index": 2 - } - ] - } - } - } - }, - { - "id": 232, - "type": { - "def": { - "sequence": { - "type": 230 - } - } - } - }, - { - "id": 233, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 234 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 235, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 234, - "type": { - "path": ["pallet_balances", "types", "ReserveData"], - "params": [ - { - "name": "ReserveIdentifier", - "type": 137 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 137, - "typeName": "ReserveIdentifier" - }, - { - "name": "amount", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 235, - "type": { - "def": { - "sequence": { - "type": 234 - } - } - } - }, - { - "id": 236, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 237 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 241, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 237, - "type": { - "path": ["pallet_balances", "types", "IdAmount"], - "params": [ - { - "name": "Id", - "type": 238 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 238, - "typeName": "Id" - }, - { - "name": "amount", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 238, - "type": { - "path": ["rococo_runtime", "RuntimeHoldReason"], - "def": { - "variant": { - "variants": [ - { - "name": "Preimage", - "fields": [ - { - "type": 239, - "typeName": "pallet_preimage::HoldReason" - } - ], - "index": 32 - }, - { - "name": "Nis", - "fields": [ - { - "type": 240, - "typeName": "pallet_nis::HoldReason" - } - ], - "index": 38 - } - ] - } - } - } - }, - { - "id": 239, - "type": { - "path": ["pallet_preimage", "pallet", "HoldReason"], - "def": { - "variant": { - "variants": [ - { - "name": "Preimage", - "index": 0 - } - ] - } - } - } - }, - { - "id": 240, - "type": { - "path": ["pallet_nis", "pallet", "HoldReason"], - "def": { - "variant": { - "variants": [ - { - "name": "NftReceipt", - "index": 0 - } - ] - } - } - } - }, - { - "id": 241, - "type": { - "def": { - "sequence": { - "type": 237 - } - } - } - }, - { - "id": 242, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 243 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 244, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 243, - "type": { - "path": ["pallet_balances", "types", "IdAmount"], - "params": [ - { - "name": "Id", - "type": 47 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 47, - "typeName": "Id" - }, - { - "name": "amount", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 244, - "type": { - "def": { - "sequence": { - "type": 243 - } - } - } - }, - { - "id": 245, - "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": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 0, - "docs": ["See [`Pallet::transfer_allow_death`]."] - }, - { - "name": "force_transfer", - "fields": [ - { - "name": "source", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 2, - "docs": ["See [`Pallet::force_transfer`]."] - }, - { - "name": "transfer_keep_alive", - "fields": [ - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 3, - "docs": ["See [`Pallet::transfer_keep_alive`]."] - }, - { - "name": "transfer_all", - "fields": [ - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "keep_alive", - "type": 54, - "typeName": "bool" - } - ], - "index": 4, - "docs": ["See [`Pallet::transfer_all`]."] - }, - { - "name": "force_unreserve", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "amount", - "type": 6, - "typeName": "T::Balance" - } - ], - "index": 5, - "docs": ["See [`Pallet::force_unreserve`]."] - }, - { - "name": "upgrade_accounts", - "fields": [ - { - "name": "who", - "type": 68, - "typeName": "Vec" - } - ], - "index": 6, - "docs": ["See [`Pallet::upgrade_accounts`]."] - }, - { - "name": "force_set_balance", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "new_free", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 8, - "docs": ["See [`Pallet::force_set_balance`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 246, - "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 `MaxHolds`."] - }, - { - "name": "TooManyFreezes", - "index": 9, - "docs": ["Number of freezes exceed `MaxFreezes`."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 247, - "type": { - "path": ["pallet_transaction_payment", "Releases"], - "def": { - "variant": { - "variants": [ - { - "name": "V1Ancient", - "index": 0 - }, - { - "name": "V2", - "index": 1 - } - ] - } - } - } - }, - { - "id": 248, - "type": { - "path": ["sp_staking", "offence", "OffenceDetails"], - "params": [ - { - "name": "Reporter", - "type": 0 - }, - { - "name": "Offender", - "type": 46 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "offender", - "type": 46, - "typeName": "Offender" - }, - { - "name": "reporters", - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 249, - "type": { - "def": { - "tuple": [35, 13] - } - } - }, - { - "id": 250, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 251 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 254, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 251, - "type": { - "path": ["sp_consensus_beefy", "ecdsa_crypto", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 252, - "typeName": "ecdsa::Public" - } - ] - } - } - } - }, - { - "id": 252, - "type": { - "path": ["sp_core", "ecdsa", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 253, - "typeName": "[u8; 33]" - } - ] - } - } - } - }, - { - "id": 253, - "type": { - "def": { - "array": { - "len": 33, - "type": 2 - } - } - } - }, - { - "id": 254, - "type": { - "def": { - "sequence": { - "type": 251 - } - } - } - }, - { - "id": 255, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 4 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 256, - "type": { - "path": ["pallet_beefy", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "report_equivocation", - "fields": [ - { - "name": "equivocation_proof", - "type": 257, - "typeName": "Box, T::BeefyId,::Signature,>,>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 0, - "docs": ["See [`Pallet::report_equivocation`]."] - }, - { - "name": "report_equivocation_unsigned", - "fields": [ - { - "name": "equivocation_proof", - "type": 257, - "typeName": "Box, T::BeefyId,::Signature,>,>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 1, - "docs": ["See [`Pallet::report_equivocation_unsigned`]."] - }, - { - "name": "set_new_genesis", - "fields": [ - { - "name": "delay_in_blocks", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::set_new_genesis`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 257, - "type": { - "path": ["sp_consensus_beefy", "EquivocationProof"], - "params": [ - { - "name": "Number", - "type": 4 - }, - { - "name": "Id", - "type": 251 - }, - { - "name": "Signature", - "type": 258 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "first", - "type": 261, - "typeName": "VoteMessage" - }, - { - "name": "second", - "type": 261, - "typeName": "VoteMessage" - } - ] - } - } - } - }, - { - "id": 258, - "type": { - "path": ["sp_consensus_beefy", "ecdsa_crypto", "Signature"], - "def": { - "composite": { - "fields": [ - { - "type": 259, - "typeName": "ecdsa::Signature" - } - ] - } - } - } - }, - { - "id": 259, - "type": { - "path": ["sp_core", "ecdsa", "Signature"], - "def": { - "composite": { - "fields": [ - { - "type": 260, - "typeName": "[u8; 65]" - } - ] - } - } - } - }, - { - "id": 260, - "type": { - "def": { - "array": { - "len": 65, - "type": 2 - } - } - } - }, - { - "id": 261, - "type": { - "path": ["sp_consensus_beefy", "VoteMessage"], - "params": [ - { - "name": "Number", - "type": 4 - }, - { - "name": "Id", - "type": 251 - }, - { - "name": "Signature", - "type": 258 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "commitment", - "type": 262, - "typeName": "Commitment" - }, - { - "name": "id", - "type": 251, - "typeName": "Id" - }, - { - "name": "signature", - "type": 258, - "typeName": "Signature" - } - ] - } - } - } - }, - { - "id": 262, - "type": { - "path": ["sp_consensus_beefy", "commitment", "Commitment"], - "params": [ - { - "name": "TBlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "payload", - "type": 263, - "typeName": "Payload" - }, - { - "name": "block_number", - "type": 4, - "typeName": "TBlockNumber" - }, - { - "name": "validator_set_id", - "type": 11, - "typeName": "ValidatorSetId" - } - ] - } - } - } - }, - { - "id": 263, - "type": { - "path": ["sp_consensus_beefy", "payload", "Payload"], - "def": { - "composite": { - "fields": [ - { - "type": 264, - "typeName": "Vec<(BeefyPayloadId, Vec)>" - } - ] - } - } - } - }, - { - "id": 264, - "type": { - "def": { - "sequence": { - "type": 265 - } - } - } - }, - { - "id": 265, - "type": { - "def": { - "tuple": [266, 13] - } - } - }, - { - "id": 266, - "type": { - "def": { - "array": { - "len": 2, - "type": 2 - } - } - } - }, - { - "id": 267, - "type": { - "path": ["pallet_beefy", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidKeyOwnershipProof", - "index": 0, - "docs": [ - "A key ownership proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "InvalidEquivocationProof", - "index": 1, - "docs": [ - "An equivocation proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "DuplicateOffenceReport", - "index": 2, - "docs": [ - "A given equivocation report is valid but already previously reported." - ] - }, - { - "name": "InvalidConfiguration", - "index": 3, - "docs": ["Submitted configuration is invalid."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 268, - "type": { - "path": ["sp_consensus_beefy", "mmr", "BeefyAuthoritySet"], - "params": [ - { - "name": "AuthoritySetCommitment", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "id", - "type": 11, - "typeName": "crate::ValidatorSetId" - }, - { - "name": "len", - "type": 4, - "typeName": "u32" - }, - { - "name": "keyset_commitment", - "type": 12, - "typeName": "AuthoritySetCommitment" - } - ] - } - } - } - }, - { - "id": 269, - "type": { - "def": { - "sequence": { - "type": 270 - } - } - } - }, - { - "id": 270, - "type": { - "def": { - "tuple": [0, 271] - } - } - }, - { - "id": 271, - "type": { - "path": ["rococo_runtime", "SessionKeys"], - "def": { - "composite": { - "fields": [ - { - "name": "grandpa", - "type": 40, - "typeName": "::Public" - }, - { - "name": "babe", - "type": 200, - "typeName": "::Public" - }, - { - "name": "im_online", - "type": 43, - "typeName": "::Public" - }, - { - "name": "para_validator", - "type": 272, - "typeName": "::Public" - }, - { - "name": "para_assignment", - "type": 273, - "typeName": "::Public" - }, - { - "name": "authority_discovery", - "type": 274, - "typeName": "::Public" - }, - { - "name": "beefy", - "type": 251, - "typeName": "::Public" - } - ] - } - } - } - }, - { - "id": 272, - "type": { - "path": ["polkadot_primitives", "v5", "validator_app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 273, - "type": { - "path": ["polkadot_primitives", "v5", "assignment_app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 274, - "type": { - "path": ["sp_authority_discovery", "app", "Public"], - "def": { - "composite": { - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ] - } - } - } - }, - { - "id": 275, - "type": { - "def": { - "sequence": { - "type": 4 - } - } - } - }, - { - "id": 276, - "type": { - "def": { - "tuple": [277, 13] - } - } - }, - { - "id": 277, - "type": { - "path": ["sp_core", "crypto", "KeyTypeId"], - "def": { - "composite": { - "fields": [ - { - "type": 17, - "typeName": "[u8; 4]" - } - ] - } - } - } - }, - { - "id": 278, - "type": { - "path": ["pallet_session", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "set_keys", - "fields": [ - { - "name": "keys", - "type": 271, - "typeName": "T::Keys" - }, - { - "name": "proof", - "type": 13, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::set_keys`]."] - }, - { - "name": "purge_keys", - "index": 1, - "docs": ["See [`Pallet::purge_keys`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 279, - "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": 280, - "type": { - "path": ["pallet_grandpa", "StoredState"], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Live", - "index": 0 - }, - { - "name": "PendingPause", - "fields": [ - { - "name": "scheduled_at", - "type": 4, - "typeName": "N" - }, - { - "name": "delay", - "type": 4, - "typeName": "N" - } - ], - "index": 1 - }, - { - "name": "Paused", - "index": 2 - }, - { - "name": "PendingResume", - "fields": [ - { - "name": "scheduled_at", - "type": 4, - "typeName": "N" - }, - { - "name": "delay", - "type": 4, - "typeName": "N" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 281, - "type": { - "path": ["pallet_grandpa", "StoredPendingChange"], - "params": [ - { - "name": "N", - "type": 4 - }, - { - "name": "Limit", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "scheduled_at", - "type": 4, - "typeName": "N" - }, - { - "name": "delay", - "type": 4, - "typeName": "N" - }, - { - "name": "next_authorities", - "type": 282, - "typeName": "BoundedAuthorityList" - }, - { - "name": "forced", - "type": 255, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 282, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 39 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 38, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 283, - "type": { - "path": ["pallet_grandpa", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "report_equivocation", - "fields": [ - { - "name": "equivocation_proof", - "type": 284, - "typeName": "Box>>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 0, - "docs": ["See [`Pallet::report_equivocation`]."] - }, - { - "name": "report_equivocation_unsigned", - "fields": [ - { - "name": "equivocation_proof", - "type": 284, - "typeName": "Box>>" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 1, - "docs": ["See [`Pallet::report_equivocation_unsigned`]."] - }, - { - "name": "note_stalled", - "fields": [ - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "best_finalized_block_number", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::note_stalled`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 284, - "type": { - "path": ["sp_consensus_grandpa", "EquivocationProof"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "set_id", - "type": 11, - "typeName": "SetId" - }, - { - "name": "equivocation", - "type": 285, - "typeName": "Equivocation" - } - ] - } - } - } - }, - { - "id": 285, - "type": { - "path": ["sp_consensus_grandpa", "Equivocation"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Prevote", - "fields": [ - { - "type": 286, - "typeName": "grandpa::Equivocation,\nAuthoritySignature>" - } - ], - "index": 0 - }, - { - "name": "Precommit", - "fields": [ - { - "type": 291, - "typeName": "grandpa::Equivocation,\nAuthoritySignature>" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 286, - "type": { - "path": ["finality_grandpa", "Equivocation"], - "params": [ - { - "name": "Id", - "type": 40 - }, - { - "name": "V", - "type": 287 - }, - { - "name": "S", - "type": 288 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "round_number", - "type": 11, - "typeName": "u64" - }, - { - "name": "identity", - "type": 40, - "typeName": "Id" - }, - { - "name": "first", - "type": 290, - "typeName": "(V, S)" - }, - { - "name": "second", - "type": 290, - "typeName": "(V, S)" - } - ] - } - } - } - }, - { - "id": 287, - "type": { - "path": ["finality_grandpa", "Prevote"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "target_hash", - "type": 12, - "typeName": "H" - }, - { - "name": "target_number", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 288, - "type": { - "path": ["sp_consensus_grandpa", "app", "Signature"], - "def": { - "composite": { - "fields": [ - { - "type": 289, - "typeName": "ed25519::Signature" - } - ] - } - } - } - }, - { - "id": 289, - "type": { - "path": ["sp_core", "ed25519", "Signature"], - "def": { - "composite": { - "fields": [ - { - "type": 94, - "typeName": "[u8; 64]" - } - ] - } - } - } - }, - { - "id": 290, - "type": { - "def": { - "tuple": [287, 288] - } - } - }, - { - "id": 291, - "type": { - "path": ["finality_grandpa", "Equivocation"], - "params": [ - { - "name": "Id", - "type": 40 - }, - { - "name": "V", - "type": 292 - }, - { - "name": "S", - "type": 288 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "round_number", - "type": 11, - "typeName": "u64" - }, - { - "name": "identity", - "type": 40, - "typeName": "Id" - }, - { - "name": "first", - "type": 293, - "typeName": "(V, S)" - }, - { - "name": "second", - "type": 293, - "typeName": "(V, S)" - } - ] - } - } - } - }, - { - "id": 292, - "type": { - "path": ["finality_grandpa", "Precommit"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "target_hash", - "type": 12, - "typeName": "H" - }, - { - "name": "target_number", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 293, - "type": { - "def": { - "tuple": [292, 288] - } - } - }, - { - "id": 294, - "type": { - "path": ["pallet_grandpa", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "PauseFailed", - "index": 0, - "docs": [ - "Attempt to signal GRANDPA pause when the authority set isn't live", - "(either paused or already pending pause)." - ] - }, - { - "name": "ResumeFailed", - "index": 1, - "docs": [ - "Attempt to signal GRANDPA resume when the authority set isn't paused", - "(either live or already pending resume)." - ] - }, - { - "name": "ChangePending", - "index": 2, - "docs": [ - "Attempt to signal GRANDPA change with one already pending." - ] - }, - { - "name": "TooSoon", - "index": 3, - "docs": [ - "Cannot signal forced change so soon after last." - ] - }, - { - "name": "InvalidKeyOwnershipProof", - "index": 4, - "docs": [ - "A key ownership proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "InvalidEquivocationProof", - "index": 5, - "docs": [ - "An equivocation proof provided as part of an equivocation report is invalid." - ] - }, - { - "name": "DuplicateOffenceReport", - "index": 6, - "docs": [ - "A given equivocation report is valid but already previously reported." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 295, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 43 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 296, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 296, - "type": { - "def": { - "sequence": { - "type": 43 - } - } - } - }, - { - "id": 297, - "type": { - "def": { - "tuple": [4, 0] - } - } - }, - { - "id": 298, - "type": { - "path": ["pallet_im_online", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "heartbeat", - "fields": [ - { - "name": "heartbeat", - "type": 299, - "typeName": "Heartbeat>" - }, - { - "name": "signature", - "type": 300, - "typeName": "::Signature" - } - ], - "index": 0, - "docs": ["See [`Pallet::heartbeat`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 299, - "type": { - "path": ["pallet_im_online", "Heartbeat"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "block_number", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "session_index", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "authority_index", - "type": 4, - "typeName": "AuthIndex" - }, - { - "name": "validators_len", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 300, - "type": { - "path": [ - "pallet_im_online", - "sr25519", - "app_sr25519", - "Signature" - ], - "def": { - "composite": { - "fields": [ - { - "type": 93, - "typeName": "sr25519::Signature" - } - ] - } - } - } - }, - { - "id": 301, - "type": { - "path": ["pallet_im_online", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidKey", - "index": 0, - "docs": ["Non existent public key."] - }, - { - "name": "DuplicatedHeartbeat", - "index": 1, - "docs": ["Duplicated heartbeat."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 302, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 303 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 478, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 303, - "type": { - "def": { - "tuple": [4, 304, 0] - } - } - }, - { - "id": 304, - "type": { - "path": ["frame_support", "traits", "preimages", "Bounded"], - "params": [ - { - "name": "T", - "type": 305 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Legacy", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "Hash" - } - ], - "index": 0 - }, - { - "name": "Inline", - "fields": [ - { - "type": 477, - "typeName": "BoundedInline" - } - ], - "index": 1 - }, - { - "name": "Lookup", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "Hash" - }, - { - "name": "len", - "type": 4, - "typeName": "u32" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 305, - "type": { - "path": ["rococo_runtime", "RuntimeCall"], - "def": { - "variant": { - "variants": [ - { - "name": "System", - "fields": [ - { - "type": 182, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 0 - }, - { - "name": "Babe", - "fields": [ - { - "type": 218, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 1 - }, - { - "name": "Timestamp", - "fields": [ - { - "type": 223, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 2 - }, - { - "name": "Indices", - "fields": [ - { - "type": 225, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 3 - }, - { - "name": "Balances", - "fields": [ - { - "type": 245, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 4 - }, - { - "name": "Beefy", - "fields": [ - { - "type": 256, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 240 - }, - { - "name": "Session", - "fields": [ - { - "type": 278, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 8 - }, - { - "name": "Grandpa", - "fields": [ - { - "type": 283, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 10 - }, - { - "name": "ImOnline", - "fields": [ - { - "type": 298, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 11 - }, - { - "name": "Democracy", - "fields": [ - { - "type": 306, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 13 - }, - { - "name": "Council", - "fields": [ - { - "type": 309, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 14 - }, - { - "name": "TechnicalCommittee", - "fields": [ - { - "type": 310, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 15 - }, - { - "name": "PhragmenElection", - "fields": [ - { - "type": 311, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 16 - }, - { - "name": "TechnicalMembership", - "fields": [ - { - "type": 313, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 17 - }, - { - "name": "Treasury", - "fields": [ - { - "type": 314, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 18 - }, - { - "name": "Claims", - "fields": [ - { - "type": 315, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 19 - }, - { - "name": "Utility", - "fields": [ - { - "type": 321, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 24 - }, - { - "name": "Identity", - "fields": [ - { - "type": 330, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 25 - }, - { - "name": "Society", - "fields": [ - { - "type": 369, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 26 - }, - { - "name": "Recovery", - "fields": [ - { - "type": 370, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 27 - }, - { - "name": "Vesting", - "fields": [ - { - "type": 371, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 28 - }, - { - "name": "Scheduler", - "fields": [ - { - "type": 373, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 29 - }, - { - "name": "Proxy", - "fields": [ - { - "type": 375, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 30 - }, - { - "name": "Multisig", - "fields": [ - { - "type": 377, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 31 - }, - { - "name": "Preimage", - "fields": [ - { - "type": 379, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 32 - }, - { - "name": "Bounties", - "fields": [ - { - "type": 380, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 35 - }, - { - "name": "ChildBounties", - "fields": [ - { - "type": 381, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 40 - }, - { - "name": "Tips", - "fields": [ - { - "type": 382, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 36 - }, - { - "name": "Nis", - "fields": [ - { - "type": 383, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 38 - }, - { - "name": "NisCounterpartBalances", - "fields": [ - { - "type": 385, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 45 - }, - { - "name": "Configuration", - "fields": [ - { - "type": 386, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 51 - }, - { - "name": "ParasShared", - "fields": [ - { - "type": 394, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 52 - }, - { - "name": "ParaInclusion", - "fields": [ - { - "type": 395, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 53 - }, - { - "name": "ParaInherent", - "fields": [ - { - "type": 396, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 54 - }, - { - "name": "Paras", - "fields": [ - { - "type": 424, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 56 - }, - { - "name": "Initializer", - "fields": [ - { - "type": 426, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 57 - }, - { - "name": "Hrmp", - "fields": [ - { - "type": 427, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 60 - }, - { - "name": "ParasDisputes", - "fields": [ - { - "type": 428, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 62 - }, - { - "name": "ParasSlashing", - "fields": [ - { - "type": 429, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 63 - }, - { - "name": "MessageQueue", - "fields": [ - { - "type": 433, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 64 - }, - { - "name": "OnDemandAssignmentProvider", - "fields": [ - { - "type": 434, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 66 - }, - { - "name": "Registrar", - "fields": [ - { - "type": 435, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 70 - }, - { - "name": "Slots", - "fields": [ - { - "type": 436, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 71 - }, - { - "name": "Auctions", - "fields": [ - { - "type": 437, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 72 - }, - { - "name": "Crowdloan", - "fields": [ - { - "type": 439, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 73 - }, - { - "name": "XcmPallet", - "fields": [ - { - "type": 444, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 99 - }, - { - "name": "ParasSudoWrapper", - "fields": [ - { - "type": 465, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 250 - }, - { - "name": "AssignedSlots", - "fields": [ - { - "type": 467, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 251 - }, - { - "name": "ValidatorManager", - "fields": [ - { - "type": 469, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 252 - }, - { - "name": "StateTrieMigration", - "fields": [ - { - "type": 470, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 254 - }, - { - "name": "Sudo", - "fields": [ - { - "type": 476, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" - } - ], - "index": 255 - } - ] - } - } - } - }, - { - "id": 306, - "type": { - "path": ["pallet_democracy", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "propose", - "fields": [ - { - "name": "proposal", - "type": 304, - "typeName": "BoundedCallOf" - }, - { - "name": "value", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::propose`]."] - }, - { - "name": "second", - "fields": [ - { - "name": "proposal", - "type": 122, - "typeName": "PropIndex" - } - ], - "index": 1, - "docs": ["See [`Pallet::second`]."] - }, - { - "name": "vote", - "fields": [ - { - "name": "ref_index", - "type": 122, - "typeName": "ReferendumIndex" - }, - { - "name": "vote", - "type": 50, - "typeName": "AccountVote>" - } - ], - "index": 2, - "docs": ["See [`Pallet::vote`]."] - }, - { - "name": "emergency_cancel", - "fields": [ - { - "name": "ref_index", - "type": 4, - "typeName": "ReferendumIndex" - } - ], - "index": 3, - "docs": ["See [`Pallet::emergency_cancel`]."] - }, - { - "name": "external_propose", - "fields": [ - { - "name": "proposal", - "type": 304, - "typeName": "BoundedCallOf" - } - ], - "index": 4, - "docs": ["See [`Pallet::external_propose`]."] - }, - { - "name": "external_propose_majority", - "fields": [ - { - "name": "proposal", - "type": 304, - "typeName": "BoundedCallOf" - } - ], - "index": 5, - "docs": ["See [`Pallet::external_propose_majority`]."] - }, - { - "name": "external_propose_default", - "fields": [ - { - "name": "proposal", - "type": 304, - "typeName": "BoundedCallOf" - } - ], - "index": 6, - "docs": ["See [`Pallet::external_propose_default`]."] - }, - { - "name": "fast_track", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "H256" - }, - { - "name": "voting_period", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 7, - "docs": ["See [`Pallet::fast_track`]."] - }, - { - "name": "veto_external", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "H256" - } - ], - "index": 8, - "docs": ["See [`Pallet::veto_external`]."] - }, - { - "name": "cancel_referendum", - "fields": [ - { - "name": "ref_index", - "type": 122, - "typeName": "ReferendumIndex" - } - ], - "index": 9, - "docs": ["See [`Pallet::cancel_referendum`]."] - }, - { - "name": "delegate", - "fields": [ - { - "name": "to", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "conviction", - "type": 307, - "typeName": "Conviction" - }, - { - "name": "balance", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 10, - "docs": ["See [`Pallet::delegate`]."] - }, - { - "name": "undelegate", - "index": 11, - "docs": ["See [`Pallet::undelegate`]."] - }, - { - "name": "clear_public_proposals", - "index": 12, - "docs": ["See [`Pallet::clear_public_proposals`]."] - }, - { - "name": "unlock", - "fields": [ - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 13, - "docs": ["See [`Pallet::unlock`]."] - }, - { - "name": "remove_vote", - "fields": [ - { - "name": "index", - "type": 4, - "typeName": "ReferendumIndex" - } - ], - "index": 14, - "docs": ["See [`Pallet::remove_vote`]."] - }, - { - "name": "remove_other_vote", - "fields": [ - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "index", - "type": 4, - "typeName": "ReferendumIndex" - } - ], - "index": 15, - "docs": ["See [`Pallet::remove_other_vote`]."] - }, - { - "name": "blacklist", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "H256" - }, - { - "name": "maybe_ref_index", - "type": 255, - "typeName": "Option" - } - ], - "index": 16, - "docs": ["See [`Pallet::blacklist`]."] - }, - { - "name": "cancel_proposal", - "fields": [ - { - "name": "prop_index", - "type": 122, - "typeName": "PropIndex" - } - ], - "index": 17, - "docs": ["See [`Pallet::cancel_proposal`]."] - }, - { - "name": "set_metadata", - "fields": [ - { - "name": "owner", - "type": 52, - "typeName": "MetadataOwner" - }, - { - "name": "maybe_hash", - "type": 308, - "typeName": "Option" - } - ], - "index": 18, - "docs": ["See [`Pallet::set_metadata`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 307, - "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": 308, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 12 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 12 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 309, - "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": 68, - "typeName": "Vec" - }, - { - "name": "prime", - "type": 176, - "typeName": "Option" - }, - { - "name": "old_count", - "type": 4, - "typeName": "MemberCount" - } - ], - "index": 0, - "docs": ["See [`Pallet::set_members`]."] - }, - { - "name": "execute", - "fields": [ - { - "name": "proposal", - "type": 305, - "typeName": "Box<>::Proposal>" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 1, - "docs": ["See [`Pallet::execute`]."] - }, - { - "name": "propose", - "fields": [ - { - "name": "threshold", - "type": 122, - "typeName": "MemberCount" - }, - { - "name": "proposal", - "type": 305, - "typeName": "Box<>::Proposal>" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 2, - "docs": ["See [`Pallet::propose`]."] - }, - { - "name": "vote", - "fields": [ - { - "name": "proposal", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "index", - "type": 122, - "typeName": "ProposalIndex" - }, - { - "name": "approve", - "type": 54, - "typeName": "bool" - } - ], - "index": 3, - "docs": ["See [`Pallet::vote`]."] - }, - { - "name": "disapprove_proposal", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 5, - "docs": ["See [`Pallet::disapprove_proposal`]."] - }, - { - "name": "close", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "index", - "type": 122, - "typeName": "ProposalIndex" - }, - { - "name": "proposal_weight_bound", - "type": 9, - "typeName": "Weight" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 6, - "docs": ["See [`Pallet::close`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 310, - "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": 68, - "typeName": "Vec" - }, - { - "name": "prime", - "type": 176, - "typeName": "Option" - }, - { - "name": "old_count", - "type": 4, - "typeName": "MemberCount" - } - ], - "index": 0, - "docs": ["See [`Pallet::set_members`]."] - }, - { - "name": "execute", - "fields": [ - { - "name": "proposal", - "type": 305, - "typeName": "Box<>::Proposal>" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 1, - "docs": ["See [`Pallet::execute`]."] - }, - { - "name": "propose", - "fields": [ - { - "name": "threshold", - "type": 122, - "typeName": "MemberCount" - }, - { - "name": "proposal", - "type": 305, - "typeName": "Box<>::Proposal>" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 2, - "docs": ["See [`Pallet::propose`]."] - }, - { - "name": "vote", - "fields": [ - { - "name": "proposal", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "index", - "type": 122, - "typeName": "ProposalIndex" - }, - { - "name": "approve", - "type": 54, - "typeName": "bool" - } - ], - "index": 3, - "docs": ["See [`Pallet::vote`]."] - }, - { - "name": "disapprove_proposal", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 5, - "docs": ["See [`Pallet::disapprove_proposal`]."] - }, - { - "name": "close", - "fields": [ - { - "name": "proposal_hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "index", - "type": 122, - "typeName": "ProposalIndex" - }, - { - "name": "proposal_weight_bound", - "type": 9, - "typeName": "Weight" - }, - { - "name": "length_bound", - "type": 122, - "typeName": "u32" - } - ], - "index": 6, - "docs": ["See [`Pallet::close`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 311, - "type": { - "path": ["pallet_elections_phragmen", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "vote", - "fields": [ - { - "name": "votes", - "type": 68, - "typeName": "Vec" - }, - { - "name": "value", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::vote`]."] - }, - { - "name": "remove_voter", - "index": 1, - "docs": ["See [`Pallet::remove_voter`]."] - }, - { - "name": "submit_candidacy", - "fields": [ - { - "name": "candidate_count", - "type": 122, - "typeName": "u32" - } - ], - "index": 2, - "docs": ["See [`Pallet::submit_candidacy`]."] - }, - { - "name": "renounce_candidacy", - "fields": [ - { - "name": "renouncing", - "type": 312, - "typeName": "Renouncing" - } - ], - "index": 3, - "docs": ["See [`Pallet::renounce_candidacy`]."] - }, - { - "name": "remove_member", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "slash_bond", - "type": 54, - "typeName": "bool" - }, - { - "name": "rerun_election", - "type": 54, - "typeName": "bool" - } - ], - "index": 4, - "docs": ["See [`Pallet::remove_member`]."] - }, - { - "name": "clean_defunct_voters", - "fields": [ - { - "name": "num_voters", - "type": 4, - "typeName": "u32" - }, - { - "name": "num_defunct", - "type": 4, - "typeName": "u32" - } - ], - "index": 5, - "docs": ["See [`Pallet::clean_defunct_voters`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 312, - "type": { - "path": ["pallet_elections_phragmen", "Renouncing"], - "def": { - "variant": { - "variants": [ - { - "name": "Member", - "index": 0 - }, - { - "name": "RunnerUp", - "index": 1 - }, - { - "name": "Candidate", - "fields": [ - { - "type": 122, - "typeName": "u32" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 313, - "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": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::add_member`]."] - }, - { - "name": "remove_member", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 1, - "docs": ["See [`Pallet::remove_member`]."] - }, - { - "name": "swap_member", - "fields": [ - { - "name": "remove", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "add", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 2, - "docs": ["See [`Pallet::swap_member`]."] - }, - { - "name": "reset_members", - "fields": [ - { - "name": "members", - "type": 68, - "typeName": "Vec" - } - ], - "index": 3, - "docs": ["See [`Pallet::reset_members`]."] - }, - { - "name": "change_key", - "fields": [ - { - "name": "new", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 4, - "docs": ["See [`Pallet::change_key`]."] - }, - { - "name": "set_prime", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 5, - "docs": ["See [`Pallet::set_prime`]."] - }, - { - "name": "clear_prime", - "index": 6, - "docs": ["See [`Pallet::clear_prime`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 314, - "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": 125, - "typeName": "BalanceOf" - }, - { - "name": "beneficiary", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::propose_spend`]."] - }, - { - "name": "reject_proposal", - "fields": [ - { - "name": "proposal_id", - "type": 122, - "typeName": "ProposalIndex" - } - ], - "index": 1, - "docs": ["See [`Pallet::reject_proposal`]."] - }, - { - "name": "approve_proposal", - "fields": [ - { - "name": "proposal_id", - "type": 122, - "typeName": "ProposalIndex" - } - ], - "index": 2, - "docs": ["See [`Pallet::approve_proposal`]."] - }, - { - "name": "spend", - "fields": [ - { - "name": "amount", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "beneficiary", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 3, - "docs": ["See [`Pallet::spend`]."] - }, - { - "name": "remove_approval", - "fields": [ - { - "name": "proposal_id", - "type": 122, - "typeName": "ProposalIndex" - } - ], - "index": 4, - "docs": ["See [`Pallet::remove_approval`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 315, - "type": { - "path": ["polkadot_runtime_common", "claims", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "claim", - "fields": [ - { - "name": "dest", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "ethereum_signature", - "type": 316, - "typeName": "EcdsaSignature" - } - ], - "index": 0, - "docs": ["See [`Pallet::claim`]."] - }, - { - "name": "mint_claim", - "fields": [ - { - "name": "who", - "type": 63, - "typeName": "EthereumAddress" - }, - { - "name": "value", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "vesting_schedule", - "type": 317, - "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>" - }, - { - "name": "statement", - "type": 319, - "typeName": "Option" - } - ], - "index": 1, - "docs": ["See [`Pallet::mint_claim`]."] - }, - { - "name": "claim_attest", - "fields": [ - { - "name": "dest", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "ethereum_signature", - "type": 316, - "typeName": "EcdsaSignature" - }, - { - "name": "statement", - "type": 13, - "typeName": "Vec" - } - ], - "index": 2, - "docs": ["See [`Pallet::claim_attest`]."] - }, - { - "name": "attest", - "fields": [ - { - "name": "statement", - "type": 13, - "typeName": "Vec" - } - ], - "index": 3, - "docs": ["See [`Pallet::attest`]."] - }, - { - "name": "move_claim", - "fields": [ - { - "name": "old", - "type": 63, - "typeName": "EthereumAddress" - }, - { - "name": "new", - "type": 63, - "typeName": "EthereumAddress" - }, - { - "name": "maybe_preclaim", - "type": 176, - "typeName": "Option" - } - ], - "index": 4, - "docs": ["See [`Pallet::move_claim`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 316, - "type": { - "path": ["polkadot_runtime_common", "claims", "EcdsaSignature"], - "def": { - "composite": { - "fields": [ - { - "type": 260, - "typeName": "[u8; 65]" - } - ] - } - } - } - }, - { - "id": 317, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 318 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 318 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 318, - "type": { - "def": { - "tuple": [6, 6, 4] - } - } - }, - { - "id": 319, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 320 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 320 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 320, - "type": { - "path": ["polkadot_runtime_common", "claims", "StatementKind"], - "def": { - "variant": { - "variants": [ - { - "name": "Regular", - "index": 0 - }, - { - "name": "Saft", - "index": 1 - } - ] - } - } - } - }, - { - "id": 321, - "type": { - "path": ["pallet_utility", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "batch", - "fields": [ - { - "name": "calls", - "type": 322, - "typeName": "Vec<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::batch`]."] - }, - { - "name": "as_derivative", - "fields": [ - { - "name": "index", - "type": 77, - "typeName": "u16" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 1, - "docs": ["See [`Pallet::as_derivative`]."] - }, - { - "name": "batch_all", - "fields": [ - { - "name": "calls", - "type": 322, - "typeName": "Vec<::RuntimeCall>" - } - ], - "index": 2, - "docs": ["See [`Pallet::batch_all`]."] - }, - { - "name": "dispatch_as", - "fields": [ - { - "name": "as_origin", - "type": 323, - "typeName": "Box" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 3, - "docs": ["See [`Pallet::dispatch_as`]."] - }, - { - "name": "force_batch", - "fields": [ - { - "name": "calls", - "type": 322, - "typeName": "Vec<::RuntimeCall>" - } - ], - "index": 4, - "docs": ["See [`Pallet::force_batch`]."] - }, - { - "name": "with_weight", - "fields": [ - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - }, - { - "name": "weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 5, - "docs": ["See [`Pallet::with_weight`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 322, - "type": { - "def": { - "sequence": { - "type": 305 - } - } - } - }, - { - "id": 323, - "type": { - "path": ["rococo_runtime", "OriginCaller"], - "def": { - "variant": { - "variants": [ - { - "name": "system", - "fields": [ - { - "type": 324, - "typeName": "frame_system::Origin" - } - ], - "index": 0 - }, - { - "name": "Council", - "fields": [ - { - "type": 325, - "typeName": "pallet_collective::Origin" - } - ], - "index": 14 - }, - { - "name": "TechnicalCommittee", - "fields": [ - { - "type": 326, - "typeName": "pallet_collective::Origin" - } - ], - "index": 15 - }, - { - "name": "ParachainsOrigin", - "fields": [ - { - "type": 327, - "typeName": "parachains_origin::Origin" - } - ], - "index": 50 - }, - { - "name": "XcmPallet", - "fields": [ - { - "type": 328, - "typeName": "pallet_xcm::Origin" - } - ], - "index": 99 - }, - { - "name": "Void", - "fields": [ - { - "type": 329, - "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::\n__private::Void" - } - ], - "index": 5 - } - ] - } - } - } - }, - { - "id": 324, - "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": 325, - "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": 326, - "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": 327, - "type": { - "path": [ - "polkadot_runtime_parachains", - "origin", - "pallet", - "Origin" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Parachain", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0 - } - ] - } - } - } - }, - { - "id": 328, - "type": { - "path": ["pallet_xcm", "pallet", "Origin"], - "def": { - "variant": { - "variants": [ - { - "name": "Xcm", - "fields": [ - { - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 0 - }, - { - "name": "Response", - "fields": [ - { - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 329, - "type": { - "path": ["sp_core", "Void"], - "def": { - "variant": {} - } - } - }, - { - "id": 330, - "type": { - "path": ["pallet_identity", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "add_registrar", - "fields": [ - { - "name": "account", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::add_registrar`]."] - }, - { - "name": "set_identity", - "fields": [ - { - "name": "info", - "type": 331, - "typeName": "Box>" - } - ], - "index": 1, - "docs": ["See [`Pallet::set_identity`]."] - }, - { - "name": "set_subs", - "fields": [ - { - "name": "subs", - "type": 364, - "typeName": "Vec<(T::AccountId, Data)>" - } - ], - "index": 2, - "docs": ["See [`Pallet::set_subs`]."] - }, - { - "name": "clear_identity", - "index": 3, - "docs": ["See [`Pallet::clear_identity`]."] - }, - { - "name": "request_judgement", - "fields": [ - { - "name": "reg_index", - "type": 122, - "typeName": "RegistrarIndex" - }, - { - "name": "max_fee", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 4, - "docs": ["See [`Pallet::request_judgement`]."] - }, - { - "name": "cancel_request", - "fields": [ - { - "name": "reg_index", - "type": 4, - "typeName": "RegistrarIndex" - } - ], - "index": 5, - "docs": ["See [`Pallet::cancel_request`]."] - }, - { - "name": "set_fee", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "RegistrarIndex" - }, - { - "name": "fee", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 6, - "docs": ["See [`Pallet::set_fee`]."] - }, - { - "name": "set_account_id", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "RegistrarIndex" - }, - { - "name": "new", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 7, - "docs": ["See [`Pallet::set_account_id`]."] - }, - { - "name": "set_fields", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "RegistrarIndex" - }, - { - "name": "fields", - "type": 366, - "typeName": "IdentityFields" - } - ], - "index": 8, - "docs": ["See [`Pallet::set_fields`]."] - }, - { - "name": "provide_judgement", - "fields": [ - { - "name": "reg_index", - "type": 122, - "typeName": "RegistrarIndex" - }, - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "judgement", - "type": 368, - "typeName": "Judgement>" - }, - { - "name": "identity", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 9, - "docs": ["See [`Pallet::provide_judgement`]."] - }, - { - "name": "kill_identity", - "fields": [ - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 10, - "docs": ["See [`Pallet::kill_identity`]."] - }, - { - "name": "add_sub", - "fields": [ - { - "name": "sub", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "data", - "type": 334, - "typeName": "Data" - } - ], - "index": 11, - "docs": ["See [`Pallet::add_sub`]."] - }, - { - "name": "rename_sub", - "fields": [ - { - "name": "sub", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "data", - "type": 334, - "typeName": "Data" - } - ], - "index": 12, - "docs": ["See [`Pallet::rename_sub`]."] - }, - { - "name": "remove_sub", - "fields": [ - { - "name": "sub", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 13, - "docs": ["See [`Pallet::remove_sub`]."] - }, - { - "name": "quit_sub", - "index": 14, - "docs": ["See [`Pallet::quit_sub`]."] - } - ] - } - }, - "docs": ["Identity pallet declaration."] - } - }, - { - "id": 331, - "type": { - "path": ["pallet_identity", "types", "IdentityInfo"], - "params": [ - { - "name": "FieldLimit", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "additional", - "type": 332, - "typeName": "BoundedVec<(Data, Data), FieldLimit>" - }, - { - "name": "display", - "type": 334, - "typeName": "Data" - }, - { - "name": "legal", - "type": 334, - "typeName": "Data" - }, - { - "name": "web", - "type": 334, - "typeName": "Data" - }, - { - "name": "riot", - "type": 334, - "typeName": "Data" - }, - { - "name": "email", - "type": 334, - "typeName": "Data" - }, - { - "name": "pgp_fingerprint", - "type": 363, - "typeName": "Option<[u8; 20]>" - }, - { - "name": "image", - "type": 334, - "typeName": "Data" - }, - { - "name": "twitter", - "type": 334, - "typeName": "Data" - } - ] - } - } - } - }, - { - "id": 332, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 333 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 362, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 333, - "type": { - "def": { - "tuple": [334, 334] - } - } - }, - { - "id": 334, - "type": { - "path": ["pallet_identity", "types", "Data"], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Raw0", - "fields": [ - { - "type": 335 - } - ], - "index": 1 - }, - { - "name": "Raw1", - "fields": [ - { - "type": 336 - } - ], - "index": 2 - }, - { - "name": "Raw2", - "fields": [ - { - "type": 266 - } - ], - "index": 3 - }, - { - "name": "Raw3", - "fields": [ - { - "type": 337 - } - ], - "index": 4 - }, - { - "name": "Raw4", - "fields": [ - { - "type": 17 - } - ], - "index": 5 - }, - { - "name": "Raw5", - "fields": [ - { - "type": 338 - } - ], - "index": 6 - }, - { - "name": "Raw6", - "fields": [ - { - "type": 339 - } - ], - "index": 7 - }, - { - "name": "Raw7", - "fields": [ - { - "type": 340 - } - ], - "index": 8 - }, - { - "name": "Raw8", - "fields": [ - { - "type": 137 - } - ], - "index": 9 - }, - { - "name": "Raw9", - "fields": [ - { - "type": 341 - } - ], - "index": 10 - }, - { - "name": "Raw10", - "fields": [ - { - "type": 342 - } - ], - "index": 11 - }, - { - "name": "Raw11", - "fields": [ - { - "type": 343 - } - ], - "index": 12 - }, - { - "name": "Raw12", - "fields": [ - { - "type": 344 - } - ], - "index": 13 - }, - { - "name": "Raw13", - "fields": [ - { - "type": 345 - } - ], - "index": 14 - }, - { - "name": "Raw14", - "fields": [ - { - "type": 346 - } - ], - "index": 15 - }, - { - "name": "Raw15", - "fields": [ - { - "type": 347 - } - ], - "index": 16 - }, - { - "name": "Raw16", - "fields": [ - { - "type": 35 - } - ], - "index": 17 - }, - { - "name": "Raw17", - "fields": [ - { - "type": 348 - } - ], - "index": 18 - }, - { - "name": "Raw18", - "fields": [ - { - "type": 349 - } - ], - "index": 19 - }, - { - "name": "Raw19", - "fields": [ - { - "type": 350 - } - ], - "index": 20 - }, - { - "name": "Raw20", - "fields": [ - { - "type": 64 - } - ], - "index": 21 - }, - { - "name": "Raw21", - "fields": [ - { - "type": 351 - } - ], - "index": 22 - }, - { - "name": "Raw22", - "fields": [ - { - "type": 352 - } - ], - "index": 23 - }, - { - "name": "Raw23", - "fields": [ - { - "type": 353 - } - ], - "index": 24 - }, - { - "name": "Raw24", - "fields": [ - { - "type": 354 - } - ], - "index": 25 - }, - { - "name": "Raw25", - "fields": [ - { - "type": 355 - } - ], - "index": 26 - }, - { - "name": "Raw26", - "fields": [ - { - "type": 356 - } - ], - "index": 27 - }, - { - "name": "Raw27", - "fields": [ - { - "type": 357 - } - ], - "index": 28 - }, - { - "name": "Raw28", - "fields": [ - { - "type": 358 - } - ], - "index": 29 - }, - { - "name": "Raw29", - "fields": [ - { - "type": 359 - } - ], - "index": 30 - }, - { - "name": "Raw30", - "fields": [ - { - "type": 360 - } - ], - "index": 31 - }, - { - "name": "Raw31", - "fields": [ - { - "type": 361 - } - ], - "index": 32 - }, - { - "name": "Raw32", - "fields": [ - { - "type": 1 - } - ], - "index": 33 - }, - { - "name": "BlakeTwo256", - "fields": [ - { - "type": 1 - } - ], - "index": 34 - }, - { - "name": "Sha256", - "fields": [ - { - "type": 1 - } - ], - "index": 35 - }, - { - "name": "Keccak256", - "fields": [ - { - "type": 1 - } - ], - "index": 36 - }, - { - "name": "ShaThree256", - "fields": [ - { - "type": 1 - } - ], - "index": 37 - } - ] - } - } - } - }, - { - "id": 335, - "type": { - "def": { - "array": { - "len": 0, - "type": 2 - } - } - } - }, - { - "id": 336, - "type": { - "def": { - "array": { - "len": 1, - "type": 2 - } - } - } - }, - { - "id": 337, - "type": { - "def": { - "array": { - "len": 3, - "type": 2 - } - } - } - }, - { - "id": 338, - "type": { - "def": { - "array": { - "len": 5, - "type": 2 - } - } - } - }, - { - "id": 339, - "type": { - "def": { - "array": { - "len": 6, - "type": 2 - } - } - } - }, - { - "id": 340, - "type": { - "def": { - "array": { - "len": 7, - "type": 2 - } - } - } - }, - { - "id": 341, - "type": { - "def": { - "array": { - "len": 9, - "type": 2 - } - } - } - }, - { - "id": 342, - "type": { - "def": { - "array": { - "len": 10, - "type": 2 - } - } - } - }, - { - "id": 343, - "type": { - "def": { - "array": { - "len": 11, - "type": 2 - } - } - } - }, - { - "id": 344, - "type": { - "def": { - "array": { - "len": 12, - "type": 2 - } - } - } - }, - { - "id": 345, - "type": { - "def": { - "array": { - "len": 13, - "type": 2 - } - } - } - }, - { - "id": 346, - "type": { - "def": { - "array": { - "len": 14, - "type": 2 - } - } - } - }, - { - "id": 347, - "type": { - "def": { - "array": { - "len": 15, - "type": 2 - } - } - } - }, - { - "id": 348, - "type": { - "def": { - "array": { - "len": 17, - "type": 2 - } - } - } - }, - { - "id": 349, - "type": { - "def": { - "array": { - "len": 18, - "type": 2 - } - } - } - }, - { - "id": 350, - "type": { - "def": { - "array": { - "len": 19, - "type": 2 - } - } - } - }, - { - "id": 351, - "type": { - "def": { - "array": { - "len": 21, - "type": 2 - } - } - } - }, - { - "id": 352, - "type": { - "def": { - "array": { - "len": 22, - "type": 2 - } - } - } - }, - { - "id": 353, - "type": { - "def": { - "array": { - "len": 23, - "type": 2 - } - } - } - }, - { - "id": 354, - "type": { - "def": { - "array": { - "len": 24, - "type": 2 - } - } - } - }, - { - "id": 355, - "type": { - "def": { - "array": { - "len": 25, - "type": 2 - } - } - } - }, - { - "id": 356, - "type": { - "def": { - "array": { - "len": 26, - "type": 2 - } - } - } - }, - { - "id": 357, - "type": { - "def": { - "array": { - "len": 27, - "type": 2 - } - } - } - }, - { - "id": 358, - "type": { - "def": { - "array": { - "len": 28, - "type": 2 - } - } - } - }, - { - "id": 359, - "type": { - "def": { - "array": { - "len": 29, - "type": 2 - } - } - } - }, - { - "id": 360, - "type": { - "def": { - "array": { - "len": 30, - "type": 2 - } - } - } - }, - { - "id": 361, - "type": { - "def": { - "array": { - "len": 31, - "type": 2 - } - } - } - }, - { - "id": 362, - "type": { - "def": { - "sequence": { - "type": 333 - } - } - } - }, - { - "id": 363, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 64 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 64 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 364, - "type": { - "def": { - "sequence": { - "type": 365 - } - } - } - }, - { - "id": 365, - "type": { - "def": { - "tuple": [0, 334] - } - } - }, - { - "id": 366, - "type": { - "path": ["pallet_identity", "types", "BitFlags"], - "params": [ - { - "name": "T", - "type": 367 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 11, - "typeName": "IdentityField" - } - ] - } - } - } - }, - { - "id": 367, - "type": { - "path": ["pallet_identity", "types", "IdentityField"], - "def": { - "variant": { - "variants": [ - { - "name": "Display", - "index": 1 - }, - { - "name": "Legal", - "index": 2 - }, - { - "name": "Web", - "index": 4 - }, - { - "name": "Riot", - "index": 8 - }, - { - "name": "Email", - "index": 16 - }, - { - "name": "PgpFingerprint", - "index": 32 - }, - { - "name": "Image", - "index": 64 - }, - { - "name": "Twitter", - "index": 128 - } - ] - } - } - } - }, - { - "id": 368, - "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": 369, - "type": { - "path": ["pallet_society", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "bid", - "fields": [ - { - "name": "value", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::bid`]."] - }, - { - "name": "unbid", - "index": 1, - "docs": ["See [`Pallet::unbid`]."] - }, - { - "name": "vouch", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "tip", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": ["See [`Pallet::vouch`]."] - }, - { - "name": "unvouch", - "index": 3, - "docs": ["See [`Pallet::unvouch`]."] - }, - { - "name": "vote", - "fields": [ - { - "name": "candidate", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "approve", - "type": 54, - "typeName": "bool" - } - ], - "index": 4, - "docs": ["See [`Pallet::vote`]."] - }, - { - "name": "defender_vote", - "fields": [ - { - "name": "approve", - "type": 54, - "typeName": "bool" - } - ], - "index": 5, - "docs": ["See [`Pallet::defender_vote`]."] - }, - { - "name": "payout", - "index": 6, - "docs": ["See [`Pallet::payout`]."] - }, - { - "name": "waive_repay", - "fields": [ - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 7, - "docs": ["See [`Pallet::waive_repay`]."] - }, - { - "name": "found_society", - "fields": [ - { - "name": "founder", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "max_members", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_intake", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_strikes", - "type": 4, - "typeName": "u32" - }, - { - "name": "candidate_deposit", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "rules", - "type": 13, - "typeName": "Vec" - } - ], - "index": 8, - "docs": ["See [`Pallet::found_society`]."] - }, - { - "name": "dissolve", - "index": 9, - "docs": ["See [`Pallet::dissolve`]."] - }, - { - "name": "judge_suspended_member", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "forgive", - "type": 54, - "typeName": "bool" - } - ], - "index": 10, - "docs": ["See [`Pallet::judge_suspended_member`]."] - }, - { - "name": "set_parameters", - "fields": [ - { - "name": "max_members", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_intake", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_strikes", - "type": 4, - "typeName": "u32" - }, - { - "name": "candidate_deposit", - "type": 6, - "typeName": "BalanceOf" - } - ], - "index": 11, - "docs": ["See [`Pallet::set_parameters`]."] - }, - { - "name": "punish_skeptic", - "index": 12, - "docs": ["See [`Pallet::punish_skeptic`]."] - }, - { - "name": "claim_membership", - "index": 13, - "docs": ["See [`Pallet::claim_membership`]."] - }, - { - "name": "bestow_membership", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 14, - "docs": ["See [`Pallet::bestow_membership`]."] - }, - { - "name": "kick_candidate", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 15, - "docs": ["See [`Pallet::kick_candidate`]."] - }, - { - "name": "resign_candidacy", - "index": 16, - "docs": ["See [`Pallet::resign_candidacy`]."] - }, - { - "name": "drop_candidate", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - } - ], - "index": 17, - "docs": ["See [`Pallet::drop_candidate`]."] - }, - { - "name": "cleanup_candidacy", - "fields": [ - { - "name": "candidate", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "max", - "type": 4, - "typeName": "u32" - } - ], - "index": 18, - "docs": ["See [`Pallet::cleanup_candidacy`]."] - }, - { - "name": "cleanup_challenge", - "fields": [ - { - "name": "challenge_round", - "type": 4, - "typeName": "RoundIndex" - }, - { - "name": "max", - "type": 4, - "typeName": "u32" - } - ], - "index": 19, - "docs": ["See [`Pallet::cleanup_challenge`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 370, - "type": { - "path": ["pallet_recovery", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "as_recovered", - "fields": [ - { - "name": "account", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::as_recovered`]."] - }, - { - "name": "set_recovered", - "fields": [ - { - "name": "lost", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "rescuer", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 1, - "docs": ["See [`Pallet::set_recovered`]."] - }, - { - "name": "create_recovery", - "fields": [ - { - "name": "friends", - "type": 68, - "typeName": "Vec" - }, - { - "name": "threshold", - "type": 77, - "typeName": "u16" - }, - { - "name": "delay_period", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::create_recovery`]."] - }, - { - "name": "initiate_recovery", - "fields": [ - { - "name": "account", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 3, - "docs": ["See [`Pallet::initiate_recovery`]."] - }, - { - "name": "vouch_recovery", - "fields": [ - { - "name": "lost", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "rescuer", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 4, - "docs": ["See [`Pallet::vouch_recovery`]."] - }, - { - "name": "claim_recovery", - "fields": [ - { - "name": "account", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 5, - "docs": ["See [`Pallet::claim_recovery`]."] - }, - { - "name": "close_recovery", - "fields": [ - { - "name": "rescuer", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 6, - "docs": ["See [`Pallet::close_recovery`]."] - }, - { - "name": "remove_recovery", - "index": 7, - "docs": ["See [`Pallet::remove_recovery`]."] - }, - { - "name": "cancel_recovered", - "fields": [ - { - "name": "account", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 8, - "docs": ["See [`Pallet::cancel_recovered`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 371, - "type": { - "path": ["pallet_vesting", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "vest", - "index": 0, - "docs": ["See [`Pallet::vest`]."] - }, - { - "name": "vest_other", - "fields": [ - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 1, - "docs": ["See [`Pallet::vest_other`]."] - }, - { - "name": "vested_transfer", - "fields": [ - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "schedule", - "type": 372, - "typeName": "VestingInfo, BlockNumberFor>" - } - ], - "index": 2, - "docs": ["See [`Pallet::vested_transfer`]."] - }, - { - "name": "force_vested_transfer", - "fields": [ - { - "name": "source", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "target", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "schedule", - "type": 372, - "typeName": "VestingInfo, BlockNumberFor>" - } - ], - "index": 3, - "docs": ["See [`Pallet::force_vested_transfer`]."] - }, - { - "name": "merge_schedules", - "fields": [ - { - "name": "schedule1_index", - "type": 4, - "typeName": "u32" - }, - { - "name": "schedule2_index", - "type": 4, - "typeName": "u32" - } - ], - "index": 4, - "docs": ["See [`Pallet::merge_schedules`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 372, - "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": 373, - "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": 374, - "typeName": "Option>>" - }, - { - "name": "priority", - "type": 2, - "typeName": "schedule::Priority" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::schedule`]."] - }, - { - "name": "cancel", - "fields": [ - { - "name": "when", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "index", - "type": 4, - "typeName": "u32" - } - ], - "index": 1, - "docs": ["See [`Pallet::cancel`]."] - }, - { - "name": "schedule_named", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "TaskName" - }, - { - "name": "when", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "maybe_periodic", - "type": 374, - "typeName": "Option>>" - }, - { - "name": "priority", - "type": 2, - "typeName": "schedule::Priority" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 2, - "docs": ["See [`Pallet::schedule_named`]."] - }, - { - "name": "cancel_named", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "TaskName" - } - ], - "index": 3, - "docs": ["See [`Pallet::cancel_named`]."] - }, - { - "name": "schedule_after", - "fields": [ - { - "name": "after", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "maybe_periodic", - "type": 374, - "typeName": "Option>>" - }, - { - "name": "priority", - "type": 2, - "typeName": "schedule::Priority" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 4, - "docs": ["See [`Pallet::schedule_after`]."] - }, - { - "name": "schedule_named_after", - "fields": [ - { - "name": "id", - "type": 1, - "typeName": "TaskName" - }, - { - "name": "after", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "maybe_periodic", - "type": 374, - "typeName": "Option>>" - }, - { - "name": "priority", - "type": 2, - "typeName": "schedule::Priority" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 5, - "docs": ["See [`Pallet::schedule_named_after`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 374, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 73 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 73 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 375, - "type": { - "path": ["pallet_proxy", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "proxy", - "fields": [ - { - "name": "real", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "force_proxy_type", - "type": 376, - "typeName": "Option" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::proxy`]."] - }, - { - "name": "add_proxy", - "fields": [ - { - "name": "delegate", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "proxy_type", - "type": 76, - "typeName": "T::ProxyType" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 1, - "docs": ["See [`Pallet::add_proxy`]."] - }, - { - "name": "remove_proxy", - "fields": [ - { - "name": "delegate", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "proxy_type", - "type": 76, - "typeName": "T::ProxyType" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::remove_proxy`]."] - }, - { - "name": "remove_proxies", - "index": 3, - "docs": ["See [`Pallet::remove_proxies`]."] - }, - { - "name": "create_pure", - "fields": [ - { - "name": "proxy_type", - "type": 76, - "typeName": "T::ProxyType" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumberFor" - }, - { - "name": "index", - "type": 77, - "typeName": "u16" - } - ], - "index": 4, - "docs": ["See [`Pallet::create_pure`]."] - }, - { - "name": "kill_pure", - "fields": [ - { - "name": "spawner", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "proxy_type", - "type": 76, - "typeName": "T::ProxyType" - }, - { - "name": "index", - "type": 77, - "typeName": "u16" - }, - { - "name": "height", - "type": 122, - "typeName": "BlockNumberFor" - }, - { - "name": "ext_index", - "type": 122, - "typeName": "u32" - } - ], - "index": 5, - "docs": ["See [`Pallet::kill_pure`]."] - }, - { - "name": "announce", - "fields": [ - { - "name": "real", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "call_hash", - "type": 12, - "typeName": "CallHashOf" - } - ], - "index": 6, - "docs": ["See [`Pallet::announce`]."] - }, - { - "name": "remove_announcement", - "fields": [ - { - "name": "real", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "call_hash", - "type": 12, - "typeName": "CallHashOf" - } - ], - "index": 7, - "docs": ["See [`Pallet::remove_announcement`]."] - }, - { - "name": "reject_announcement", - "fields": [ - { - "name": "delegate", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "call_hash", - "type": 12, - "typeName": "CallHashOf" - } - ], - "index": 8, - "docs": ["See [`Pallet::reject_announcement`]."] - }, - { - "name": "proxy_announced", - "fields": [ - { - "name": "delegate", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "real", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "force_proxy_type", - "type": 376, - "typeName": "Option" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 9, - "docs": ["See [`Pallet::proxy_announced`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 376, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 76 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 76 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 377, - "type": { - "path": ["pallet_multisig", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "as_multi_threshold_1", - "fields": [ - { - "name": "other_signatories", - "type": 68, - "typeName": "Vec" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::as_multi_threshold_1`]."] - }, - { - "name": "as_multi", - "fields": [ - { - "name": "threshold", - "type": 77, - "typeName": "u16" - }, - { - "name": "other_signatories", - "type": 68, - "typeName": "Vec" - }, - { - "name": "maybe_timepoint", - "type": 378, - "typeName": "Option>>" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 1, - "docs": ["See [`Pallet::as_multi`]."] - }, - { - "name": "approve_as_multi", - "fields": [ - { - "name": "threshold", - "type": 77, - "typeName": "u16" - }, - { - "name": "other_signatories", - "type": 68, - "typeName": "Vec" - }, - { - "name": "maybe_timepoint", - "type": 378, - "typeName": "Option>>" - }, - { - "name": "call_hash", - "type": 1, - "typeName": "[u8; 32]" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 2, - "docs": ["See [`Pallet::approve_as_multi`]."] - }, - { - "name": "cancel_as_multi", - "fields": [ - { - "name": "threshold", - "type": 77, - "typeName": "u16" - }, - { - "name": "other_signatories", - "type": 68, - "typeName": "Vec" - }, - { - "name": "timepoint", - "type": 79, - "typeName": "Timepoint>" - }, - { - "name": "call_hash", - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 3, - "docs": ["See [`Pallet::cancel_as_multi`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 378, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 79 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 79 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 379, - "type": { - "path": ["pallet_preimage", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "note_preimage", - "fields": [ - { - "name": "bytes", - "type": 13, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::note_preimage`]."] - }, - { - "name": "unnote_preimage", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 1, - "docs": ["See [`Pallet::unnote_preimage`]."] - }, - { - "name": "request_preimage", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 2, - "docs": ["See [`Pallet::request_preimage`]."] - }, - { - "name": "unrequest_preimage", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 3, - "docs": ["See [`Pallet::unrequest_preimage`]."] - }, - { - "name": "ensure_updated", - "fields": [ - { - "name": "hashes", - "type": 178, - "typeName": "Vec" - } - ], - "index": 4, - "docs": ["See [`Pallet::ensure_updated`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 380, - "type": { - "path": ["pallet_bounties", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "propose_bounty", - "fields": [ - { - "name": "value", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "description", - "type": 13, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::propose_bounty`]."] - }, - { - "name": "approve_bounty", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 1, - "docs": ["See [`Pallet::approve_bounty`]."] - }, - { - "name": "propose_curator", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "curator", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "fee", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": ["See [`Pallet::propose_curator`]."] - }, - { - "name": "unassign_curator", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 3, - "docs": ["See [`Pallet::unassign_curator`]."] - }, - { - "name": "accept_curator", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 4, - "docs": ["See [`Pallet::accept_curator`]."] - }, - { - "name": "award_bounty", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "beneficiary", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 5, - "docs": ["See [`Pallet::award_bounty`]."] - }, - { - "name": "claim_bounty", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 6, - "docs": ["See [`Pallet::claim_bounty`]."] - }, - { - "name": "close_bounty", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 7, - "docs": ["See [`Pallet::close_bounty`]."] - }, - { - "name": "extend_bounty_expiry", - "fields": [ - { - "name": "bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "remark", - "type": 13, - "typeName": "Vec" - } - ], - "index": 8, - "docs": ["See [`Pallet::extend_bounty_expiry`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 381, - "type": { - "path": ["pallet_child_bounties", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "add_child_bounty", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "value", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "description", - "type": 13, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::add_child_bounty`]."] - }, - { - "name": "propose_curator", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "curator", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "fee", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": ["See [`Pallet::propose_curator`]."] - }, - { - "name": "accept_curator", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 2, - "docs": ["See [`Pallet::accept_curator`]."] - }, - { - "name": "unassign_curator", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 3, - "docs": ["See [`Pallet::unassign_curator`]."] - }, - { - "name": "award_child_bounty", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "beneficiary", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 4, - "docs": ["See [`Pallet::award_child_bounty`]."] - }, - { - "name": "claim_child_bounty", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 5, - "docs": ["See [`Pallet::claim_child_bounty`]."] - }, - { - "name": "close_child_bounty", - "fields": [ - { - "name": "parent_bounty_id", - "type": 122, - "typeName": "BountyIndex" - }, - { - "name": "child_bounty_id", - "type": 122, - "typeName": "BountyIndex" - } - ], - "index": 6, - "docs": ["See [`Pallet::close_child_bounty`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 382, - "type": { - "path": ["pallet_tips", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "report_awesome", - "fields": [ - { - "name": "reason", - "type": 13, - "typeName": "Vec" - }, - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::report_awesome`]."] - }, - { - "name": "retract_tip", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 1, - "docs": ["See [`Pallet::retract_tip`]."] - }, - { - "name": "tip_new", - "fields": [ - { - "name": "reason", - "type": 13, - "typeName": "Vec" - }, - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "tip_value", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 2, - "docs": ["See [`Pallet::tip_new`]."] - }, - { - "name": "tip", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - }, - { - "name": "tip_value", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 3, - "docs": ["See [`Pallet::tip`]."] - }, - { - "name": "close_tip", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 4, - "docs": ["See [`Pallet::close_tip`]."] - }, - { - "name": "slash_tip", - "fields": [ - { - "name": "hash", - "type": 12, - "typeName": "T::Hash" - } - ], - "index": 5, - "docs": ["See [`Pallet::slash_tip`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 383, - "type": { - "path": ["pallet_nis", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "place_bid", - "fields": [ - { - "name": "amount", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "duration", - "type": 4, - "typeName": "u32" - } - ], - "index": 0, - "docs": ["See [`Pallet::place_bid`]."] - }, - { - "name": "retract_bid", - "fields": [ - { - "name": "amount", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "duration", - "type": 4, - "typeName": "u32" - } - ], - "index": 1, - "docs": ["See [`Pallet::retract_bid`]."] - }, - { - "name": "fund_deficit", - "index": 2, - "docs": ["See [`Pallet::fund_deficit`]."] - }, - { - "name": "thaw_private", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "ReceiptIndex" - }, - { - "name": "maybe_proportion", - "type": 384, - "typeName": "Option" - } - ], - "index": 3, - "docs": ["See [`Pallet::thaw_private`]."] - }, - { - "name": "thaw_communal", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "ReceiptIndex" - } - ], - "index": 4, - "docs": ["See [`Pallet::thaw_communal`]."] - }, - { - "name": "communify", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "ReceiptIndex" - } - ], - "index": 5, - "docs": ["See [`Pallet::communify`]."] - }, - { - "name": "privatize", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "ReceiptIndex" - } - ], - "index": 6, - "docs": ["See [`Pallet::privatize`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 384, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 85 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 85 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 385, - "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": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 0, - "docs": ["See [`Pallet::transfer_allow_death`]."] - }, - { - "name": "force_transfer", - "fields": [ - { - "name": "source", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 2, - "docs": ["See [`Pallet::force_transfer`]."] - }, - { - "name": "transfer_keep_alive", - "fields": [ - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "value", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 3, - "docs": ["See [`Pallet::transfer_keep_alive`]."] - }, - { - "name": "transfer_all", - "fields": [ - { - "name": "dest", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "keep_alive", - "type": 54, - "typeName": "bool" - } - ], - "index": 4, - "docs": ["See [`Pallet::transfer_all`]."] - }, - { - "name": "force_unreserve", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "amount", - "type": 6, - "typeName": "T::Balance" - } - ], - "index": 5, - "docs": ["See [`Pallet::force_unreserve`]."] - }, - { - "name": "upgrade_accounts", - "fields": [ - { - "name": "who", - "type": 68, - "typeName": "Vec" - } - ], - "index": 6, - "docs": ["See [`Pallet::upgrade_accounts`]."] - }, - { - "name": "force_set_balance", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "new_free", - "type": 125, - "typeName": "T::Balance" - } - ], - "index": 8, - "docs": ["See [`Pallet::force_set_balance`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 386, - "type": { - "path": [ - "polkadot_runtime_parachains", - "configuration", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "set_validation_upgrade_cooldown", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 0, - "docs": [ - "See [`Pallet::set_validation_upgrade_cooldown`]." - ] - }, - { - "name": "set_validation_upgrade_delay", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 1, - "docs": ["See [`Pallet::set_validation_upgrade_delay`]."] - }, - { - "name": "set_code_retention_period", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::set_code_retention_period`]."] - }, - { - "name": "set_max_code_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": ["See [`Pallet::set_max_code_size`]."] - }, - { - "name": "set_max_pov_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 4, - "docs": ["See [`Pallet::set_max_pov_size`]."] - }, - { - "name": "set_max_head_data_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 5, - "docs": ["See [`Pallet::set_max_head_data_size`]."] - }, - { - "name": "set_on_demand_cores", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 6, - "docs": ["See [`Pallet::set_on_demand_cores`]."] - }, - { - "name": "set_on_demand_retries", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 7, - "docs": ["See [`Pallet::set_on_demand_retries`]."] - }, - { - "name": "set_group_rotation_frequency", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 8, - "docs": ["See [`Pallet::set_group_rotation_frequency`]."] - }, - { - "name": "set_paras_availability_period", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 9, - "docs": ["See [`Pallet::set_paras_availability_period`]."] - }, - { - "name": "set_scheduling_lookahead", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 11, - "docs": ["See [`Pallet::set_scheduling_lookahead`]."] - }, - { - "name": "set_max_validators_per_core", - "fields": [ - { - "name": "new", - "type": 255, - "typeName": "Option" - } - ], - "index": 12, - "docs": ["See [`Pallet::set_max_validators_per_core`]."] - }, - { - "name": "set_max_validators", - "fields": [ - { - "name": "new", - "type": 255, - "typeName": "Option" - } - ], - "index": 13, - "docs": ["See [`Pallet::set_max_validators`]."] - }, - { - "name": "set_dispute_period", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "SessionIndex" - } - ], - "index": 14, - "docs": ["See [`Pallet::set_dispute_period`]."] - }, - { - "name": "set_dispute_post_conclusion_acceptance_period", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 15, - "docs": [ - "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]." - ] - }, - { - "name": "set_no_show_slots", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 18, - "docs": ["See [`Pallet::set_no_show_slots`]."] - }, - { - "name": "set_n_delay_tranches", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 19, - "docs": ["See [`Pallet::set_n_delay_tranches`]."] - }, - { - "name": "set_zeroth_delay_tranche_width", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 20, - "docs": [ - "See [`Pallet::set_zeroth_delay_tranche_width`]." - ] - }, - { - "name": "set_needed_approvals", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 21, - "docs": ["See [`Pallet::set_needed_approvals`]."] - }, - { - "name": "set_relay_vrf_modulo_samples", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 22, - "docs": ["See [`Pallet::set_relay_vrf_modulo_samples`]."] - }, - { - "name": "set_max_upward_queue_count", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 23, - "docs": ["See [`Pallet::set_max_upward_queue_count`]."] - }, - { - "name": "set_max_upward_queue_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 24, - "docs": ["See [`Pallet::set_max_upward_queue_size`]."] - }, - { - "name": "set_max_downward_message_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 25, - "docs": ["See [`Pallet::set_max_downward_message_size`]."] - }, - { - "name": "set_max_upward_message_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 27, - "docs": ["See [`Pallet::set_max_upward_message_size`]."] - }, - { - "name": "set_max_upward_message_num_per_candidate", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 28, - "docs": [ - "See [`Pallet::set_max_upward_message_num_per_candidate`]." - ] - }, - { - "name": "set_hrmp_open_request_ttl", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 29, - "docs": ["See [`Pallet::set_hrmp_open_request_ttl`]."] - }, - { - "name": "set_hrmp_sender_deposit", - "fields": [ - { - "name": "new", - "type": 6, - "typeName": "Balance" - } - ], - "index": 30, - "docs": ["See [`Pallet::set_hrmp_sender_deposit`]."] - }, - { - "name": "set_hrmp_recipient_deposit", - "fields": [ - { - "name": "new", - "type": 6, - "typeName": "Balance" - } - ], - "index": 31, - "docs": ["See [`Pallet::set_hrmp_recipient_deposit`]."] - }, - { - "name": "set_hrmp_channel_max_capacity", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 32, - "docs": ["See [`Pallet::set_hrmp_channel_max_capacity`]."] - }, - { - "name": "set_hrmp_channel_max_total_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 33, - "docs": [ - "See [`Pallet::set_hrmp_channel_max_total_size`]." - ] - }, - { - "name": "set_hrmp_max_parachain_inbound_channels", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 34, - "docs": [ - "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]." - ] - }, - { - "name": "set_hrmp_channel_max_message_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 36, - "docs": [ - "See [`Pallet::set_hrmp_channel_max_message_size`]." - ] - }, - { - "name": "set_hrmp_max_parachain_outbound_channels", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 37, - "docs": [ - "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]." - ] - }, - { - "name": "set_hrmp_max_message_num_per_candidate", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 39, - "docs": [ - "See [`Pallet::set_hrmp_max_message_num_per_candidate`]." - ] - }, - { - "name": "set_pvf_voting_ttl", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "SessionIndex" - } - ], - "index": 42, - "docs": ["See [`Pallet::set_pvf_voting_ttl`]."] - }, - { - "name": "set_minimum_validation_upgrade_delay", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 43, - "docs": [ - "See [`Pallet::set_minimum_validation_upgrade_delay`]." - ] - }, - { - "name": "set_bypass_consistency_check", - "fields": [ - { - "name": "new", - "type": 54, - "typeName": "bool" - } - ], - "index": 44, - "docs": ["See [`Pallet::set_bypass_consistency_check`]."] - }, - { - "name": "set_async_backing_params", - "fields": [ - { - "name": "new", - "type": 387, - "typeName": "AsyncBackingParams" - } - ], - "index": 45, - "docs": ["See [`Pallet::set_async_backing_params`]."] - }, - { - "name": "set_executor_params", - "fields": [ - { - "name": "new", - "type": 388, - "typeName": "ExecutorParams" - } - ], - "index": 46, - "docs": ["See [`Pallet::set_executor_params`]."] - }, - { - "name": "set_on_demand_base_fee", - "fields": [ - { - "name": "new", - "type": 6, - "typeName": "Balance" - } - ], - "index": 47, - "docs": ["See [`Pallet::set_on_demand_base_fee`]."] - }, - { - "name": "set_on_demand_fee_variability", - "fields": [ - { - "name": "new", - "type": 393, - "typeName": "Perbill" - } - ], - "index": 48, - "docs": ["See [`Pallet::set_on_demand_fee_variability`]."] - }, - { - "name": "set_on_demand_queue_max_size", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 49, - "docs": ["See [`Pallet::set_on_demand_queue_max_size`]."] - }, - { - "name": "set_on_demand_target_queue_utilization", - "fields": [ - { - "name": "new", - "type": 393, - "typeName": "Perbill" - } - ], - "index": 50, - "docs": [ - "See [`Pallet::set_on_demand_target_queue_utilization`]." - ] - }, - { - "name": "set_on_demand_ttl", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 51, - "docs": ["See [`Pallet::set_on_demand_ttl`]."] - }, - { - "name": "set_minimum_backing_votes", - "fields": [ - { - "name": "new", - "type": 4, - "typeName": "u32" - } - ], - "index": 52, - "docs": ["See [`Pallet::set_minimum_backing_votes`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 387, - "type": { - "path": ["polkadot_primitives", "vstaging", "AsyncBackingParams"], - "def": { - "composite": { - "fields": [ - { - "name": "max_candidate_depth", - "type": 4, - "typeName": "u32" - }, - { - "name": "allowed_ancestry_len", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 388, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "executor_params", - "ExecutorParams" - ], - "def": { - "composite": { - "fields": [ - { - "type": 389, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 389, - "type": { - "def": { - "sequence": { - "type": 390 - } - } - } - }, - { - "id": 390, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "executor_params", - "ExecutorParam" - ], - "def": { - "variant": { - "variants": [ - { - "name": "MaxMemoryPages", - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ], - "index": 1 - }, - { - "name": "StackLogicalMax", - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ], - "index": 2 - }, - { - "name": "StackNativeMax", - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ], - "index": 3 - }, - { - "name": "PrecheckingMaxMemory", - "fields": [ - { - "type": 11, - "typeName": "u64" - } - ], - "index": 4 - }, - { - "name": "PvfPrepTimeout", - "fields": [ - { - "type": 391, - "typeName": "PvfPrepTimeoutKind" - }, - { - "type": 11, - "typeName": "u64" - } - ], - "index": 5 - }, - { - "name": "PvfExecTimeout", - "fields": [ - { - "type": 392, - "typeName": "PvfExecTimeoutKind" - }, - { - "type": 11, - "typeName": "u64" - } - ], - "index": 6 - }, - { - "name": "WasmExtBulkMemory", - "index": 7 - } - ] - } - } - } - }, - { - "id": 391, - "type": { - "path": ["polkadot_primitives", "v5", "PvfPrepTimeoutKind"], - "def": { - "variant": { - "variants": [ - { - "name": "Precheck", - "index": 0 - }, - { - "name": "Lenient", - "index": 1 - } - ] - } - } - } - }, - { - "id": 392, - "type": { - "path": ["polkadot_primitives", "v5", "PvfExecTimeoutKind"], - "def": { - "variant": { - "variants": [ - { - "name": "Backing", - "index": 0 - }, - { - "name": "Approval", - "index": 1 - } - ] - } - } - } - }, - { - "id": 393, - "type": { - "path": ["sp_arithmetic", "per_things", "Perbill"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 394, - "type": { - "path": [ - "polkadot_runtime_parachains", - "shared", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": {} - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 395, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": {} - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 396, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras_inherent", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "enter", - "fields": [ - { - "name": "data", - "type": 397, - "typeName": "ParachainsInherentData>" - } - ], - "index": 0, - "docs": ["See [`Pallet::enter`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 397, - "type": { - "path": ["polkadot_primitives", "v5", "InherentData"], - "params": [ - { - "name": "HDR", - "type": 220 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "bitfields", - "type": 398, - "typeName": "UncheckedSignedAvailabilityBitfields" - }, - { - "name": "backed_candidates", - "type": 405, - "typeName": "Vec>" - }, - { - "name": "disputes", - "type": 417, - "typeName": "MultiDisputeStatementSet" - }, - { - "name": "parent_header", - "type": 220, - "typeName": "HDR" - } - ] - } - } - } - }, - { - "id": 398, - "type": { - "def": { - "sequence": { - "type": 399 - } - } - } - }, - { - "id": 399, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "signed", - "UncheckedSigned" - ], - "params": [ - { - "name": "Payload", - "type": 400 - }, - { - "name": "RealPayload", - "type": 400 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "payload", - "type": 400, - "typeName": "Payload" - }, - { - "name": "validator_index", - "type": 403, - "typeName": "ValidatorIndex" - }, - { - "name": "signature", - "type": 404, - "typeName": "ValidatorSignature" - } - ] - } - } - } - }, - { - "id": 400, - "type": { - "path": ["polkadot_primitives", "v5", "AvailabilityBitfield"], - "def": { - "composite": { - "fields": [ - { - "type": 401, - "typeName": "BitVec" - } - ] - } - } - } - }, - { - "id": 401, - "type": { - "def": { - "bitsequence": { - "bit_store_type": 2, - "bit_order_type": 402 - } - } - } - }, - { - "id": 402, - "type": { - "path": ["bitvec", "order", "Lsb0"], - "def": { - "composite": {} - } - } - }, - { - "id": 403, - "type": { - "path": ["polkadot_primitives", "v5", "ValidatorIndex"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 404, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "validator_app", - "Signature" - ], - "def": { - "composite": { - "fields": [ - { - "type": 93, - "typeName": "sr25519::Signature" - } - ] - } - } - } - }, - { - "id": 405, - "type": { - "def": { - "sequence": { - "type": 406 - } - } - } - }, - { - "id": 406, - "type": { - "path": ["polkadot_primitives", "v5", "BackedCandidate"], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "candidate", - "type": 407, - "typeName": "CommittedCandidateReceipt" - }, - { - "name": "validity_votes", - "type": 415, - "typeName": "Vec" - }, - { - "name": "validator_indices", - "type": 401, - "typeName": "BitVec" - } - ] - } - } - } - }, - { - "id": 407, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "CommittedCandidateReceipt" - ], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "descriptor", - "type": 89, - "typeName": "CandidateDescriptor" - }, - { - "name": "commitments", - "type": 408, - "typeName": "CandidateCommitments" - } - ] - } - } - } - }, - { - "id": 408, - "type": { - "path": ["polkadot_primitives", "v5", "CandidateCommitments"], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "upward_messages", - "type": 409, - "typeName": "UpwardMessages" - }, - { - "name": "horizontal_messages", - "type": 410, - "typeName": "HorizontalMessages" - }, - { - "name": "new_validation_code", - "type": 413, - "typeName": "Option" - }, - { - "name": "head_data", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "processed_downward_messages", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_watermark", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 409, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 13 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 185, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 410, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 411 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 412, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 411, - "type": { - "path": ["polkadot_core_primitives", "OutboundHrmpMessage"], - "params": [ - { - "name": "Id", - "type": 90 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "recipient", - "type": 90, - "typeName": "Id" - }, - { - "name": "data", - "type": 13, - "typeName": "sp_std::vec::Vec" - } - ] - } - } - } - }, - { - "id": 412, - "type": { - "def": { - "sequence": { - "type": 411 - } - } - } - }, - { - "id": 413, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 414 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 414 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 414, - "type": { - "path": [ - "polkadot_parachain_primitives", - "primitives", - "ValidationCode" - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 415, - "type": { - "def": { - "sequence": { - "type": 416 - } - } - } - }, - { - "id": 416, - "type": { - "path": ["polkadot_primitives", "v5", "ValidityAttestation"], - "def": { - "variant": { - "variants": [ - { - "name": "Implicit", - "fields": [ - { - "type": 404, - "typeName": "ValidatorSignature" - } - ], - "index": 1 - }, - { - "name": "Explicit", - "fields": [ - { - "type": 404, - "typeName": "ValidatorSignature" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 417, - "type": { - "def": { - "sequence": { - "type": 418 - } - } - } - }, - { - "id": 418, - "type": { - "path": ["polkadot_primitives", "v5", "DisputeStatementSet"], - "def": { - "composite": { - "fields": [ - { - "name": "candidate_hash", - "type": 103, - "typeName": "CandidateHash" - }, - { - "name": "session", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "statements", - "type": 419, - "typeName": "Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>" - } - ] - } - } - } - }, - { - "id": 419, - "type": { - "def": { - "sequence": { - "type": 420 - } - } - } - }, - { - "id": 420, - "type": { - "def": { - "tuple": [421, 403, 404] - } - } - }, - { - "id": 421, - "type": { - "path": ["polkadot_primitives", "v5", "DisputeStatement"], - "def": { - "variant": { - "variants": [ - { - "name": "Valid", - "fields": [ - { - "type": 422, - "typeName": "ValidDisputeStatementKind" - } - ], - "index": 0 - }, - { - "name": "Invalid", - "fields": [ - { - "type": 423, - "typeName": "InvalidDisputeStatementKind" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 422, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "ValidDisputeStatementKind" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Explicit", - "index": 0 - }, - { - "name": "BackingSeconded", - "fields": [ - { - "type": 12, - "typeName": "Hash" - } - ], - "index": 1 - }, - { - "name": "BackingValid", - "fields": [ - { - "type": 12, - "typeName": "Hash" - } - ], - "index": 2 - }, - { - "name": "ApprovalChecking", - "index": 3 - } - ] - } - } - } - }, - { - "id": 423, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "InvalidDisputeStatementKind" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Explicit", - "index": 0 - } - ] - } - } - } - }, - { - "id": 424, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "force_set_current_code", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_code", - "type": 414, - "typeName": "ValidationCode" - } - ], - "index": 0, - "docs": ["See [`Pallet::force_set_current_code`]."] - }, - { - "name": "force_set_current_head", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_head", - "type": 96, - "typeName": "HeadData" - } - ], - "index": 1, - "docs": ["See [`Pallet::force_set_current_head`]."] - }, - { - "name": "force_schedule_code_upgrade", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_code", - "type": 414, - "typeName": "ValidationCode" - }, - { - "name": "relay_parent_number", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 2, - "docs": ["See [`Pallet::force_schedule_code_upgrade`]."] - }, - { - "name": "force_note_new_head", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_head", - "type": 96, - "typeName": "HeadData" - } - ], - "index": 3, - "docs": ["See [`Pallet::force_note_new_head`]."] - }, - { - "name": "force_queue_action", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 4, - "docs": ["See [`Pallet::force_queue_action`]."] - }, - { - "name": "add_trusted_validation_code", - "fields": [ - { - "name": "validation_code", - "type": 414, - "typeName": "ValidationCode" - } - ], - "index": 5, - "docs": ["See [`Pallet::add_trusted_validation_code`]."] - }, - { - "name": "poke_unused_validation_code", - "fields": [ - { - "name": "validation_code_hash", - "type": 95, - "typeName": "ValidationCodeHash" - } - ], - "index": 6, - "docs": ["See [`Pallet::poke_unused_validation_code`]."] - }, - { - "name": "include_pvf_check_statement", - "fields": [ - { - "name": "stmt", - "type": 425, - "typeName": "PvfCheckStatement" - }, - { - "name": "signature", - "type": 404, - "typeName": "ValidatorSignature" - } - ], - "index": 7, - "docs": ["See [`Pallet::include_pvf_check_statement`]."] - }, - { - "name": "force_set_most_recent_context", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "context", - "type": 4, - "typeName": "BlockNumberFor" - } - ], - "index": 8, - "docs": ["See [`Pallet::force_set_most_recent_context`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 425, - "type": { - "path": ["polkadot_primitives", "v5", "PvfCheckStatement"], - "def": { - "composite": { - "fields": [ - { - "name": "accept", - "type": 54, - "typeName": "bool" - }, - { - "name": "subject", - "type": 95, - "typeName": "ValidationCodeHash" - }, - { - "name": "session_index", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "validator_index", - "type": 403, - "typeName": "ValidatorIndex" - } - ] - } - } - } - }, - { - "id": 426, - "type": { - "path": [ - "polkadot_runtime_parachains", - "initializer", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "force_approve", - "fields": [ - { - "name": "up_to", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 0, - "docs": ["See [`Pallet::force_approve`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 427, - "type": { - "path": ["polkadot_runtime_parachains", "hrmp", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "hrmp_init_open_channel", - "fields": [ - { - "name": "recipient", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "proposed_max_capacity", - "type": 4, - "typeName": "u32" - }, - { - "name": "proposed_max_message_size", - "type": 4, - "typeName": "u32" - } - ], - "index": 0, - "docs": ["See [`Pallet::hrmp_init_open_channel`]."] - }, - { - "name": "hrmp_accept_open_channel", - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": ["See [`Pallet::hrmp_accept_open_channel`]."] - }, - { - "name": "hrmp_close_channel", - "fields": [ - { - "name": "channel_id", - "type": 101, - "typeName": "HrmpChannelId" - } - ], - "index": 2, - "docs": ["See [`Pallet::hrmp_close_channel`]."] - }, - { - "name": "force_clean_hrmp", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "inbound", - "type": 4, - "typeName": "u32" - }, - { - "name": "outbound", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": ["See [`Pallet::force_clean_hrmp`]."] - }, - { - "name": "force_process_hrmp_open", - "fields": [ - { - "name": "channels", - "type": 4, - "typeName": "u32" - } - ], - "index": 4, - "docs": ["See [`Pallet::force_process_hrmp_open`]."] - }, - { - "name": "force_process_hrmp_close", - "fields": [ - { - "name": "channels", - "type": 4, - "typeName": "u32" - } - ], - "index": 5, - "docs": ["See [`Pallet::force_process_hrmp_close`]."] - }, - { - "name": "hrmp_cancel_open_request", - "fields": [ - { - "name": "channel_id", - "type": 101, - "typeName": "HrmpChannelId" - }, - { - "name": "open_requests", - "type": 4, - "typeName": "u32" - } - ], - "index": 6, - "docs": ["See [`Pallet::hrmp_cancel_open_request`]."] - }, - { - "name": "force_open_hrmp_channel", - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "recipient", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "max_capacity", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 4, - "typeName": "u32" - } - ], - "index": 7, - "docs": ["See [`Pallet::force_open_hrmp_channel`]."] - }, - { - "name": "establish_system_channel", - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "recipient", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 8, - "docs": ["See [`Pallet::establish_system_channel`]."] - }, - { - "name": "poke_channel_deposits", - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "recipient", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 9, - "docs": ["See [`Pallet::poke_channel_deposits`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 428, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "force_unfreeze", - "index": 0, - "docs": ["See [`Pallet::force_unfreeze`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 429, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "slashing", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "report_dispute_lost_unsigned", - "fields": [ - { - "name": "dispute_proof", - "type": 430, - "typeName": "Box" - }, - { - "name": "key_owner_proof", - "type": 221, - "typeName": "T::KeyOwnerProof" - } - ], - "index": 0, - "docs": ["See [`Pallet::report_dispute_lost_unsigned`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 430, - "type": { - "path": ["polkadot_primitives", "v5", "slashing", "DisputeProof"], - "def": { - "composite": { - "fields": [ - { - "name": "time_slot", - "type": 431, - "typeName": "DisputesTimeSlot" - }, - { - "name": "kind", - "type": 432, - "typeName": "SlashingOffenceKind" - }, - { - "name": "validator_index", - "type": 403, - "typeName": "ValidatorIndex" - }, - { - "name": "validator_id", - "type": 272, - "typeName": "ValidatorId" - } - ] - } - } - } - }, - { - "id": 431, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "slashing", - "DisputesTimeSlot" - ], - "def": { - "composite": { - "fields": [ - { - "name": "session_index", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "candidate_hash", - "type": 103, - "typeName": "CandidateHash" - } - ] - } - } - } - }, - { - "id": 432, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "slashing", - "SlashingOffenceKind" - ], - "def": { - "variant": { - "variants": [ - { - "name": "ForInvalid", - "index": 0 - }, - { - "name": "AgainstValid", - "index": 1 - } - ] - } - } - } - }, - { - "id": 433, - "type": { - "path": ["pallet_message_queue", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "reap_page", - "fields": [ - { - "name": "message_origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "page_index", - "type": 4, - "typeName": "PageIndex" - } - ], - "index": 0, - "docs": ["See [`Pallet::reap_page`]."] - }, - { - "name": "execute_overweight", - "fields": [ - { - "name": "message_origin", - "type": 107, - "typeName": "MessageOriginOf" - }, - { - "name": "page", - "type": 4, - "typeName": "PageIndex" - }, - { - "name": "index", - "type": 4, - "typeName": "T::Size" - }, - { - "name": "weight_limit", - "type": 9, - "typeName": "Weight" - } - ], - "index": 1, - "docs": ["See [`Pallet::execute_overweight`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 434, - "type": { - "path": [ - "polkadot_runtime_parachains", - "assigner_on_demand", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "place_order_allow_death", - "fields": [ - { - "name": "max_amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0, - "docs": ["See [`Pallet::place_order_allow_death`]."] - }, - { - "name": "place_order_keep_alive", - "fields": [ - { - "name": "max_amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": ["See [`Pallet::place_order_keep_alive`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 435, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_registrar", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "register", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "genesis_head", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "validation_code", - "type": 414, - "typeName": "ValidationCode" - } - ], - "index": 0, - "docs": ["See [`Pallet::register`]."] - }, - { - "name": "force_register", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "deposit", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "genesis_head", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "validation_code", - "type": 414, - "typeName": "ValidationCode" - } - ], - "index": 1, - "docs": ["See [`Pallet::force_register`]."] - }, - { - "name": "deregister", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": ["See [`Pallet::deregister`]."] - }, - { - "name": "swap", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "other", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 3, - "docs": ["See [`Pallet::swap`]."] - }, - { - "name": "remove_lock", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 4, - "docs": ["See [`Pallet::remove_lock`]."] - }, - { - "name": "reserve", - "index": 5, - "docs": ["See [`Pallet::reserve`]."] - }, - { - "name": "add_lock", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 6, - "docs": ["See [`Pallet::add_lock`]."] - }, - { - "name": "schedule_code_upgrade", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_code", - "type": 414, - "typeName": "ValidationCode" - } - ], - "index": 7, - "docs": ["See [`Pallet::schedule_code_upgrade`]."] - }, - { - "name": "set_current_head", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "new_head", - "type": 96, - "typeName": "HeadData" - } - ], - "index": 8, - "docs": ["See [`Pallet::set_current_head`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 436, - "type": { - "path": ["polkadot_runtime_common", "slots", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "force_lease", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "leaser", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "amount", - "type": 6, - "typeName": "BalanceOf" - }, - { - "name": "period_begin", - "type": 4, - "typeName": "LeasePeriodOf" - }, - { - "name": "period_count", - "type": 4, - "typeName": "LeasePeriodOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::force_lease`]."] - }, - { - "name": "clear_all_leases", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": ["See [`Pallet::clear_all_leases`]."] - }, - { - "name": "trigger_onboard", - "fields": [ - { - "name": "para", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": ["See [`Pallet::trigger_onboard`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 437, - "type": { - "path": ["polkadot_runtime_common", "auctions", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "new_auction", - "fields": [ - { - "name": "duration", - "type": 122, - "typeName": "BlockNumberFor" - }, - { - "name": "lease_period_index", - "type": 122, - "typeName": "LeasePeriodOf" - } - ], - "index": 0, - "docs": ["See [`Pallet::new_auction`]."] - }, - { - "name": "bid", - "fields": [ - { - "name": "para", - "type": 438, - "typeName": "ParaId" - }, - { - "name": "auction_index", - "type": 122, - "typeName": "AuctionIndex" - }, - { - "name": "first_slot", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "last_slot", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "amount", - "type": 125, - "typeName": "BalanceOf" - } - ], - "index": 1, - "docs": ["See [`Pallet::bid`]."] - }, - { - "name": "cancel_auction", - "index": 2, - "docs": ["See [`Pallet::cancel_auction`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 438, - "type": { - "def": { - "compact": { - "type": 90 - } - } - } - }, - { - "id": 439, - "type": { - "path": [ - "polkadot_runtime_common", - "crowdloan", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "create", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - }, - { - "name": "cap", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "first_period", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "last_period", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "end", - "type": 122, - "typeName": "BlockNumberFor" - }, - { - "name": "verifier", - "type": 440, - "typeName": "Option" - } - ], - "index": 0, - "docs": ["See [`Pallet::create`]."] - }, - { - "name": "contribute", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - }, - { - "name": "value", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "signature", - "type": 442, - "typeName": "Option" - } - ], - "index": 1, - "docs": ["See [`Pallet::contribute`]."] - }, - { - "name": "withdraw", - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "T::AccountId" - }, - { - "name": "index", - "type": 438, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": ["See [`Pallet::withdraw`]."] - }, - { - "name": "refund", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - } - ], - "index": 3, - "docs": ["See [`Pallet::refund`]."] - }, - { - "name": "dissolve", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - } - ], - "index": 4, - "docs": ["See [`Pallet::dissolve`]."] - }, - { - "name": "edit", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - }, - { - "name": "cap", - "type": 125, - "typeName": "BalanceOf" - }, - { - "name": "first_period", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "last_period", - "type": 122, - "typeName": "LeasePeriodOf" - }, - { - "name": "end", - "type": 122, - "typeName": "BlockNumberFor" - }, - { - "name": "verifier", - "type": 440, - "typeName": "Option" - } - ], - "index": 5, - "docs": ["See [`Pallet::edit`]."] - }, - { - "name": "add_memo", - "fields": [ - { - "name": "index", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "memo", - "type": 13, - "typeName": "Vec" - } - ], - "index": 6, - "docs": ["See [`Pallet::add_memo`]."] - }, - { - "name": "poke", - "fields": [ - { - "name": "index", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 7, - "docs": ["See [`Pallet::poke`]."] - }, - { - "name": "contribute_all", - "fields": [ - { - "name": "index", - "type": 438, - "typeName": "ParaId" - }, - { - "name": "signature", - "type": 442, - "typeName": "Option" - } - ], - "index": 8, - "docs": ["See [`Pallet::contribute_all`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 440, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 441 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 441 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 441, - "type": { - "path": ["sp_runtime", "MultiSigner"], - "def": { - "variant": { - "variants": [ - { - "name": "Ed25519", - "fields": [ - { - "type": 41, - "typeName": "ed25519::Public" - } - ], - "index": 0 - }, - { - "name": "Sr25519", - "fields": [ - { - "type": 44, - "typeName": "sr25519::Public" - } - ], - "index": 1 - }, - { - "name": "Ecdsa", - "fields": [ - { - "type": 252, - "typeName": "ecdsa::Public" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 442, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 443 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 443 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 443, - "type": { - "path": ["sp_runtime", "MultiSignature"], - "def": { - "variant": { - "variants": [ - { - "name": "Ed25519", - "fields": [ - { - "type": 289, - "typeName": "ed25519::Signature" - } - ], - "index": 0 - }, - { - "name": "Sr25519", - "fields": [ - { - "type": 93, - "typeName": "sr25519::Signature" - } - ], - "index": 1 - }, - { - "name": "Ecdsa", - "fields": [ - { - "type": 259, - "typeName": "ecdsa::Signature" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 444, - "type": { - "path": ["pallet_xcm", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "send", - "fields": [ - { - "name": "dest", - "type": 169, - "typeName": "Box" - }, - { - "name": "message", - "type": 445, - "typeName": "Box>" - } - ], - "index": 0, - "docs": ["See [`Pallet::send`]."] - }, - { - "name": "teleport_assets", - "fields": [ - { - "name": "dest", - "type": 169, - "typeName": "Box" - }, - { - "name": "beneficiary", - "type": 169, - "typeName": "Box" - }, - { - "name": "assets", - "type": 155, - "typeName": "Box" - }, - { - "name": "fee_asset_item", - "type": 4, - "typeName": "u32" - } - ], - "index": 1, - "docs": ["See [`Pallet::teleport_assets`]."] - }, - { - "name": "reserve_transfer_assets", - "fields": [ - { - "name": "dest", - "type": 169, - "typeName": "Box" - }, - { - "name": "beneficiary", - "type": 169, - "typeName": "Box" - }, - { - "name": "assets", - "type": 155, - "typeName": "Box" - }, - { - "name": "fee_asset_item", - "type": 4, - "typeName": "u32" - } - ], - "index": 2, - "docs": ["See [`Pallet::reserve_transfer_assets`]."] - }, - { - "name": "execute", - "fields": [ - { - "name": "message", - "type": 457, - "typeName": "Box::RuntimeCall>>" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 3, - "docs": ["See [`Pallet::execute`]."] - }, - { - "name": "force_xcm_version", - "fields": [ - { - "name": "location", - "type": 119, - "typeName": "Box" - }, - { - "name": "version", - "type": 4, - "typeName": "XcmVersion" - } - ], - "index": 4, - "docs": ["See [`Pallet::force_xcm_version`]."] - }, - { - "name": "force_default_xcm_version", - "fields": [ - { - "name": "maybe_xcm_version", - "type": 255, - "typeName": "Option" - } - ], - "index": 5, - "docs": ["See [`Pallet::force_default_xcm_version`]."] - }, - { - "name": "force_subscribe_version_notify", - "fields": [ - { - "name": "location", - "type": 169, - "typeName": "Box" - } - ], - "index": 6, - "docs": [ - "See [`Pallet::force_subscribe_version_notify`]." - ] - }, - { - "name": "force_unsubscribe_version_notify", - "fields": [ - { - "name": "location", - "type": 169, - "typeName": "Box" - } - ], - "index": 7, - "docs": [ - "See [`Pallet::force_unsubscribe_version_notify`]." - ] - }, - { - "name": "limited_reserve_transfer_assets", - "fields": [ - { - "name": "dest", - "type": 169, - "typeName": "Box" - }, - { - "name": "beneficiary", - "type": 169, - "typeName": "Box" - }, - { - "name": "assets", - "type": 155, - "typeName": "Box" - }, - { - "name": "fee_asset_item", - "type": 4, - "typeName": "u32" - }, - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - } - ], - "index": 8, - "docs": [ - "See [`Pallet::limited_reserve_transfer_assets`]." - ] - }, - { - "name": "limited_teleport_assets", - "fields": [ - { - "name": "dest", - "type": 169, - "typeName": "Box" - }, - { - "name": "beneficiary", - "type": 169, - "typeName": "Box" - }, - { - "name": "assets", - "type": 155, - "typeName": "Box" - }, - { - "name": "fee_asset_item", - "type": 4, - "typeName": "u32" - }, - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - } - ], - "index": 9, - "docs": ["See [`Pallet::limited_teleport_assets`]."] - }, - { - "name": "force_suspension", - "fields": [ - { - "name": "suspended", - "type": 54, - "typeName": "bool" - } - ], - "index": 10, - "docs": ["See [`Pallet::force_suspension`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 445, - "type": { - "path": ["staging_xcm", "VersionedXcm"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "V2", - "fields": [ - { - "type": 446, - "typeName": "v2::Xcm" - } - ], - "index": 2 - }, - { - "name": "V3", - "fields": [ - { - "type": 128, - "typeName": "v3::Xcm" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 446, - "type": { - "path": ["staging_xcm", "v2", "Xcm"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 447, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 447, - "type": { - "def": { - "sequence": { - "type": 448 - } - } - } - }, - { - "id": 448, - "type": { - "path": ["staging_xcm", "v2", "Instruction"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "WithdrawAsset", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "ReserveAssetDeposited", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ReceiveTeleportedAsset", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 2 - }, - { - "name": "QueryResponse", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "response", - "type": 449, - "typeName": "Response" - }, - { - "name": "max_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 3 - }, - { - "name": "TransferAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "beneficiary", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 4 - }, - { - "name": "TransferReserveAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 5 - }, - { - "name": "Transact", - "fields": [ - { - "name": "origin_type", - "type": 148, - "typeName": "OriginKind" - }, - { - "name": "require_weight_at_most", - "type": 10, - "typeName": "u64" - }, - { - "name": "call", - "type": 149, - "typeName": "DoubleEncoded" - } - ], - "index": 6 - }, - { - "name": "HrmpNewChannelOpenRequest", - "fields": [ - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_capacity", - "type": 122, - "typeName": "u32" - } - ], - "index": 7 - }, - { - "name": "HrmpChannelAccepted", - "fields": [ - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 8 - }, - { - "name": "HrmpChannelClosing", - "fields": [ - { - "name": "initiator", - "type": 122, - "typeName": "u32" - }, - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 9 - }, - { - "name": "ClearOrigin", - "index": 10 - }, - { - "name": "DescendOrigin", - "fields": [ - { - "type": 161, - "typeName": "InteriorMultiLocation" - } - ], - "index": 11 - }, - { - "name": "ReportError", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 12 - }, - { - "name": "DepositAsset", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_assets", - "type": 122, - "typeName": "u32" - }, - { - "name": "beneficiary", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 13 - }, - { - "name": "DepositReserveAsset", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_assets", - "type": 122, - "typeName": "u32" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 14 - }, - { - "name": "ExchangeAsset", - "fields": [ - { - "name": "give", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "receive", - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 15 - }, - { - "name": "InitiateReserveWithdraw", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "reserve", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 16 - }, - { - "name": "InitiateTeleport", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 17 - }, - { - "name": "QueryHolding", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 18 - }, - { - "name": "BuyExecution", - "fields": [ - { - "name": "fees", - "type": 158, - "typeName": "MultiAsset" - }, - { - "name": "weight_limit", - "type": 456, - "typeName": "WeightLimit" - } - ], - "index": 19 - }, - { - "name": "RefundSurplus", - "index": 20 - }, - { - "name": "SetErrorHandler", - "fields": [ - { - "type": 446, - "typeName": "Xcm" - } - ], - "index": 21 - }, - { - "name": "SetAppendix", - "fields": [ - { - "type": 446, - "typeName": "Xcm" - } - ], - "index": 22 - }, - { - "name": "ClearError", - "index": 23 - }, - { - "name": "ClaimAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "ticket", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 24 - }, - { - "name": "Trap", - "fields": [ - { - "type": 10, - "typeName": "u64" - } - ], - "index": 25 - }, - { - "name": "SubscribeVersion", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 26 - }, - { - "name": "UnsubscribeVersion", - "index": 27 - } - ] - } - } - } - }, - { - "id": 449, - "type": { - "path": ["staging_xcm", "v2", "Response"], - "def": { - "variant": { - "variants": [ - { - "name": "Null", - "index": 0 - }, - { - "name": "Assets", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ExecutionResult", - "fields": [ - { - "type": 450, - "typeName": "Option<(u32, Error)>" - } - ], - "index": 2 - }, - { - "name": "Version", - "fields": [ - { - "type": 4, - "typeName": "super::Version" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "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": { - "def": { - "tuple": [4, 452] - } - } - }, - { - "id": 452, - "type": { - "path": ["staging_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": 11, - "typeName": "u64" - } - ], - "index": 21 - }, - { - "name": "UnhandledXcmVersion", - "index": 22 - }, - { - "name": "WeightLimitReached", - "fields": [ - { - "type": 11, - "typeName": "Weight" - } - ], - "index": 23 - }, - { - "name": "Barrier", - "index": 24 - }, - { - "name": "WeightNotComputable", - "index": 25 - } - ] - } - } - } - }, - { - "id": 453, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "MultiAssetFilter"], - "def": { - "variant": { - "variants": [ - { - "name": "Definite", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "Wild", - "fields": [ - { - "type": 454, - "typeName": "WildMultiAsset" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 454, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "WildMultiAsset"], - "def": { - "variant": { - "variants": [ - { - "name": "All", - "index": 0 - }, - { - "name": "AllOf", - "fields": [ - { - "name": "id", - "type": 159, - "typeName": "AssetId" - }, - { - "name": "fun", - "type": 455, - "typeName": "WildFungibility" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 455, - "type": { - "path": ["staging_xcm", "v2", "multiasset", "WildFungibility"], - "def": { - "variant": { - "variants": [ - { - "name": "Fungible", - "index": 0 - }, - { - "name": "NonFungible", - "index": 1 - } - ] - } - } - } - }, - { - "id": 456, - "type": { - "path": ["staging_xcm", "v2", "WeightLimit"], - "def": { - "variant": { - "variants": [ - { - "name": "Unlimited", - "index": 0 - }, - { - "name": "Limited", - "fields": [ - { - "type": 10, - "typeName": "u64" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 457, - "type": { - "path": ["staging_xcm", "VersionedXcm"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "V2", - "fields": [ - { - "type": 458, - "typeName": "v2::Xcm" - } - ], - "index": 2 - }, - { - "name": "V3", - "fields": [ - { - "type": 462, - "typeName": "v3::Xcm" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 458, - "type": { - "path": ["staging_xcm", "v2", "Xcm"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 459, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 459, - "type": { - "def": { - "sequence": { - "type": 460 - } - } - } - }, - { - "id": 460, - "type": { - "path": ["staging_xcm", "v2", "Instruction"], - "params": [ - { - "name": "RuntimeCall", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "WithdrawAsset", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "ReserveAssetDeposited", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ReceiveTeleportedAsset", - "fields": [ - { - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 2 - }, - { - "name": "QueryResponse", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "response", - "type": 449, - "typeName": "Response" - }, - { - "name": "max_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 3 - }, - { - "name": "TransferAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "beneficiary", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 4 - }, - { - "name": "TransferReserveAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 5 - }, - { - "name": "Transact", - "fields": [ - { - "name": "origin_type", - "type": 148, - "typeName": "OriginKind" - }, - { - "name": "require_weight_at_most", - "type": 10, - "typeName": "u64" - }, - { - "name": "call", - "type": 461, - "typeName": "DoubleEncoded" - } - ], - "index": 6 - }, - { - "name": "HrmpNewChannelOpenRequest", - "fields": [ - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_capacity", - "type": 122, - "typeName": "u32" - } - ], - "index": 7 - }, - { - "name": "HrmpChannelAccepted", - "fields": [ - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 8 - }, - { - "name": "HrmpChannelClosing", - "fields": [ - { - "name": "initiator", - "type": 122, - "typeName": "u32" - }, - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 9 - }, - { - "name": "ClearOrigin", - "index": 10 - }, - { - "name": "DescendOrigin", - "fields": [ - { - "type": 161, - "typeName": "InteriorMultiLocation" - } - ], - "index": 11 - }, - { - "name": "ReportError", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 12 - }, - { - "name": "DepositAsset", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_assets", - "type": 122, - "typeName": "u32" - }, - { - "name": "beneficiary", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 13 - }, - { - "name": "DepositReserveAsset", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_assets", - "type": 122, - "typeName": "u32" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 14 - }, - { - "name": "ExchangeAsset", - "fields": [ - { - "name": "give", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "receive", - "type": 156, - "typeName": "MultiAssets" - } - ], - "index": 15 - }, - { - "name": "InitiateReserveWithdraw", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "reserve", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 16 - }, - { - "name": "InitiateTeleport", - "fields": [ - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 446, - "typeName": "Xcm<()>" - } - ], - "index": 17 - }, - { - "name": "QueryHolding", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "dest", - "type": 160, - "typeName": "MultiLocation" - }, - { - "name": "assets", - "type": 453, - "typeName": "MultiAssetFilter" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 18 - }, - { - "name": "BuyExecution", - "fields": [ - { - "name": "fees", - "type": 158, - "typeName": "MultiAsset" - }, - { - "name": "weight_limit", - "type": 456, - "typeName": "WeightLimit" - } - ], - "index": 19 - }, - { - "name": "RefundSurplus", - "index": 20 - }, - { - "name": "SetErrorHandler", - "fields": [ - { - "type": 458, - "typeName": "Xcm" - } - ], - "index": 21 - }, - { - "name": "SetAppendix", - "fields": [ - { - "type": 458, - "typeName": "Xcm" - } - ], - "index": 22 - }, - { - "name": "ClearError", - "index": 23 - }, - { - "name": "ClaimAsset", - "fields": [ - { - "name": "assets", - "type": 156, - "typeName": "MultiAssets" - }, - { - "name": "ticket", - "type": 160, - "typeName": "MultiLocation" - } - ], - "index": 24 - }, - { - "name": "Trap", - "fields": [ - { - "type": 10, - "typeName": "u64" - } - ], - "index": 25 - }, - { - "name": "SubscribeVersion", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "max_response_weight", - "type": 10, - "typeName": "u64" - } - ], - "index": 26 - }, - { - "name": "UnsubscribeVersion", - "index": 27 - } - ] - } - } - } - }, - { - "id": 461, - "type": { - "path": ["staging_xcm", "double_encoded", "DoubleEncoded"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "encoded", - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 462, - "type": { - "path": ["staging_xcm", "v3", "Xcm"], - "params": [ - { - "name": "Call", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 463, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 463, - "type": { - "def": { - "sequence": { - "type": 464 - } - } - } - }, - { - "id": 464, - "type": { - "path": ["staging_xcm", "v3", "Instruction"], - "params": [ - { - "name": "Call", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "WithdrawAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 0 - }, - { - "name": "ReserveAssetDeposited", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 1 - }, - { - "name": "ReceiveTeleportedAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 2 - }, - { - "name": "QueryResponse", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "response", - "type": 138, - "typeName": "Response" - }, - { - "name": "max_weight", - "type": 9, - "typeName": "Weight" - }, - { - "name": "querier", - "type": 147, - "typeName": "Option" - } - ], - "index": 3 - }, - { - "name": "TransferAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "beneficiary", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 4 - }, - { - "name": "TransferReserveAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 5 - }, - { - "name": "Transact", - "fields": [ - { - "name": "origin_kind", - "type": 148, - "typeName": "OriginKind" - }, - { - "name": "require_weight_at_most", - "type": 9, - "typeName": "Weight" - }, - { - "name": "call", - "type": 461, - "typeName": "DoubleEncoded" - } - ], - "index": 6 - }, - { - "name": "HrmpNewChannelOpenRequest", - "fields": [ - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 122, - "typeName": "u32" - }, - { - "name": "max_capacity", - "type": 122, - "typeName": "u32" - } - ], - "index": 7 - }, - { - "name": "HrmpChannelAccepted", - "fields": [ - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 8 - }, - { - "name": "HrmpChannelClosing", - "fields": [ - { - "name": "initiator", - "type": 122, - "typeName": "u32" - }, - { - "name": "sender", - "type": 122, - "typeName": "u32" - }, - { - "name": "recipient", - "type": 122, - "typeName": "u32" - } - ], - "index": 9 - }, - { - "name": "ClearOrigin", - "index": 10 - }, - { - "name": "DescendOrigin", - "fields": [ - { - "type": 120, - "typeName": "InteriorMultiLocation" - } - ], - "index": 11 - }, - { - "name": "ReportError", - "fields": [ - { - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 12 - }, - { - "name": "DepositAsset", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "beneficiary", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 13 - }, - { - "name": "DepositReserveAsset", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 14 - }, - { - "name": "ExchangeAsset", - "fields": [ - { - "name": "give", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "want", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "maximal", - "type": 54, - "typeName": "bool" - } - ], - "index": 15 - }, - { - "name": "InitiateReserveWithdraw", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "reserve", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 16 - }, - { - "name": "InitiateTeleport", - "fields": [ - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - }, - { - "name": "dest", - "type": 119, - "typeName": "MultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 17 - }, - { - "name": "ReportHolding", - "fields": [ - { - "name": "response_info", - "type": 150, - "typeName": "QueryResponseInfo" - }, - { - "name": "assets", - "type": 151, - "typeName": "MultiAssetFilter" - } - ], - "index": 18 - }, - { - "name": "BuyExecution", - "fields": [ - { - "name": "fees", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - } - ], - "index": 19 - }, - { - "name": "RefundSurplus", - "index": 20 - }, - { - "name": "SetErrorHandler", - "fields": [ - { - "type": 462, - "typeName": "Xcm" - } - ], - "index": 21 - }, - { - "name": "SetAppendix", - "fields": [ - { - "type": 462, - "typeName": "Xcm" - } - ], - "index": 22 - }, - { - "name": "ClearError", - "index": 23 - }, - { - "name": "ClaimAsset", - "fields": [ - { - "name": "assets", - "type": 131, - "typeName": "MultiAssets" - }, - { - "name": "ticket", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 24 - }, - { - "name": "Trap", - "fields": [ - { - "type": 10, - "typeName": "u64" - } - ], - "index": 25 - }, - { - "name": "SubscribeVersion", - "fields": [ - { - "name": "query_id", - "type": 10, - "typeName": "QueryId" - }, - { - "name": "max_response_weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 26 - }, - { - "name": "UnsubscribeVersion", - "index": 27 - }, - { - "name": "BurnAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 28 - }, - { - "name": "ExpectAsset", - "fields": [ - { - "type": 131, - "typeName": "MultiAssets" - } - ], - "index": 29 - }, - { - "name": "ExpectOrigin", - "fields": [ - { - "type": 147, - "typeName": "Option" - } - ], - "index": 30 - }, - { - "name": "ExpectError", - "fields": [ - { - "type": 139, - "typeName": "Option<(u32, Error)>" - } - ], - "index": 31 - }, - { - "name": "ExpectTransactStatus", - "fields": [ - { - "type": 145, - "typeName": "MaybeErrorCode" - } - ], - "index": 32 - }, - { - "name": "QueryPallet", - "fields": [ - { - "name": "module_name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "response_info", - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 33 - }, - { - "name": "ExpectPallet", - "fields": [ - { - "name": "index", - "type": 122, - "typeName": "u32" - }, - { - "name": "name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "module_name", - "type": 13, - "typeName": "Vec" - }, - { - "name": "crate_major", - "type": 122, - "typeName": "u32" - }, - { - "name": "min_crate_minor", - "type": 122, - "typeName": "u32" - } - ], - "index": 34 - }, - { - "name": "ReportTransactStatus", - "fields": [ - { - "type": 150, - "typeName": "QueryResponseInfo" - } - ], - "index": 35 - }, - { - "name": "ClearTransactStatus", - "index": 36 - }, - { - "name": "UniversalOrigin", - "fields": [ - { - "type": 121, - "typeName": "Junction" - } - ], - "index": 37 - }, - { - "name": "ExportMessage", - "fields": [ - { - "name": "network", - "type": 124, - "typeName": "NetworkId" - }, - { - "name": "destination", - "type": 120, - "typeName": "InteriorMultiLocation" - }, - { - "name": "xcm", - "type": 128, - "typeName": "Xcm<()>" - } - ], - "index": 38 - }, - { - "name": "LockAsset", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "unlocker", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 39 - }, - { - "name": "UnlockAsset", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "target", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 40 - }, - { - "name": "NoteUnlockable", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "owner", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 41 - }, - { - "name": "RequestUnlock", - "fields": [ - { - "name": "asset", - "type": 133, - "typeName": "MultiAsset" - }, - { - "name": "locker", - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 42 - }, - { - "name": "SetFeesMode", - "fields": [ - { - "name": "jit_withdraw", - "type": 54, - "typeName": "bool" - } - ], - "index": 43 - }, - { - "name": "SetTopic", - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ], - "index": 44 - }, - { - "name": "ClearTopic", - "index": 45 - }, - { - "name": "AliasOrigin", - "fields": [ - { - "type": 119, - "typeName": "MultiLocation" - } - ], - "index": 46 - }, - { - "name": "UnpaidExecution", - "fields": [ - { - "name": "weight_limit", - "type": 154, - "typeName": "WeightLimit" - }, - { - "name": "check_origin", - "type": 147, - "typeName": "Option" - } - ], - "index": 47 - } - ] - } - } - } - }, - { - "id": 465, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_sudo_wrapper", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "sudo_schedule_para_initialize", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "genesis", - "type": 466, - "typeName": "ParaGenesisArgs" - } - ], - "index": 0, - "docs": ["See [`Pallet::sudo_schedule_para_initialize`]."] - }, - { - "name": "sudo_schedule_para_cleanup", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 1, - "docs": ["See [`Pallet::sudo_schedule_para_cleanup`]."] - }, - { - "name": "sudo_schedule_parathread_upgrade", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": [ - "See [`Pallet::sudo_schedule_parathread_upgrade`]." - ] - }, - { - "name": "sudo_schedule_parachain_downgrade", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 3, - "docs": [ - "See [`Pallet::sudo_schedule_parachain_downgrade`]." - ] - }, - { - "name": "sudo_queue_downward_xcm", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "xcm", - "type": 445, - "typeName": "Box" - } - ], - "index": 4, - "docs": ["See [`Pallet::sudo_queue_downward_xcm`]."] - }, - { - "name": "sudo_establish_hrmp_channel", - "fields": [ - { - "name": "sender", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "recipient", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "max_capacity", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_message_size", - "type": 4, - "typeName": "u32" - } - ], - "index": 5, - "docs": ["See [`Pallet::sudo_establish_hrmp_channel`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 466, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "ParaGenesisArgs" - ], - "def": { - "composite": { - "fields": [ - { - "name": "genesis_head", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "validation_code", - "type": 414, - "typeName": "ValidationCode" - }, - { - "name": "para_kind", - "type": 54, - "typeName": "ParaKind" - } - ] - } - } - } - }, - { - "id": 467, - "type": { - "path": [ - "polkadot_runtime_common", - "assigned_slots", - "pallet", - "Call" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "assign_perm_parachain_slot", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0, - "docs": ["See [`Pallet::assign_perm_parachain_slot`]."] - }, - { - "name": "assign_temp_parachain_slot", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "lease_period_start", - "type": 468, - "typeName": "SlotLeasePeriodStart" - } - ], - "index": 1, - "docs": ["See [`Pallet::assign_temp_parachain_slot`]."] - }, - { - "name": "unassign_parachain_slot", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - } - ], - "index": 2, - "docs": ["See [`Pallet::unassign_parachain_slot`]."] - }, - { - "name": "set_max_permanent_slots", - "fields": [ - { - "name": "slots", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": ["See [`Pallet::set_max_permanent_slots`]."] - }, - { - "name": "set_max_temporary_slots", - "fields": [ - { - "name": "slots", - "type": 4, - "typeName": "u32" - } - ], - "index": 4, - "docs": ["See [`Pallet::set_max_temporary_slots`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 468, - "type": { - "path": [ - "polkadot_runtime_common", - "assigned_slots", - "SlotLeasePeriodStart" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Current", - "index": 0 - }, - { - "name": "Next", - "index": 1 - } - ] - } - } - } - }, - { - "id": 469, - "type": { - "path": ["rococo_runtime", "validator_manager", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "register_validators", - "fields": [ - { - "name": "validators", - "type": 68, - "typeName": "Vec" - } - ], - "index": 0, - "docs": ["See [`Pallet::register_validators`]."] - }, - { - "name": "deregister_validators", - "fields": [ - { - "name": "validators", - "type": 68, - "typeName": "Vec" - } - ], - "index": 1, - "docs": ["See [`Pallet::deregister_validators`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 470, - "type": { - "path": ["pallet_state_trie_migration", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "control_auto_migration", - "fields": [ - { - "name": "maybe_config", - "type": 471, - "typeName": "Option" - } - ], - "index": 0, - "docs": ["See [`Pallet::control_auto_migration`]."] - }, - { - "name": "continue_migrate", - "fields": [ - { - "name": "limits", - "type": 472, - "typeName": "MigrationLimits" - }, - { - "name": "real_size_upper", - "type": 4, - "typeName": "u32" - }, - { - "name": "witness_task", - "type": 473, - "typeName": "MigrationTask" - } - ], - "index": 1, - "docs": ["See [`Pallet::continue_migrate`]."] - }, - { - "name": "migrate_custom_top", - "fields": [ - { - "name": "keys", - "type": 185, - "typeName": "Vec>" - }, - { - "name": "witness_size", - "type": 4, - "typeName": "u32" - } - ], - "index": 2, - "docs": ["See [`Pallet::migrate_custom_top`]."] - }, - { - "name": "migrate_custom_child", - "fields": [ - { - "name": "root", - "type": 13, - "typeName": "Vec" - }, - { - "name": "child_keys", - "type": 185, - "typeName": "Vec>" - }, - { - "name": "total_size", - "type": 4, - "typeName": "u32" - } - ], - "index": 3, - "docs": ["See [`Pallet::migrate_custom_child`]."] - }, - { - "name": "set_signed_max_limits", - "fields": [ - { - "name": "limits", - "type": 472, - "typeName": "MigrationLimits" - } - ], - "index": 4, - "docs": ["See [`Pallet::set_signed_max_limits`]."] - }, - { - "name": "force_set_progress", - "fields": [ - { - "name": "progress_top", - "type": 474, - "typeName": "ProgressOf" - }, - { - "name": "progress_child", - "type": 474, - "typeName": "ProgressOf" - } - ], - "index": 5, - "docs": ["See [`Pallet::force_set_progress`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 471, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 472 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 472 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 472, - "type": { - "path": [ - "pallet_state_trie_migration", - "pallet", - "MigrationLimits" - ], - "def": { - "composite": { - "fields": [ - { - "name": "size", - "type": 4, - "typeName": "u32" - }, - { - "name": "item", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 473, - "type": { - "path": [ - "pallet_state_trie_migration", - "pallet", - "MigrationTask" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "progress_top", - "type": 474, - "typeName": "ProgressOf" - }, - { - "name": "progress_child", - "type": 474, - "typeName": "ProgressOf" - }, - { - "name": "size", - "type": 4, - "typeName": "u32" - }, - { - "name": "top_items", - "type": 4, - "typeName": "u32" - }, - { - "name": "child_items", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 474, - "type": { - "path": ["pallet_state_trie_migration", "pallet", "Progress"], - "params": [ - { - "name": "MaxKeyLen", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ToStart", - "index": 0 - }, - { - "name": "LastKey", - "fields": [ - { - "type": 475, - "typeName": "BoundedVec" - } - ], - "index": 1 - }, - { - "name": "Complete", - "index": 2 - } - ] - } - } - } - }, - { - "id": 475, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 476, - "type": { - "path": ["pallet_sudo", "pallet", "Call"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "sudo", - "fields": [ - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 0, - "docs": ["See [`Pallet::sudo`]."] - }, - { - "name": "sudo_unchecked_weight", - "fields": [ - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - }, - { - "name": "weight", - "type": 9, - "typeName": "Weight" - } - ], - "index": 1, - "docs": ["See [`Pallet::sudo_unchecked_weight`]."] - }, - { - "name": "set_key", - "fields": [ - { - "name": "new", - "type": 226, - "typeName": "AccountIdLookupOf" - } - ], - "index": 2, - "docs": ["See [`Pallet::set_key`]."] - }, - { - "name": "sudo_as", - "fields": [ - { - "name": "who", - "type": 226, - "typeName": "AccountIdLookupOf" - }, - { - "name": "call", - "type": 305, - "typeName": "Box<::RuntimeCall>" - } - ], - "index": 3, - "docs": ["See [`Pallet::sudo_as`]."] - } - ] - } - }, - "docs": [ - "Contains a variant per dispatchable extrinsic that this pallet has." - ] - } - }, - { - "id": 477, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 478, - "type": { - "def": { - "sequence": { - "type": 303 - } - } - } - }, - { - "id": 479, - "type": { - "def": { - "tuple": [480, 6] - } - } - }, - { - "id": 480, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 481, - "type": { - "path": ["pallet_democracy", "types", "ReferendumInfo"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Proposal", - "type": 304 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ongoing", - "fields": [ - { - "type": 482, - "typeName": "ReferendumStatus" - } - ], - "index": 0 - }, - { - "name": "Finished", - "fields": [ - { - "name": "approved", - "type": 54, - "typeName": "bool" - }, - { - "name": "end", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 482, - "type": { - "path": ["pallet_democracy", "types", "ReferendumStatus"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Proposal", - "type": 304 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "end", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "proposal", - "type": 304, - "typeName": "Proposal" - }, - { - "name": "threshold", - "type": 49, - "typeName": "VoteThreshold" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "tally", - "type": 483, - "typeName": "Tally" - } - ] - } - } - } - }, - { - "id": 483, - "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": 484, - "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": 485, - "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>" - }, - { - "name": "delegations", - "type": 488, - "typeName": "Delegations" - }, - { - "name": "prior", - "type": 489, - "typeName": "PriorLock" - } - ], - "index": 0 - }, - { - "name": "Delegating", - "fields": [ - { - "name": "balance", - "type": 6, - "typeName": "Balance" - }, - { - "name": "target", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "conviction", - "type": 307, - "typeName": "Conviction" - }, - { - "name": "delegations", - "type": 488, - "typeName": "Delegations" - }, - { - "name": "prior", - "type": 489, - "typeName": "PriorLock" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 485, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 486 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 487, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 486, - "type": { - "def": { - "tuple": [4, 50] - } - } - }, - { - "id": 487, - "type": { - "def": { - "sequence": { - "type": 486 - } - } - } - }, - { - "id": 488, - "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": 489, - "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": 490, - "type": { - "def": { - "tuple": [304, 49] - } - } - }, - { - "id": 491, - "type": { - "def": { - "tuple": [4, 480] - } - } - }, - { - "id": 492, - "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": 493, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 12 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 178, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 494, - "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": 68, - "typeName": "Vec" - }, - { - "name": "nays", - "type": 68, - "typeName": "Vec" - }, - { - "name": "end", - "type": 4, - "typeName": "BlockNumber" - } - ] - } - } - } - }, - { - "id": 495, - "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": 496, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 12 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 178, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 497, - "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": 498, - "type": { - "def": { - "sequence": { - "type": 499 - } - } - } - }, - { - "id": 499, - "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": 500, - "type": { - "path": ["pallet_elections_phragmen", "Voter"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "votes", - "type": 68, - "typeName": "Vec" - }, - { - "name": "stake", - "type": 6, - "typeName": "Balance" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 501, - "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": 502, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 503, - "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": 504, - "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": 505, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 4 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 275, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 506, - "type": { - "path": ["sp_arithmetic", "per_things", "Permill"], - "def": { - "composite": { - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 507, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 6 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 6 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 508, - "type": { - "path": ["frame_support", "PalletId"], - "def": { - "composite": { - "fields": [ - { - "type": 137, - "typeName": "[u8; 8]" - } - ] - } - } - } - }, - { - "id": 509, - "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 or bounty 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."] - } - ] - } - }, - "docs": ["Error for the treasury pallet."] - } - }, - { - "id": 510, - "type": { - "path": ["polkadot_runtime_common", "claims", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidEthereumSignature", - "index": 0, - "docs": ["Invalid Ethereum signature."] - }, - { - "name": "SignerHasNoClaim", - "index": 1, - "docs": ["Ethereum address has no claim."] - }, - { - "name": "SenderHasNoClaim", - "index": 2, - "docs": ["Account ID sending transaction has no claim."] - }, - { - "name": "PotUnderflow", - "index": 3, - "docs": [ - "There's not enough in the pot to pay out some unvested amount. Generally implies a", - "logic error." - ] - }, - { - "name": "InvalidStatement", - "index": 4, - "docs": ["A needed statement was not included."] - }, - { - "name": "VestedBalanceExists", - "index": 5, - "docs": ["The account already has a vested balance."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 511, - "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": 512, - "type": { - "path": ["pallet_identity", "types", "Registration"], - "params": [ - { - "name": "Balance", - "type": 6 - }, - { - "name": "MaxJudgements", - "type": null - }, - { - "name": "MaxAdditionalFields", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "judgements", - "type": 513, - "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "info", - "type": 331, - "typeName": "IdentityInfo" - } - ] - } - } - } - }, - { - "id": 513, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 514 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 515, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 514, - "type": { - "def": { - "tuple": [4, 368] - } - } - }, - { - "id": 515, - "type": { - "def": { - "sequence": { - "type": 514 - } - } - } - }, - { - "id": 516, - "type": { - "def": { - "tuple": [6, 517] - } - } - }, - { - "id": 517, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 518, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 519 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 521, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 519, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 520 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 520 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 520, - "type": { - "path": ["pallet_identity", "types", "RegistrarInfo"], - "params": [ - { - "name": "Balance", - "type": 6 - }, - { - "name": "AccountId", - "type": 0 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "account", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "fee", - "type": 6, - "typeName": "Balance" - }, - { - "name": "fields", - "type": 366, - "typeName": "IdentityFields" - } - ] - } - } - } - }, - { - "id": 521, - "type": { - "def": { - "sequence": { - "type": 519 - } - } - } - }, - { - "id": 522, - "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": "TooManyFields", - "index": 11, - "docs": ["Too many additional fields."] - }, - { - "name": "TooManyRegistrars", - "index": 12, - "docs": [ - "Maximum amount of registrars reached. Cannot add any more." - ] - }, - { - "name": "AlreadyClaimed", - "index": 13, - "docs": ["Account ID is already named."] - }, - { - "name": "NotSub", - "index": 14, - "docs": ["Sender is not a sub-account."] - }, - { - "name": "NotOwned", - "index": 15, - "docs": ["Sub-account isn't owned by sender."] - }, - { - "name": "JudgementForDifferentIdentity", - "index": 16, - "docs": [ - "The provided judgement was for a different identity." - ] - }, - { - "name": "JudgementPaymentFailed", - "index": 17, - "docs": [ - "Error that occurs when there is an issue paying for judgement." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 523, - "type": { - "path": ["pallet_society", "MemberRecord"], - "def": { - "composite": { - "fields": [ - { - "name": "rank", - "type": 4, - "typeName": "Rank" - }, - { - "name": "strikes", - "type": 4, - "typeName": "StrikeCount" - }, - { - "name": "vouching", - "type": 524, - "typeName": "Option" - }, - { - "name": "index", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 524, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 525 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 525 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 525, - "type": { - "path": ["pallet_society", "VouchingStatus"], - "def": { - "variant": { - "variants": [ - { - "name": "Vouching", - "index": 0 - }, - { - "name": "Banned", - "index": 1 - } - ] - } - } - } - }, - { - "id": 526, - "type": { - "path": ["pallet_society", "PayoutRecord"], - "params": [ - { - "name": "Balance", - "type": 6 - }, - { - "name": "PayoutsVec", - "type": 527 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "paid", - "type": 6, - "typeName": "Balance" - }, - { - "name": "payouts", - "type": 527, - "typeName": "PayoutsVec" - } - ] - } - } - } - }, - { - "id": 527, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 528 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 529, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 528, - "type": { - "def": { - "tuple": [4, 6] - } - } - }, - { - "id": 529, - "type": { - "def": { - "sequence": { - "type": 528 - } - } - } - }, - { - "id": 530, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 531 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 533, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 531, - "type": { - "path": ["pallet_society", "Bid"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "kind", - "type": 532, - "typeName": "BidKind" - }, - { - "name": "value", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 532, - "type": { - "path": ["pallet_society", "BidKind"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Deposit", - "fields": [ - { - "type": 6, - "typeName": "Balance" - } - ], - "index": 0 - }, - { - "name": "Vouch", - "fields": [ - { - "type": 0, - "typeName": "AccountId" - }, - { - "type": 6, - "typeName": "Balance" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 533, - "type": { - "def": { - "sequence": { - "type": 531 - } - } - } - }, - { - "id": 534, - "type": { - "path": ["pallet_society", "Candidacy"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "round", - "type": 4, - "typeName": "RoundIndex" - }, - { - "name": "kind", - "type": 532, - "typeName": "BidKind" - }, - { - "name": "bid", - "type": 6, - "typeName": "Balance" - }, - { - "name": "tally", - "type": 535, - "typeName": "Tally" - }, - { - "name": "skeptic_struck", - "type": 54, - "typeName": "bool" - } - ] - } - } - } - }, - { - "id": 535, - "type": { - "path": ["pallet_society", "Tally"], - "def": { - "composite": { - "fields": [ - { - "name": "approvals", - "type": 4, - "typeName": "VoteCount" - }, - { - "name": "rejections", - "type": 4, - "typeName": "VoteCount" - } - ] - } - } - } - }, - { - "id": 536, - "type": { - "def": { - "tuple": [0, 0] - } - } - }, - { - "id": 537, - "type": { - "path": ["pallet_society", "Vote"], - "def": { - "composite": { - "fields": [ - { - "name": "approve", - "type": 54, - "typeName": "bool" - }, - { - "name": "weight", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 538, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 539, - "type": { - "path": ["pallet_society", "IntakeRecord"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "who", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "bid", - "type": 6, - "typeName": "Balance" - }, - { - "name": "round", - "type": 4, - "typeName": "RoundIndex" - } - ] - } - } - } - }, - { - "id": 540, - "type": { - "def": { - "tuple": [0, 0, 535] - } - } - }, - { - "id": 541, - "type": { - "path": ["pallet_society", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NotMember", - "index": 0, - "docs": ["User is not a member."] - }, - { - "name": "AlreadyMember", - "index": 1, - "docs": ["User is already a member."] - }, - { - "name": "Suspended", - "index": 2, - "docs": ["User is suspended."] - }, - { - "name": "NotSuspended", - "index": 3, - "docs": ["User is not suspended."] - }, - { - "name": "NoPayout", - "index": 4, - "docs": ["Nothing to payout."] - }, - { - "name": "AlreadyFounded", - "index": 5, - "docs": ["Society already founded."] - }, - { - "name": "InsufficientPot", - "index": 6, - "docs": ["Not enough in pot to accept candidate."] - }, - { - "name": "AlreadyVouching", - "index": 7, - "docs": [ - "Member is already vouching or banned from vouching again." - ] - }, - { - "name": "NotVouchingOnBidder", - "index": 8, - "docs": ["Member is not vouching."] - }, - { - "name": "Head", - "index": 9, - "docs": ["Cannot remove the head of the chain."] - }, - { - "name": "Founder", - "index": 10, - "docs": ["Cannot remove the founder."] - }, - { - "name": "AlreadyBid", - "index": 11, - "docs": ["User has already made a bid."] - }, - { - "name": "AlreadyCandidate", - "index": 12, - "docs": ["User is already a candidate."] - }, - { - "name": "NotCandidate", - "index": 13, - "docs": ["User is not a candidate."] - }, - { - "name": "MaxMembers", - "index": 14, - "docs": ["Too many members in the society."] - }, - { - "name": "NotFounder", - "index": 15, - "docs": ["The caller is not the founder."] - }, - { - "name": "NotHead", - "index": 16, - "docs": ["The caller is not the head."] - }, - { - "name": "NotApproved", - "index": 17, - "docs": [ - "The membership cannot be claimed as the candidate was not clearly approved." - ] - }, - { - "name": "NotRejected", - "index": 18, - "docs": [ - "The candidate cannot be kicked as the candidate was not clearly rejected." - ] - }, - { - "name": "Approved", - "index": 19, - "docs": [ - "The candidacy cannot be dropped as the candidate was clearly approved." - ] - }, - { - "name": "Rejected", - "index": 20, - "docs": [ - "The candidacy cannot be bestowed as the candidate was clearly rejected." - ] - }, - { - "name": "InProgress", - "index": 21, - "docs": [ - "The candidacy cannot be concluded as the voting is still in progress." - ] - }, - { - "name": "TooEarly", - "index": 22, - "docs": [ - "The candidacy cannot be pruned until a full additional intake period has passed." - ] - }, - { - "name": "Voted", - "index": 23, - "docs": ["The skeptic already voted."] - }, - { - "name": "Expired", - "index": 24, - "docs": [ - "The skeptic need not vote on candidates from expired rounds." - ] - }, - { - "name": "NotBidder", - "index": 25, - "docs": ["User is not a bidder."] - }, - { - "name": "NoDefender", - "index": 26, - "docs": ["There is no defender currently."] - }, - { - "name": "NotGroup", - "index": 27, - "docs": ["Group doesn't exist."] - }, - { - "name": "AlreadyElevated", - "index": 28, - "docs": ["The member is already elevated to this rank."] - }, - { - "name": "AlreadyPunished", - "index": 29, - "docs": [ - "The skeptic has already been punished for this offence." - ] - }, - { - "name": "InsufficientFunds", - "index": 30, - "docs": [ - "Funds are insufficient to pay off society debts." - ] - }, - { - "name": "NoVotes", - "index": 31, - "docs": [ - "The candidate/defender has no stale votes to remove." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 542, - "type": { - "path": ["pallet_recovery", "RecoveryConfig"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "Friends", - "type": 543 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "delay_period", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "friends", - "type": 543, - "typeName": "Friends" - }, - { - "name": "threshold", - "type": 77, - "typeName": "u16" - } - ] - } - } - } - }, - { - "id": 543, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 544, - "type": { - "path": ["pallet_recovery", "ActiveRecovery"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "Friends", - "type": 543 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "created", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "friends", - "type": 543, - "typeName": "Friends" - } - ] - } - } - } - }, - { - "id": 545, - "type": { - "path": ["pallet_recovery", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NotAllowed", - "index": 0, - "docs": [ - "User is not allowed to make a call on behalf of this account" - ] - }, - { - "name": "ZeroThreshold", - "index": 1, - "docs": ["Threshold must be greater than zero"] - }, - { - "name": "NotEnoughFriends", - "index": 2, - "docs": [ - "Friends list must be greater than zero and threshold" - ] - }, - { - "name": "MaxFriends", - "index": 3, - "docs": ["Friends list must be less than max friends"] - }, - { - "name": "NotSorted", - "index": 4, - "docs": [ - "Friends list must be sorted and free of duplicates" - ] - }, - { - "name": "NotRecoverable", - "index": 5, - "docs": ["This account is not set up for recovery"] - }, - { - "name": "AlreadyRecoverable", - "index": 6, - "docs": ["This account is already set up for recovery"] - }, - { - "name": "AlreadyStarted", - "index": 7, - "docs": [ - "A recovery process has already started for this account" - ] - }, - { - "name": "NotStarted", - "index": 8, - "docs": [ - "A recovery process has not started for this rescuer" - ] - }, - { - "name": "NotFriend", - "index": 9, - "docs": ["This account is not a friend who can vouch"] - }, - { - "name": "DelayPeriod", - "index": 10, - "docs": [ - "The friend must wait until the delay period to vouch for this recovery" - ] - }, - { - "name": "AlreadyVouched", - "index": 11, - "docs": [ - "This user has already vouched for this recovery" - ] - }, - { - "name": "Threshold", - "index": 12, - "docs": [ - "The threshold for recovering this account has not been met" - ] - }, - { - "name": "StillActive", - "index": 13, - "docs": [ - "There are still active recovery attempts that need to be closed" - ] - }, - { - "name": "AlreadyProxy", - "index": 14, - "docs": ["This account is already set up for recovery"] - }, - { - "name": "BadState", - "index": 15, - "docs": ["Some internal state is broken."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 546, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 372 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 547, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 547, - "type": { - "def": { - "sequence": { - "type": 372 - } - } - } - }, - { - "id": 548, - "type": { - "path": ["pallet_vesting", "Releases"], - "def": { - "variant": { - "variants": [ - { - "name": "V0", - "index": 0 - }, - { - "name": "V1", - "index": 1 - } - ] - } - } - } - }, - { - "id": 549, - "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": 550, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 551 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 553, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 551, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 552 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 552 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 552, - "type": { - "path": ["pallet_scheduler", "Scheduled"], - "params": [ - { - "name": "Name", - "type": 1 - }, - { - "name": "Call", - "type": 304 - }, - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "PalletsOrigin", - "type": 323 - }, - { - "name": "AccountId", - "type": 0 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "maybe_id", - "type": 74, - "typeName": "Option" - }, - { - "name": "priority", - "type": 2, - "typeName": "schedule::Priority" - }, - { - "name": "call", - "type": 304, - "typeName": "Call" - }, - { - "name": "maybe_periodic", - "type": 374, - "typeName": "Option>" - }, - { - "name": "origin", - "type": 323, - "typeName": "PalletsOrigin" - } - ] - } - } - } - }, - { - "id": 553, - "type": { - "def": { - "sequence": { - "type": 551 - } - } - } - }, - { - "id": 554, - "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": 555, - "type": { - "def": { - "tuple": [556, 6] - } - } - }, - { - "id": 556, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 557 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 558, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 557, - "type": { - "path": ["pallet_proxy", "ProxyDefinition"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "ProxyType", - "type": 76 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "delegate", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "proxy_type", - "type": 76, - "typeName": "ProxyType" - }, - { - "name": "delay", - "type": 4, - "typeName": "BlockNumber" - } - ] - } - } - } - }, - { - "id": 558, - "type": { - "def": { - "sequence": { - "type": 557 - } - } - } - }, - { - "id": 559, - "type": { - "def": { - "tuple": [560, 6] - } - } - }, - { - "id": 560, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 561 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 562, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 561, - "type": { - "path": ["pallet_proxy", "Announcement"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Hash", - "type": 12 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "real", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "call_hash", - "type": 12, - "typeName": "Hash" - }, - { - "name": "height", - "type": 4, - "typeName": "BlockNumber" - } - ] - } - } - } - }, - { - "id": 562, - "type": { - "def": { - "sequence": { - "type": 561 - } - } - } - }, - { - "id": 563, - "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": 564, - "type": { - "def": { - "tuple": [0, 1] - } - } - }, - { - "id": 565, - "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": 79, - "typeName": "Timepoint" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "depositor", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "approvals", - "type": 566, - "typeName": "BoundedVec" - } - ] - } - } - } - }, - { - "id": 566, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 68, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 567, - "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": 568, - "type": { - "path": ["pallet_preimage", "OldRequestStatus"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Unrequested", - "fields": [ - { - "name": "deposit", - "type": 59, - "typeName": "(AccountId, Balance)" - }, - { - "name": "len", - "type": 4, - "typeName": "u32" - } - ], - "index": 0 - }, - { - "name": "Requested", - "fields": [ - { - "name": "deposit", - "type": 569, - "typeName": "Option<(AccountId, Balance)>" - }, - { - "name": "count", - "type": 4, - "typeName": "u32" - }, - { - "name": "len", - "type": 255, - "typeName": "Option" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 569, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 59 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 59 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 570, - "type": { - "path": ["pallet_preimage", "RequestStatus"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Ticket", - "type": 571 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Unrequested", - "fields": [ - { - "name": "ticket", - "type": 572, - "typeName": "(AccountId, Ticket)" - }, - { - "name": "len", - "type": 4, - "typeName": "u32" - } - ], - "index": 0 - }, - { - "name": "Requested", - "fields": [ - { - "name": "maybe_ticket", - "type": 573, - "typeName": "Option<(AccountId, Ticket)>" - }, - { - "name": "count", - "type": 4, - "typeName": "u32" - }, - { - "name": "maybe_len", - "type": 255, - "typeName": "Option" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 571, - "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": 572, - "type": { - "def": { - "tuple": [0, 571] - } - } - }, - { - "id": 573, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 572 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 572 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 574, - "type": { - "def": { - "tuple": [12, 4] - } - } - }, - { - "id": 575, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 576, - "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." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 577, - "type": { - "path": ["pallet_bounties", "Bounty"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "proposer", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "value", - "type": 6, - "typeName": "Balance" - }, - { - "name": "fee", - "type": 6, - "typeName": "Balance" - }, - { - "name": "curator_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "bond", - "type": 6, - "typeName": "Balance" - }, - { - "name": "status", - "type": 578, - "typeName": "BountyStatus" - } - ] - } - } - } - }, - { - "id": 578, - "type": { - "path": ["pallet_bounties", "BountyStatus"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Proposed", - "index": 0 - }, - { - "name": "Approved", - "index": 1 - }, - { - "name": "Funded", - "index": 2 - }, - { - "name": "CuratorProposed", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - } - ], - "index": 3 - }, - { - "name": "Active", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "update_due", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 4 - }, - { - "name": "PendingPayout", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "unlock_at", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 5 - } - ] - } - } - } - }, - { - "id": 579, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 580, - "type": { - "path": ["pallet_bounties", "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 or bounty at that index."] - }, - { - "name": "ReasonTooBig", - "index": 2, - "docs": ["The reason given is just too big."] - }, - { - "name": "UnexpectedStatus", - "index": 3, - "docs": ["The bounty status is unexpected."] - }, - { - "name": "RequireCurator", - "index": 4, - "docs": ["Require bounty curator."] - }, - { - "name": "InvalidValue", - "index": 5, - "docs": ["Invalid bounty value."] - }, - { - "name": "InvalidFee", - "index": 6, - "docs": ["Invalid bounty fee."] - }, - { - "name": "PendingPayout", - "index": 7, - "docs": [ - "A bounty payout is pending.", - "To cancel the bounty, you must unassign and slash the curator." - ] - }, - { - "name": "Premature", - "index": 8, - "docs": [ - "The bounties cannot be claimed/closed because it's still in the countdown period." - ] - }, - { - "name": "HasActiveChildBounty", - "index": 9, - "docs": [ - "The bounty cannot be closed because it has active child bounties." - ] - }, - { - "name": "TooManyQueued", - "index": 10, - "docs": ["Too many approvals are already queued."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 581, - "type": { - "path": ["pallet_child_bounties", "ChildBounty"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "parent_bounty", - "type": 4, - "typeName": "BountyIndex" - }, - { - "name": "value", - "type": 6, - "typeName": "Balance" - }, - { - "name": "fee", - "type": 6, - "typeName": "Balance" - }, - { - "name": "curator_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "status", - "type": 582, - "typeName": "ChildBountyStatus" - } - ] - } - } - } - }, - { - "id": 582, - "type": { - "path": ["pallet_child_bounties", "ChildBountyStatus"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Added", - "index": 0 - }, - { - "name": "CuratorProposed", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - } - ], - "index": 1 - }, - { - "name": "Active", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - } - ], - "index": 2 - }, - { - "name": "PendingPayout", - "fields": [ - { - "name": "curator", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "beneficiary", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "unlock_at", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 583, - "type": { - "path": ["pallet_child_bounties", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ParentBountyNotActive", - "index": 0, - "docs": ["The parent bounty is not in active state."] - }, - { - "name": "InsufficientBountyBalance", - "index": 1, - "docs": [ - "The bounty balance is not enough to add new child-bounty." - ] - }, - { - "name": "TooManyChildBounties", - "index": 2, - "docs": [ - "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 584, - "type": { - "path": ["pallet_tips", "OpenTip"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Hash", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "reason", - "type": 12, - "typeName": "Hash" - }, - { - "name": "who", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "finder", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "closes", - "type": 255, - "typeName": "Option" - }, - { - "name": "tips", - "type": 58, - "typeName": "Vec<(AccountId, Balance)>" - }, - { - "name": "finders_fee", - "type": 54, - "typeName": "bool" - } - ] - } - } - } - }, - { - "id": 585, - "type": { - "path": ["sp_arithmetic", "per_things", "Percent"], - "def": { - "composite": { - "fields": [ - { - "type": 2, - "typeName": "u8" - } - ] - } - } - } - }, - { - "id": 586, - "type": { - "path": ["pallet_tips", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - }, - { - "name": "I", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ReasonTooBig", - "index": 0, - "docs": ["The reason given is just too big."] - }, - { - "name": "AlreadyKnown", - "index": 1, - "docs": ["The tip was already found/started."] - }, - { - "name": "UnknownTip", - "index": 2, - "docs": ["The tip hash is unknown."] - }, - { - "name": "NotFinder", - "index": 3, - "docs": [ - "The account attempting to retract the tip is not the finder of the tip." - ] - }, - { - "name": "StillOpen", - "index": 4, - "docs": [ - "The tip cannot be claimed/closed because there are not enough tippers yet." - ] - }, - { - "name": "Premature", - "index": 5, - "docs": [ - "The tip cannot be claimed/closed because it's still in the countdown period." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 587, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 528 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 529, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 588, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 589 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 590, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 589, - "type": { - "path": ["pallet_nis", "pallet", "Bid"], - "params": [ - { - "name": "Balance", - "type": 6 - }, - { - "name": "AccountId", - "type": 0 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "amount", - "type": 6, - "typeName": "Balance" - }, - { - "name": "who", - "type": 0, - "typeName": "AccountId" - } - ] - } - } - } - }, - { - "id": 590, - "type": { - "def": { - "sequence": { - "type": 589 - } - } - } - }, - { - "id": 591, - "type": { - "path": ["pallet_nis", "pallet", "SummaryRecord"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "proportion_owed", - "type": 85, - "typeName": "Perquintill" - }, - { - "name": "index", - "type": 4, - "typeName": "ReceiptIndex" - }, - { - "name": "thawed", - "type": 85, - "typeName": "Perquintill" - }, - { - "name": "last_period", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "receipts_on_hold", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 592, - "type": { - "path": ["pallet_nis", "pallet", "ReceiptRecord"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "proportion", - "type": 85, - "typeName": "Perquintill" - }, - { - "name": "owner", - "type": 569, - "typeName": "Option<(AccountId, Balance)>" - }, - { - "name": "expiry", - "type": 4, - "typeName": "BlockNumber" - } - ] - } - } - } - }, - { - "id": 593, - "type": { - "def": { - "tuple": [85, 4] - } - } - }, - { - "id": 594, - "type": { - "path": ["pallet_nis", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "DurationTooSmall", - "index": 0, - "docs": ["The duration of the bid is less than one."] - }, - { - "name": "DurationTooBig", - "index": 1, - "docs": [ - "The duration is the bid is greater than the number of queues." - ] - }, - { - "name": "AmountTooSmall", - "index": 2, - "docs": [ - "The amount of the bid is less than the minimum allowed." - ] - }, - { - "name": "BidTooLow", - "index": 3, - "docs": [ - "The queue for the bid's duration is full and the amount bid is too low to get in", - "through replacing an existing bid." - ] - }, - { - "name": "UnknownReceipt", - "index": 4, - "docs": ["Receipt index is unknown."] - }, - { - "name": "NotOwner", - "index": 5, - "docs": ["Not the owner of the receipt."] - }, - { - "name": "NotExpired", - "index": 6, - "docs": ["Bond not yet at expiry date."] - }, - { - "name": "UnknownBid", - "index": 7, - "docs": ["The given bid for retraction is not found."] - }, - { - "name": "PortionTooBig", - "index": 8, - "docs": [ - "The portion supplied is beyond the value of the receipt." - ] - }, - { - "name": "Unfunded", - "index": 9, - "docs": ["Not enough funds are held to pay out."] - }, - { - "name": "AlreadyFunded", - "index": 10, - "docs": ["There are enough funds for what is required."] - }, - { - "name": "Throttled", - "index": 11, - "docs": [ - "The thaw throttle has been reached for this period." - ] - }, - { - "name": "MakesDust", - "index": 12, - "docs": [ - "The operation would result in a receipt worth an insignficant value." - ] - }, - { - "name": "AlreadyCommunal", - "index": 13, - "docs": ["The receipt is already communal."] - }, - { - "name": "AlreadyPrivate", - "index": 14, - "docs": ["The receipt is already private."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 595, - "type": { - "path": [ - "bounded_collections", - "weak_bounded_vec", - "WeakBoundedVec" - ], - "params": [ - { - "name": "T", - "type": 230 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 232, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 596, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 234 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 235, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 597, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 237 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 241, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 598, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 243 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 244, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 599, - "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 `MaxHolds`."] - }, - { - "name": "TooManyFreezes", - "index": 9, - "docs": ["Number of freezes exceed `MaxFreezes`."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 600, - "type": { - "path": [ - "polkadot_runtime_parachains", - "configuration", - "HostConfiguration" - ], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "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": 387, - "typeName": "AsyncBackingParams" - }, - { - "name": "max_pov_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_downward_message_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_max_parachain_outbound_channels", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_sender_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "hrmp_recipient_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "hrmp_channel_max_capacity", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_channel_max_total_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_max_parachain_inbound_channels", - "type": 4, - "typeName": "u32" - }, - { - "name": "hrmp_channel_max_message_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "executor_params", - "type": 388, - "typeName": "ExecutorParams" - }, - { - "name": "code_retention_period", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "on_demand_cores", - "type": 4, - "typeName": "u32" - }, - { - "name": "on_demand_retries", - "type": 4, - "typeName": "u32" - }, - { - "name": "on_demand_queue_max_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "on_demand_target_queue_utilization", - "type": 393, - "typeName": "Perbill" - }, - { - "name": "on_demand_fee_variability", - "type": 393, - "typeName": "Perbill" - }, - { - "name": "on_demand_base_fee", - "type": 6, - "typeName": "Balance" - }, - { - "name": "on_demand_ttl", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "group_rotation_frequency", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "paras_availability_period", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "scheduling_lookahead", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_validators_per_core", - "type": 255, - "typeName": "Option" - }, - { - "name": "max_validators", - "type": 255, - "typeName": "Option" - }, - { - "name": "dispute_period", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "dispute_post_conclusion_acceptance_period", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "no_show_slots", - "type": 4, - "typeName": "u32" - }, - { - "name": "n_delay_tranches", - "type": 4, - "typeName": "u32" - }, - { - "name": "zeroth_delay_tranche_width", - "type": 4, - "typeName": "u32" - }, - { - "name": "needed_approvals", - "type": 4, - "typeName": "u32" - }, - { - "name": "relay_vrf_modulo_samples", - "type": 4, - "typeName": "u32" - }, - { - "name": "pvf_voting_ttl", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "minimum_validation_upgrade_delay", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "minimum_backing_votes", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 601, - "type": { - "def": { - "sequence": { - "type": 602 - } - } - } - }, - { - "id": 602, - "type": { - "def": { - "tuple": [4, 600] - } - } - }, - { - "id": 603, - "type": { - "path": [ - "polkadot_runtime_parachains", - "configuration", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidNewValue", - "index": 0, - "docs": [ - "The new value for a configuration parameter is invalid." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 604, - "type": { - "def": { - "sequence": { - "type": 403 - } - } - } - }, - { - "id": 605, - "type": { - "def": { - "sequence": { - "type": 272 - } - } - } - }, - { - "id": 606, - "type": { - "path": [ - "polkadot_runtime_parachains", - "shared", - "AllowedRelayParentsTracker" - ], - "params": [ - { - "name": "Hash", - "type": 12 - }, - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "buffer", - "type": 607, - "typeName": "VecDeque<(Hash, Hash)>" - }, - { - "name": "latest_number", - "type": 4, - "typeName": "BlockNumber" - } - ] - } - } - } - }, - { - "id": 607, - "type": { - "def": { - "sequence": { - "type": 608 - } - } - } - }, - { - "id": 608, - "type": { - "def": { - "tuple": [12, 12] - } - } - }, - { - "id": 609, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "AvailabilityBitfieldRecord" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "bitfield", - "type": 400, - "typeName": "AvailabilityBitfield" - }, - { - "name": "submitted_at", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 610, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "CandidatePendingAvailability" - ], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "core", - "type": 97, - "typeName": "CoreIndex" - }, - { - "name": "hash", - "type": 103, - "typeName": "CandidateHash" - }, - { - "name": "descriptor", - "type": 89, - "typeName": "CandidateDescriptor" - }, - { - "name": "availability_votes", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "backers", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "relay_parent_number", - "type": 4, - "typeName": "N" - }, - { - "name": "backed_in_number", - "type": 4, - "typeName": "N" - }, - { - "name": "backing_group", - "type": 98, - "typeName": "GroupIndex" - } - ] - } - } - } - }, - { - "id": 611, - "type": { - "path": [ - "polkadot_runtime_parachains", - "inclusion", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "UnsortedOrDuplicateValidatorIndices", - "index": 0, - "docs": [ - "Validator indices are out of order or contains duplicates." - ] - }, - { - "name": "UnsortedOrDuplicateDisputeStatementSet", - "index": 1, - "docs": [ - "Dispute statement sets are out of order or contain duplicates." - ] - }, - { - "name": "UnsortedOrDuplicateBackedCandidates", - "index": 2, - "docs": [ - "Backed candidates are out of order (core index) or contain duplicates." - ] - }, - { - "name": "UnexpectedRelayParent", - "index": 3, - "docs": [ - "A different relay parent was provided compared to the on-chain stored one." - ] - }, - { - "name": "WrongBitfieldSize", - "index": 4, - "docs": ["Availability bitfield has unexpected size."] - }, - { - "name": "BitfieldAllZeros", - "index": 5, - "docs": ["Bitfield consists of zeros only."] - }, - { - "name": "BitfieldDuplicateOrUnordered", - "index": 6, - "docs": [ - "Multiple bitfields submitted by same validator or validators out of order by index." - ] - }, - { - "name": "ValidatorIndexOutOfBounds", - "index": 7, - "docs": ["Validator index out of bounds."] - }, - { - "name": "InvalidBitfieldSignature", - "index": 8, - "docs": ["Invalid signature"] - }, - { - "name": "UnscheduledCandidate", - "index": 9, - "docs": ["Candidate submitted but para not scheduled."] - }, - { - "name": "CandidateScheduledBeforeParaFree", - "index": 10, - "docs": [ - "Candidate scheduled despite pending candidate already existing for the para." - ] - }, - { - "name": "ScheduledOutOfOrder", - "index": 11, - "docs": ["Scheduled cores out of order."] - }, - { - "name": "HeadDataTooLarge", - "index": 12, - "docs": ["Head data exceeds the configured maximum."] - }, - { - "name": "PrematureCodeUpgrade", - "index": 13, - "docs": ["Code upgrade prematurely."] - }, - { - "name": "NewCodeTooLarge", - "index": 14, - "docs": ["Output code is too large"] - }, - { - "name": "DisallowedRelayParent", - "index": 15, - "docs": [ - "The candidate's relay-parent was not allowed. Either it was", - "not recent enough or it didn't advance based on the last parachain block." - ] - }, - { - "name": "InvalidAssignment", - "index": 16, - "docs": [ - "Failed to compute group index for the core: either it's out of bounds", - "or the relay parent doesn't belong to the current session." - ] - }, - { - "name": "InvalidGroupIndex", - "index": 17, - "docs": ["Invalid group index in core assignment."] - }, - { - "name": "InsufficientBacking", - "index": 18, - "docs": ["Insufficient (non-majority) backing."] - }, - { - "name": "InvalidBacking", - "index": 19, - "docs": [ - "Invalid (bad signature, unknown validator, etc.) backing." - ] - }, - { - "name": "NotCollatorSigned", - "index": 20, - "docs": ["Collator did not sign PoV."] - }, - { - "name": "ValidationDataHashMismatch", - "index": 21, - "docs": [ - "The validation data hash does not match expected." - ] - }, - { - "name": "IncorrectDownwardMessageHandling", - "index": 22, - "docs": [ - "The downward message queue is not processed correctly." - ] - }, - { - "name": "InvalidUpwardMessages", - "index": 23, - "docs": [ - "At least one upward message sent does not pass the acceptance criteria." - ] - }, - { - "name": "HrmpWatermarkMishandling", - "index": 24, - "docs": [ - "The candidate didn't follow the rules of HRMP watermark advancement." - ] - }, - { - "name": "InvalidOutboundHrmp", - "index": 25, - "docs": [ - "The HRMP messages sent by the candidate is not valid." - ] - }, - { - "name": "InvalidValidationCodeHash", - "index": 26, - "docs": [ - "The validation code hash of the candidate is not valid." - ] - }, - { - "name": "ParaHeadMismatch", - "index": 27, - "docs": [ - "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual", - "para head in the commitments." - ] - }, - { - "name": "BitfieldReferencesFreedCore", - "index": 28, - "docs": [ - "A bitfield that references a freed core,", - "either intentionally or as part of a concluded", - "invalid dispute." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 612, - "type": { - "path": ["polkadot_primitives", "v5", "ScrapedOnChainVotes"], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "session", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "backing_validators_per_candidate", - "type": 613, - "typeName": "Vec<(CandidateReceipt, Vec<(ValidatorIndex, ValidityAttestation)>)\n>" - }, - { - "name": "disputes", - "type": 417, - "typeName": "MultiDisputeStatementSet" - } - ] - } - } - } - }, - { - "id": 613, - "type": { - "def": { - "sequence": { - "type": 614 - } - } - } - }, - { - "id": 614, - "type": { - "def": { - "tuple": [88, 615] - } - } - }, - { - "id": 615, - "type": { - "def": { - "sequence": { - "type": 616 - } - } - } - }, - { - "id": 616, - "type": { - "def": { - "tuple": [403, 416] - } - } - }, - { - "id": 617, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras_inherent", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "TooManyInclusionInherents", - "index": 0, - "docs": [ - "Inclusion inherent called more than once per block." - ] - }, - { - "name": "InvalidParentHeader", - "index": 1, - "docs": [ - "The hash of the submitted parent header doesn't correspond to the saved block hash of", - "the parent." - ] - }, - { - "name": "CandidateConcludedInvalid", - "index": 2, - "docs": ["Disputed candidate that was concluded invalid."] - }, - { - "name": "InherentOverweight", - "index": 3, - "docs": [ - "The data given to the inherent will result in an overweight block." - ] - }, - { - "name": "DisputeStatementsUnsortedOrDuplicates", - "index": 4, - "docs": [ - "The ordering of dispute statements was invalid." - ] - }, - { - "name": "DisputeInvalid", - "index": 5, - "docs": ["A dispute statement was invalid."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 618, - "type": { - "def": { - "sequence": { - "type": 604 - } - } - } - }, - { - "id": 619, - "type": { - "def": { - "sequence": { - "type": 620 - } - } - } - }, - { - "id": 620, - "type": { - "path": [ - "polkadot_runtime_parachains", - "scheduler", - "pallet", - "CoreOccupied" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Free", - "index": 0 - }, - { - "name": "Paras", - "fields": [ - { - "type": 621, - "typeName": "ParasEntry" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 621, - "type": { - "path": [ - "polkadot_runtime_parachains", - "scheduler", - "pallet", - "ParasEntry" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "assignment", - "type": 622, - "typeName": "Assignment" - }, - { - "name": "availability_timeouts", - "type": 4, - "typeName": "u32" - }, - { - "name": "ttl", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 622, - "type": { - "path": [ - "polkadot_runtime_parachains", - "scheduler", - "common", - "Assignment" - ], - "def": { - "composite": { - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "ParaId" - } - ] - } - } - } - }, - { - "id": 623, - "type": { - "path": ["BTreeMap"], - "params": [ - { - "name": "K", - "type": 97 - }, - { - "name": "V", - "type": 624 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 626 - } - ] - } - } - } - }, - { - "id": 624, - "type": { - "def": { - "sequence": { - "type": 625 - } - } - } - }, - { - "id": 625, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 621 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 621 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 626, - "type": { - "def": { - "sequence": { - "type": 627 - } - } - } - }, - { - "id": 627, - "type": { - "def": { - "tuple": [97, 624] - } - } - }, - { - "id": 628, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "PvfCheckActiveVoteState" - ], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "votes_accept", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "votes_reject", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "age", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "created_at", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "causes", - "type": 629, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 629, - "type": { - "def": { - "sequence": { - "type": 630 - } - } - } - }, - { - "id": 630, - "type": { - "path": ["polkadot_runtime_parachains", "paras", "PvfCheckCause"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Onboarding", - "fields": [ - { - "type": 90, - "typeName": "ParaId" - } - ], - "index": 0 - }, - { - "name": "Upgrade", - "fields": [ - { - "name": "id", - "type": 90, - "typeName": "ParaId" - }, - { - "name": "included_at", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 631, - "type": { - "def": { - "sequence": { - "type": 95 - } - } - } - }, - { - "id": 632, - "type": { - "def": { - "sequence": { - "type": 90 - } - } - } - }, - { - "id": 633, - "type": { - "path": ["polkadot_runtime_parachains", "paras", "ParaLifecycle"], - "def": { - "variant": { - "variants": [ - { - "name": "Onboarding", - "index": 0 - }, - { - "name": "Parathread", - "index": 1 - }, - { - "name": "Parachain", - "index": 2 - }, - { - "name": "UpgradingParathread", - "index": 3 - }, - { - "name": "DowngradingParachain", - "index": 4 - }, - { - "name": "OffboardingParathread", - "index": 5 - }, - { - "name": "OffboardingParachain", - "index": 6 - } - ] - } - } - } - }, - { - "id": 634, - "type": { - "def": { - "tuple": [90, 4] - } - } - }, - { - "id": 635, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "ParaPastCodeMeta" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "upgrade_times", - "type": 636, - "typeName": "Vec>" - }, - { - "name": "last_pruned", - "type": 255, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 636, - "type": { - "def": { - "sequence": { - "type": 637 - } - } - } - }, - { - "id": 637, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "ReplacementTimes" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "expected_at", - "type": 4, - "typeName": "N" - }, - { - "name": "activated_at", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 638, - "type": { - "def": { - "sequence": { - "type": 634 - } - } - } - }, - { - "id": 639, - "type": { - "path": ["polkadot_primitives", "v5", "UpgradeGoAhead"], - "def": { - "variant": { - "variants": [ - { - "name": "Abort", - "index": 0 - }, - { - "name": "GoAhead", - "index": 1 - } - ] - } - } - } - }, - { - "id": 640, - "type": { - "path": ["polkadot_primitives", "v5", "UpgradeRestriction"], - "def": { - "variant": { - "variants": [ - { - "name": "Present", - "index": 0 - } - ] - } - } - } - }, - { - "id": 641, - "type": { - "path": [ - "polkadot_runtime_parachains", - "paras", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NotRegistered", - "index": 0, - "docs": ["Para is not registered in our system."] - }, - { - "name": "CannotOnboard", - "index": 1, - "docs": [ - "Para cannot be onboarded because it is already tracked by our system." - ] - }, - { - "name": "CannotOffboard", - "index": 2, - "docs": ["Para cannot be offboarded at this time."] - }, - { - "name": "CannotUpgrade", - "index": 3, - "docs": [ - "Para cannot be upgraded to a lease holding parachain." - ] - }, - { - "name": "CannotDowngrade", - "index": 4, - "docs": [ - "Para cannot be downgraded to an on-demand parachain." - ] - }, - { - "name": "PvfCheckStatementStale", - "index": 5, - "docs": ["The statement for PVF pre-checking is stale."] - }, - { - "name": "PvfCheckStatementFuture", - "index": 6, - "docs": [ - "The statement for PVF pre-checking is for a future session." - ] - }, - { - "name": "PvfCheckValidatorIndexOutOfBounds", - "index": 7, - "docs": ["Claimed validator index is out of bounds."] - }, - { - "name": "PvfCheckInvalidSignature", - "index": 8, - "docs": [ - "The signature for the PVF pre-checking is invalid." - ] - }, - { - "name": "PvfCheckDoubleVote", - "index": 9, - "docs": ["The given validator already has cast a vote."] - }, - { - "name": "PvfCheckSubjectInvalid", - "index": 10, - "docs": [ - "The given PVF does not exist at the moment of process a vote." - ] - }, - { - "name": "CannotUpgradeCode", - "index": 11, - "docs": [ - "Parachain cannot currently schedule a code upgrade." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 642, - "type": { - "def": { - "sequence": { - "type": 643 - } - } - } - }, - { - "id": 643, - "type": { - "path": [ - "polkadot_runtime_parachains", - "initializer", - "BufferedSessionChange" - ], - "def": { - "composite": { - "fields": [ - { - "name": "validators", - "type": 605, - "typeName": "Vec" - }, - { - "name": "queued", - "type": 605, - "typeName": "Vec" - }, - { - "name": "session_index", - "type": 4, - "typeName": "SessionIndex" - } - ] - } - } - } - }, - { - "id": 644, - "type": { - "def": { - "sequence": { - "type": 645 - } - } - } - }, - { - "id": 645, - "type": { - "path": ["polkadot_core_primitives", "InboundDownwardMessage"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "sent_at", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "msg", - "type": 13, - "typeName": "DownwardMessage" - } - ] - } - } - } - }, - { - "id": 646, - "type": { - "path": [ - "polkadot_runtime_parachains", - "hrmp", - "HrmpOpenChannelRequest" - ], - "def": { - "composite": { - "fields": [ - { - "name": "confirmed", - "type": 54, - "typeName": "bool" - }, - { - "name": "_age", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "sender_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "max_message_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_capacity", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_total_size", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 647, - "type": { - "def": { - "sequence": { - "type": 101 - } - } - } - }, - { - "id": 648, - "type": { - "path": ["polkadot_runtime_parachains", "hrmp", "HrmpChannel"], - "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": 308, - "typeName": "Option" - }, - { - "name": "sender_deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "recipient_deposit", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 649, - "type": { - "def": { - "sequence": { - "type": 650 - } - } - } - }, - { - "id": 650, - "type": { - "path": ["polkadot_core_primitives", "InboundHrmpMessage"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "sent_at", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "data", - "type": 13, - "typeName": "sp_std::vec::Vec" - } - ] - } - } - } - }, - { - "id": 651, - "type": { - "def": { - "sequence": { - "type": 652 - } - } - } - }, - { - "id": 652, - "type": { - "def": { - "tuple": [4, 632] - } - } - }, - { - "id": 653, - "type": { - "path": [ - "polkadot_runtime_parachains", - "hrmp", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "OpenHrmpChannelToSelf", - "index": 0, - "docs": [ - "The sender tried to open a channel to themselves." - ] - }, - { - "name": "OpenHrmpChannelInvalidRecipient", - "index": 1, - "docs": ["The recipient is not a valid para."] - }, - { - "name": "OpenHrmpChannelZeroCapacity", - "index": 2, - "docs": ["The requested capacity is zero."] - }, - { - "name": "OpenHrmpChannelCapacityExceedsLimit", - "index": 3, - "docs": [ - "The requested capacity exceeds the global limit." - ] - }, - { - "name": "OpenHrmpChannelZeroMessageSize", - "index": 4, - "docs": ["The requested maximum message size is 0."] - }, - { - "name": "OpenHrmpChannelMessageSizeExceedsLimit", - "index": 5, - "docs": [ - "The open request requested the message size that exceeds the global limit." - ] - }, - { - "name": "OpenHrmpChannelAlreadyExists", - "index": 6, - "docs": ["The channel already exists"] - }, - { - "name": "OpenHrmpChannelAlreadyRequested", - "index": 7, - "docs": [ - "There is already a request to open the same channel." - ] - }, - { - "name": "OpenHrmpChannelLimitExceeded", - "index": 8, - "docs": [ - "The sender already has the maximum number of allowed outbound channels." - ] - }, - { - "name": "AcceptHrmpChannelDoesntExist", - "index": 9, - "docs": [ - "The channel from the sender to the origin doesn't exist." - ] - }, - { - "name": "AcceptHrmpChannelAlreadyConfirmed", - "index": 10, - "docs": ["The channel is already confirmed."] - }, - { - "name": "AcceptHrmpChannelLimitExceeded", - "index": 11, - "docs": [ - "The recipient already has the maximum number of allowed inbound channels." - ] - }, - { - "name": "CloseHrmpChannelUnauthorized", - "index": 12, - "docs": [ - "The origin tries to close a channel where it is neither the sender nor the recipient." - ] - }, - { - "name": "CloseHrmpChannelDoesntExist", - "index": 13, - "docs": ["The channel to be closed doesn't exist."] - }, - { - "name": "CloseHrmpChannelAlreadyUnderway", - "index": 14, - "docs": [ - "The channel close request is already requested." - ] - }, - { - "name": "CancelHrmpOpenChannelUnauthorized", - "index": 15, - "docs": [ - "Canceling is requested by neither the sender nor recipient of the open channel request." - ] - }, - { - "name": "OpenHrmpChannelDoesntExist", - "index": 16, - "docs": ["The open request doesn't exist."] - }, - { - "name": "OpenHrmpChannelAlreadyConfirmed", - "index": 17, - "docs": [ - "Cannot cancel an HRMP open channel request because it is already confirmed." - ] - }, - { - "name": "WrongWitness", - "index": 18, - "docs": ["The provided witness data is wrong."] - }, - { - "name": "ChannelCreationNotAuthorized", - "index": 19, - "docs": [ - "The channel between these two chains cannot be authorized." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 654, - "type": { - "def": { - "sequence": { - "type": 273 - } - } - } - }, - { - "id": 655, - "type": { - "path": ["polkadot_primitives", "v5", "SessionInfo"], - "def": { - "composite": { - "fields": [ - { - "name": "active_validator_indices", - "type": 604, - "typeName": "Vec" - }, - { - "name": "random_seed", - "type": 1, - "typeName": "[u8; 32]" - }, - { - "name": "dispute_period", - "type": 4, - "typeName": "SessionIndex" - }, - { - "name": "validators", - "type": 656, - "typeName": "IndexedVec" - }, - { - "name": "discovery_keys", - "type": 657, - "typeName": "Vec" - }, - { - "name": "assignment_keys", - "type": 654, - "typeName": "Vec" - }, - { - "name": "validator_groups", - "type": 658, - "typeName": "IndexedVec>" - }, - { - "name": "n_cores", - "type": 4, - "typeName": "u32" - }, - { - "name": "zeroth_delay_tranche_width", - "type": 4, - "typeName": "u32" - }, - { - "name": "relay_vrf_modulo_samples", - "type": 4, - "typeName": "u32" - }, - { - "name": "n_delay_tranches", - "type": 4, - "typeName": "u32" - }, - { - "name": "no_show_slots", - "type": 4, - "typeName": "u32" - }, - { - "name": "needed_approvals", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 656, - "type": { - "path": ["polkadot_primitives", "v5", "IndexedVec"], - "params": [ - { - "name": "K", - "type": 403 - }, - { - "name": "V", - "type": 272 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 605, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 657, - "type": { - "def": { - "sequence": { - "type": 274 - } - } - } - }, - { - "id": 658, - "type": { - "path": ["polkadot_primitives", "v5", "IndexedVec"], - "params": [ - { - "name": "K", - "type": 98 - }, - { - "name": "V", - "type": 604 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 618, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 659, - "type": { - "def": { - "tuple": [4, 103] - } - } - }, - { - "id": 660, - "type": { - "path": ["polkadot_primitives", "v5", "DisputeState"], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "validators_for", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "validators_against", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "start", - "type": 4, - "typeName": "N" - }, - { - "name": "concluded_at", - "type": 255, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 661, - "type": { - "path": ["BTreeSet"], - "params": [ - { - "name": "T", - "type": 403 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 604 - } - ] - } - } - } - }, - { - "id": 662, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "DuplicateDisputeStatementSets", - "index": 0, - "docs": ["Duplicate dispute statement sets provided."] - }, - { - "name": "AncientDisputeStatement", - "index": 1, - "docs": ["Ancient dispute statement provided."] - }, - { - "name": "ValidatorIndexOutOfBounds", - "index": 2, - "docs": [ - "Validator index on statement is out of bounds for session." - ] - }, - { - "name": "InvalidSignature", - "index": 3, - "docs": ["Invalid signature on statement."] - }, - { - "name": "DuplicateStatement", - "index": 4, - "docs": [ - "Validator vote submitted more than once to dispute." - ] - }, - { - "name": "SingleSidedDispute", - "index": 5, - "docs": [ - "A dispute where there are only votes on one side." - ] - }, - { - "name": "MaliciousBacker", - "index": 6, - "docs": ["A dispute vote from a malicious backer."] - }, - { - "name": "MissingBackingVotes", - "index": 7, - "docs": [ - "No backing votes were provides along dispute statements." - ] - }, - { - "name": "UnconfirmedDispute", - "index": 8, - "docs": ["Unconfirmed dispute statement sets provided."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 663, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "slashing", - "PendingSlashes" - ], - "def": { - "composite": { - "fields": [ - { - "name": "keys", - "type": 664, - "typeName": "BTreeMap" - }, - { - "name": "kind", - "type": 432, - "typeName": "SlashingOffenceKind" - } - ] - } - } - } - }, - { - "id": 664, - "type": { - "path": ["BTreeMap"], - "params": [ - { - "name": "K", - "type": 403 - }, - { - "name": "V", - "type": 272 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 665 - } - ] - } - } - } - }, - { - "id": 665, - "type": { - "def": { - "sequence": { - "type": 666 - } - } - } - }, - { - "id": 666, - "type": { - "def": { - "tuple": [403, 272] - } - } - }, - { - "id": 667, - "type": { - "path": [ - "polkadot_runtime_parachains", - "disputes", - "slashing", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidKeyOwnershipProof", - "index": 0, - "docs": ["The key ownership proof is invalid."] - }, - { - "name": "InvalidSessionIndex", - "index": 1, - "docs": ["The session index is too old or invalid."] - }, - { - "name": "InvalidCandidateHash", - "index": 2, - "docs": ["The candidate hash is invalid."] - }, - { - "name": "InvalidValidatorIndex", - "index": 3, - "docs": [ - "There is no pending slash for the given validator index and time", - "slot." - ] - }, - { - "name": "ValidatorIndexIdMismatch", - "index": 4, - "docs": [ - "The validator index does not match the validator id." - ] - }, - { - "name": "DuplicateSlashingReport", - "index": 5, - "docs": [ - "The given slashing report is valid but already previously reported." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 668, - "type": { - "path": ["pallet_message_queue", "BookState"], - "params": [ - { - "name": "MessageOrigin", - "type": 107 - } - ], - "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": 669, - "typeName": "Option>" - }, - { - "name": "message_count", - "type": 11, - "typeName": "u64" - }, - { - "name": "size", - "type": 11, - "typeName": "u64" - } - ] - } - } - } - }, - { - "id": 669, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 670 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 670 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 670, - "type": { - "path": ["pallet_message_queue", "Neighbours"], - "params": [ - { - "name": "MessageOrigin", - "type": 107 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "prev", - "type": 107, - "typeName": "MessageOrigin" - }, - { - "name": "next", - "type": 107, - "typeName": "MessageOrigin" - } - ] - } - } - } - }, - { - "id": 671, - "type": { - "def": { - "tuple": [107, 4] - } - } - }, - { - "id": 672, - "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": 673, - "typeName": "BoundedVec>" - } - ] - } - } - } - }, - { - "id": 673, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 674, - "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." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 675, - "type": { - "def": { - "sequence": { - "type": 622 - } - } - } - }, - { - "id": 676, - "type": { - "path": [ - "polkadot_runtime_parachains", - "assigner_on_demand", - "CoreAffinityCount" - ], - "def": { - "composite": { - "fields": [ - { - "name": "core_idx", - "type": 97, - "typeName": "CoreIndex" - }, - { - "name": "count", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 677, - "type": { - "path": [ - "polkadot_runtime_parachains", - "assigner_on_demand", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidParaId", - "index": 0, - "docs": [ - "The `ParaId` supplied to the `place_order` call is not a valid `ParaThread`, making the", - "call is invalid." - ] - }, - { - "name": "QueueFull", - "index": 1, - "docs": [ - "The order queue is full, `place_order` will not continue." - ] - }, - { - "name": "SpotPriceHigherThanMaxAmount", - "index": 2, - "docs": [ - "The current spot price is higher than the max amount specified in the `place_order`", - "call, making it invalid." - ] - }, - { - "name": "NoOnDemandCores", - "index": 3, - "docs": [ - "There are no on demand cores available. `place_order` will not add anything to the", - "queue." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 678, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_registrar", - "ParaInfo" - ], - "params": [ - { - "name": "Account", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "manager", - "type": 0, - "typeName": "Account" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "locked", - "type": 679, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 679, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 54 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 54 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 680, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_registrar", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "NotRegistered", - "index": 0, - "docs": ["The ID is not registered."] - }, - { - "name": "AlreadyRegistered", - "index": 1, - "docs": ["The ID is already registered."] - }, - { - "name": "NotOwner", - "index": 2, - "docs": ["The caller is not the owner of this Id."] - }, - { - "name": "CodeTooLarge", - "index": 3, - "docs": ["Invalid para code size."] - }, - { - "name": "HeadDataTooLarge", - "index": 4, - "docs": ["Invalid para head data size."] - }, - { - "name": "NotParachain", - "index": 5, - "docs": ["Para is not a Parachain."] - }, - { - "name": "NotParathread", - "index": 6, - "docs": [ - "Para is not a Parathread (on-demand parachain)." - ] - }, - { - "name": "CannotDeregister", - "index": 7, - "docs": ["Cannot deregister para"] - }, - { - "name": "CannotDowngrade", - "index": 8, - "docs": [ - "Cannot schedule downgrade of lease holding parachain to on-demand parachain" - ] - }, - { - "name": "CannotUpgrade", - "index": 9, - "docs": [ - "Cannot schedule upgrade of on-demand parachain to lease holding parachain" - ] - }, - { - "name": "ParaLocked", - "index": 10, - "docs": [ - "Para is locked from manipulation by the manager. Must use parachain or relay chain", - "governance." - ] - }, - { - "name": "NotReserved", - "index": 11, - "docs": [ - "The ID given for registration has not been reserved." - ] - }, - { - "name": "EmptyCode", - "index": 12, - "docs": [ - "Registering parachain with empty code is not allowed." - ] - }, - { - "name": "CannotSwap", - "index": 13, - "docs": [ - "Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras", - "are correct for the swap to work." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 681, - "type": { - "def": { - "sequence": { - "type": 569 - } - } - } - }, - { - "id": 682, - "type": { - "path": ["polkadot_runtime_common", "slots", "pallet", "Error"], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ParaNotOnboarding", - "index": 0, - "docs": ["The parachain ID is not onboarding."] - }, - { - "name": "LeaseError", - "index": 1, - "docs": ["There was an error with the lease."] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 683, - "type": { - "def": { - "tuple": [0, 90] - } - } - }, - { - "id": 684, - "type": { - "def": { - "array": { - "len": 36, - "type": 685 - } - } - } - }, - { - "id": 685, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 686 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 686 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 686, - "type": { - "def": { - "tuple": [0, 90, 6] - } - } - }, - { - "id": 687, - "type": { - "path": [ - "polkadot_runtime_common", - "auctions", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "AuctionInProgress", - "index": 0, - "docs": ["This auction is already in progress."] - }, - { - "name": "LeasePeriodInPast", - "index": 1, - "docs": ["The lease period is in the past."] - }, - { - "name": "ParaNotRegistered", - "index": 2, - "docs": ["Para is not registered"] - }, - { - "name": "NotCurrentAuction", - "index": 3, - "docs": ["Not a current auction."] - }, - { - "name": "NotAuction", - "index": 4, - "docs": ["Not an auction."] - }, - { - "name": "AuctionEnded", - "index": 5, - "docs": ["Auction has already ended."] - }, - { - "name": "AlreadyLeasedOut", - "index": 6, - "docs": [ - "The para is already leased out for part of this range." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 688, - "type": { - "path": ["polkadot_runtime_common", "crowdloan", "FundInfo"], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "Balance", - "type": 6 - }, - { - "name": "BlockNumber", - "type": 4 - }, - { - "name": "LeasePeriod", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "depositor", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "verifier", - "type": 440, - "typeName": "Option" - }, - { - "name": "deposit", - "type": 6, - "typeName": "Balance" - }, - { - "name": "raised", - "type": 6, - "typeName": "Balance" - }, - { - "name": "end", - "type": 4, - "typeName": "BlockNumber" - }, - { - "name": "cap", - "type": 6, - "typeName": "Balance" - }, - { - "name": "last_contribution", - "type": 689, - "typeName": "LastContribution" - }, - { - "name": "first_period", - "type": 4, - "typeName": "LeasePeriod" - }, - { - "name": "last_period", - "type": 4, - "typeName": "LeasePeriod" - }, - { - "name": "fund_index", - "type": 4, - "typeName": "FundIndex" - } - ] - } - } - } - }, - { - "id": 689, - "type": { - "path": [ - "polkadot_runtime_common", - "crowdloan", - "LastContribution" - ], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Never", - "index": 0 - }, - { - "name": "PreEnding", - "fields": [ - { - "type": 4, - "typeName": "u32" - } - ], - "index": 1 - }, - { - "name": "Ending", - "fields": [ - { - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 690, - "type": { - "path": [ - "polkadot_runtime_common", - "crowdloan", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "FirstPeriodInPast", - "index": 0, - "docs": [ - "The current lease period is more than the first lease period." - ] - }, - { - "name": "FirstPeriodTooFarInFuture", - "index": 1, - "docs": [ - "The first lease period needs to at least be less than 3 `max_value`." - ] - }, - { - "name": "LastPeriodBeforeFirstPeriod", - "index": 2, - "docs": [ - "Last lease period must be greater than first lease period." - ] - }, - { - "name": "LastPeriodTooFarInFuture", - "index": 3, - "docs": [ - "The last lease period cannot be more than 3 periods after the first period." - ] - }, - { - "name": "CannotEndInPast", - "index": 4, - "docs": [ - "The campaign ends before the current block number. The end must be in the future." - ] - }, - { - "name": "EndTooFarInFuture", - "index": 5, - "docs": [ - "The end date for this crowdloan is not sensible." - ] - }, - { - "name": "Overflow", - "index": 6, - "docs": ["There was an overflow."] - }, - { - "name": "ContributionTooSmall", - "index": 7, - "docs": [ - "The contribution was below the minimum, `MinContribution`." - ] - }, - { - "name": "InvalidParaId", - "index": 8, - "docs": ["Invalid fund index."] - }, - { - "name": "CapExceeded", - "index": 9, - "docs": ["Contributions exceed maximum amount."] - }, - { - "name": "ContributionPeriodOver", - "index": 10, - "docs": ["The contribution period has already ended."] - }, - { - "name": "InvalidOrigin", - "index": 11, - "docs": ["The origin of this call is invalid."] - }, - { - "name": "NotParachain", - "index": 12, - "docs": [ - "This crowdloan does not correspond to a parachain." - ] - }, - { - "name": "LeaseActive", - "index": 13, - "docs": [ - "This parachain lease is still active and retirement cannot yet begin." - ] - }, - { - "name": "BidOrLeaseActive", - "index": 14, - "docs": [ - "This parachain's bid or lease is still active and withdraw cannot yet begin." - ] - }, - { - "name": "FundNotEnded", - "index": 15, - "docs": ["The crowdloan has not yet ended."] - }, - { - "name": "NoContributions", - "index": 16, - "docs": [ - "There are no contributions stored in this crowdloan." - ] - }, - { - "name": "NotReadyToDissolve", - "index": 17, - "docs": [ - "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement", - "period." - ] - }, - { - "name": "InvalidSignature", - "index": 18, - "docs": ["Invalid signature."] - }, - { - "name": "MemoTooLarge", - "index": 19, - "docs": ["The provided memo is too large."] - }, - { - "name": "AlreadyInNewRaise", - "index": 20, - "docs": ["The fund is already in `NewRaise`"] - }, - { - "name": "VrfDelayInProgress", - "index": 21, - "docs": ["No contributions allowed during the VRF delay"] - }, - { - "name": "NoLeasePeriod", - "index": 22, - "docs": [ - "A lease period has not started yet, due to an offset in the starting block." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 691, - "type": { - "path": ["pallet_xcm", "pallet", "QueryStatus"], - "params": [ - { - "name": "BlockNumber", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Pending", - "fields": [ - { - "name": "responder", - "type": 169, - "typeName": "VersionedMultiLocation" - }, - { - "name": "maybe_match_querier", - "type": 692, - "typeName": "Option" - }, - { - "name": "maybe_notify", - "type": 693, - "typeName": "Option<(u8, u8)>" - }, - { - "name": "timeout", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 0 - }, - { - "name": "VersionNotifier", - "fields": [ - { - "name": "origin", - "type": 169, - "typeName": "VersionedMultiLocation" - }, - { - "name": "is_active", - "type": 54, - "typeName": "bool" - } - ], - "index": 1 - }, - { - "name": "Ready", - "fields": [ - { - "name": "response", - "type": 695, - "typeName": "VersionedResponse" - }, - { - "name": "at", - "type": 4, - "typeName": "BlockNumber" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 692, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 169 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 169 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 693, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 694 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 694 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 694, - "type": { - "def": { - "tuple": [2, 2] - } - } - }, - { - "id": 695, - "type": { - "path": ["staging_xcm", "VersionedResponse"], - "def": { - "variant": { - "variants": [ - { - "name": "V2", - "fields": [ - { - "type": 449, - "typeName": "v2::Response" - } - ], - "index": 2 - }, - { - "name": "V3", - "fields": [ - { - "type": 138, - "typeName": "v3::Response" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 696, - "type": { - "def": { - "tuple": [4, 169] - } - } - }, - { - "id": 697, - "type": { - "def": { - "tuple": [11, 9, 4] - } - } - }, - { - "id": 698, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 699 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 700, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 699, - "type": { - "def": { - "tuple": [169, 4] - } - } - }, - { - "id": 700, - "type": { - "def": { - "sequence": { - "type": 699 - } - } - } - }, - { - "id": 701, - "type": { - "path": ["pallet_xcm", "pallet", "VersionMigrationStage"], - "def": { - "variant": { - "variants": [ - { - "name": "MigrateSupportedVersion", - "index": 0 - }, - { - "name": "MigrateVersionNotifiers", - "index": 1 - }, - { - "name": "NotifyCurrentTargets", - "fields": [ - { - "type": 702, - "typeName": "Option>" - } - ], - "index": 2 - }, - { - "name": "MigrateAndNotifyOldTargets", - "index": 3 - } - ] - } - } - } - }, - { - "id": 702, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 13 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 13 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 703, - "type": { - "def": { - "tuple": [4, 0, 704] - } - } - }, - { - "id": 704, - "type": { - "path": ["staging_xcm", "VersionedAssetId"], - "def": { - "variant": { - "variants": [ - { - "name": "V3", - "fields": [ - { - "type": 134, - "typeName": "v3::AssetId" - } - ], - "index": 3 - } - ] - } - } - } - }, - { - "id": 705, - "type": { - "path": ["pallet_xcm", "pallet", "RemoteLockedFungibleRecord"], - "params": [ - { - "name": "ConsumerIdentifier", - "type": 47 - }, - { - "name": "MaxConsumers", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "amount", - "type": 6, - "typeName": "u128" - }, - { - "name": "owner", - "type": 169, - "typeName": "VersionedMultiLocation" - }, - { - "name": "locker", - "type": 169, - "typeName": "VersionedMultiLocation" - }, - { - "name": "consumers", - "type": 706, - "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>" - } - ] - } - } - } - }, - { - "id": 706, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 707 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 708, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 707, - "type": { - "def": { - "tuple": [47, 6] - } - } - }, - { - "id": 708, - "type": { - "def": { - "sequence": { - "type": 707 - } - } - } - }, - { - "id": 709, - "type": { - "path": ["bounded_collections", "bounded_vec", "BoundedVec"], - "params": [ - { - "name": "T", - "type": 710 - }, - { - "name": "S", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 711, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 710, - "type": { - "def": { - "tuple": [6, 169] - } - } - }, - { - "id": 711, - "type": { - "def": { - "sequence": { - "type": 710 - } - } - } - }, - { - "id": 712, - "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 `MultiLocation` 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": "InvalidAsset", - "index": 13, - "docs": ["Invalid asset for the operation."] - }, - { - "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." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 713, - "type": { - "path": [ - "polkadot_runtime_common", - "paras_sudo_wrapper", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ParaDoesntExist", - "index": 0, - "docs": ["The specified parachain is not registered."] - }, - { - "name": "ParaAlreadyExists", - "index": 1, - "docs": ["The specified parachain is already registered."] - }, - { - "name": "ExceedsMaxMessageSize", - "index": 2, - "docs": [ - "A DMP message couldn't be sent because it exceeds the maximum size allowed for a", - "downward message." - ] - }, - { - "name": "CouldntCleanup", - "index": 3, - "docs": ["Could not schedule para cleanup."] - }, - { - "name": "NotParathread", - "index": 4, - "docs": ["Not a parathread (on-demand parachain)."] - }, - { - "name": "NotParachain", - "index": 5, - "docs": ["Not a lease holding parachain."] - }, - { - "name": "CannotUpgrade", - "index": 6, - "docs": [ - "Cannot upgrade on-demand parachain to lease holding parachain." - ] - }, - { - "name": "CannotDowngrade", - "index": 7, - "docs": [ - "Cannot downgrade lease holding parachain to on-demand." - ] - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 714, - "type": { - "path": [ - "polkadot_runtime_common", - "assigned_slots", - "ParachainTemporarySlot" - ], - "params": [ - { - "name": "AccountId", - "type": 0 - }, - { - "name": "LeasePeriod", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "manager", - "type": 0, - "typeName": "AccountId" - }, - { - "name": "period_begin", - "type": 4, - "typeName": "LeasePeriod" - }, - { - "name": "period_count", - "type": 4, - "typeName": "LeasePeriod" - }, - { - "name": "last_lease", - "type": 255, - "typeName": "Option" - }, - { - "name": "lease_count", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 715, - "type": { - "path": [ - "polkadot_runtime_common", - "assigned_slots", - "pallet", - "Error" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "ParaDoesntExist", - "index": 0, - "docs": ["The specified parachain is not registered."] - }, - { - "name": "NotParathread", - "index": 1, - "docs": ["Not a parathread (on-demand parachain)."] - }, - { - "name": "CannotUpgrade", - "index": 2, - "docs": [ - "Cannot upgrade on-demand parachain to lease holding", - "parachain." - ] - }, - { - "name": "CannotDowngrade", - "index": 3, - "docs": [ - "Cannot downgrade lease holding parachain to", - "on-demand." - ] - }, - { - "name": "SlotAlreadyAssigned", - "index": 4, - "docs": ["Permanent or Temporary slot already assigned."] - }, - { - "name": "SlotNotAssigned", - "index": 5, - "docs": [ - "Permanent or Temporary slot has not been assigned." - ] - }, - { - "name": "OngoingLeaseExists", - "index": 6, - "docs": ["An ongoing lease already exists."] - }, - { - "name": "MaxPermanentSlotsExceeded", - "index": 7 - }, - { - "name": "MaxTemporarySlotsExceeded", - "index": 8 - } - ] - } - }, - "docs": ["The `Error` enum of this pallet."] - } - }, - { - "id": 716, - "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": 717, - "type": { - "def": { - "tuple": [718, 719, 720, 721, 722, 724, 725, 726] - } - } - }, - { - "id": 718, - "type": { - "path": [ - "frame_system", - "extensions", - "check_non_zero_sender", - "CheckNonZeroSender" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": {} - } - } - }, - { - "id": 719, - "type": { - "path": [ - "frame_system", - "extensions", - "check_spec_version", - "CheckSpecVersion" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": {} - } - } - }, - { - "id": 720, - "type": { - "path": [ - "frame_system", - "extensions", - "check_tx_version", - "CheckTxVersion" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": {} - } - } - }, - { - "id": 721, - "type": { - "path": [ - "frame_system", - "extensions", - "check_genesis", - "CheckGenesis" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": {} - } - } - }, - { - "id": 722, - "type": { - "path": [ - "frame_system", - "extensions", - "check_mortality", - "CheckMortality" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 723, - "typeName": "Era" - } - ] - } - } - } - }, - { - "id": 723, - "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": 724, - "type": { - "path": [ - "frame_system", - "extensions", - "check_nonce", - "CheckNonce" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 122, - "typeName": "T::Nonce" - } - ] - } - } - } - }, - { - "id": 725, - "type": { - "path": [ - "frame_system", - "extensions", - "check_weight", - "CheckWeight" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": {} - } - } - }, - { - "id": 726, - "type": { - "path": [ - "pallet_transaction_payment", - "ChargeTransactionPayment" - ], - "params": [ - { - "name": "T", - "type": null - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 125, - "typeName": "BalanceOf" - } - ] - } - } - } - }, - { - "id": 727, - "type": { - "path": ["rococo_runtime", "Runtime"], - "def": { - "composite": {} - } - } - }, - { - "id": 728, - "type": { - "path": ["sp_runtime", "generic", "block", "Block"], - "params": [ - { - "name": "Header", - "type": 220 - }, - { - "name": "Extrinsic", - "type": 729 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "header", - "type": 220, - "typeName": "Header" - }, - { - "name": "extrinsics", - "type": 730, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 729, - "type": { - "path": [ - "sp_runtime", - "generic", - "unchecked_extrinsic", - "UncheckedExtrinsic" - ], - "params": [ - { - "name": "Address", - "type": 226 - }, - { - "name": "Call", - "type": 305 - }, - { - "name": "Signature", - "type": 443 - }, - { - "name": "Extra", - "type": 717 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 13 - } - ] - } - } - } - }, - { - "id": 730, - "type": { - "def": { - "sequence": { - "type": 729 - } - } - } - }, - { - "id": 731, - "type": { - "path": ["sp_core", "OpaqueMetadata"], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 732, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 731 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 731 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 733, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 55 - }, - { - "name": "E", - "type": 734 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 55 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 734 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 734, - "type": { - "path": [ - "sp_runtime", - "transaction_validity", - "TransactionValidityError" - ], - "def": { - "variant": { - "variants": [ - { - "name": "Invalid", - "fields": [ - { - "type": 735, - "typeName": "InvalidTransaction" - } - ], - "index": 0 - }, - { - "name": "Unknown", - "fields": [ - { - "type": 736, - "typeName": "UnknownTransaction" - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 735, - "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": 736, - "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": 737, - "type": { - "path": ["sp_inherents", "InherentData"], - "def": { - "composite": { - "fields": [ - { - "name": "data", - "type": 738, - "typeName": "BTreeMap>" - } - ] - } - } - } - }, - { - "id": 738, - "type": { - "path": ["BTreeMap"], - "params": [ - { - "name": "K", - "type": 137 - }, - { - "name": "V", - "type": 13 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 739 - } - ] - } - } - } - }, - { - "id": 739, - "type": { - "def": { - "sequence": { - "type": 740 - } - } - } - }, - { - "id": 740, - "type": { - "def": { - "tuple": [137, 13] - } - } - }, - { - "id": 741, - "type": { - "path": ["sp_inherents", "CheckInherentsResult"], - "def": { - "composite": { - "fields": [ - { - "name": "okay", - "type": 54, - "typeName": "bool" - }, - { - "name": "fatal_error", - "type": 54, - "typeName": "bool" - }, - { - "name": "errors", - "type": 737, - "typeName": "InherentData" - } - ] - } - } - } - }, - { - "id": 742, - "type": { - "path": [ - "sp_runtime", - "transaction_validity", - "TransactionSource" - ], - "def": { - "variant": { - "variants": [ - { - "name": "InBlock", - "index": 0 - }, - { - "name": "Local", - "index": 1 - }, - { - "name": "External", - "index": 2 - } - ] - } - } - } - }, - { - "id": 743, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 744 - }, - { - "name": "E", - "type": 734 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 744 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 734 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 744, - "type": { - "path": [ - "sp_runtime", - "transaction_validity", - "ValidTransaction" - ], - "def": { - "composite": { - "fields": [ - { - "name": "priority", - "type": 11, - "typeName": "TransactionPriority" - }, - { - "name": "requires", - "type": 185, - "typeName": "Vec" - }, - { - "name": "provides", - "type": 185, - "typeName": "Vec" - }, - { - "name": "longevity", - "type": 11, - "typeName": "TransactionLongevity" - }, - { - "name": "propagate", - "type": 54, - "typeName": "bool" - } - ] - } - } - } - }, - { - "id": 745, - "type": { - "def": { - "tuple": [618, 746] - } - } - }, - { - "id": 746, - "type": { - "path": ["polkadot_primitives", "v5", "GroupRotationInfo"], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "session_start_block", - "type": 4, - "typeName": "N" - }, - { - "name": "group_rotation_frequency", - "type": 4, - "typeName": "N" - }, - { - "name": "now", - "type": 4, - "typeName": "N" - } - ] - } - } - } - }, - { - "id": 747, - "type": { - "def": { - "sequence": { - "type": 748 - } - } - } - }, - { - "id": 748, - "type": { - "path": ["polkadot_primitives", "v5", "CoreState"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Occupied", - "fields": [ - { - "type": 749, - "typeName": "OccupiedCore" - } - ], - "index": 0 - }, - { - "name": "Scheduled", - "fields": [ - { - "type": 751, - "typeName": "ScheduledCore" - } - ], - "index": 1 - }, - { - "name": "Free", - "index": 2 - } - ] - } - } - } - }, - { - "id": 749, - "type": { - "path": ["polkadot_primitives", "v5", "OccupiedCore"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "next_up_on_available", - "type": 750, - "typeName": "Option" - }, - { - "name": "occupied_since", - "type": 4, - "typeName": "N" - }, - { - "name": "time_out_at", - "type": 4, - "typeName": "N" - }, - { - "name": "next_up_on_time_out", - "type": 750, - "typeName": "Option" - }, - { - "name": "availability", - "type": 401, - "typeName": "BitVec" - }, - { - "name": "group_responsible", - "type": 98, - "typeName": "GroupIndex" - }, - { - "name": "candidate_hash", - "type": 103, - "typeName": "CandidateHash" - }, - { - "name": "candidate_descriptor", - "type": 89, - "typeName": "CandidateDescriptor" - } - ] - } - } - } - }, - { - "id": 750, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 751 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 751 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 751, - "type": { - "path": ["polkadot_primitives", "v5", "ScheduledCore"], - "def": { - "composite": { - "fields": [ - { - "name": "para_id", - "type": 90, - "typeName": "Id" - }, - { - "name": "collator", - "type": 752, - "typeName": "Option" - } - ] - } - } - } - }, - { - "id": 752, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 91 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 91 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 753, - "type": { - "path": ["polkadot_primitives", "v5", "OccupiedCoreAssumption"], - "def": { - "variant": { - "variants": [ - { - "name": "Included", - "index": 0 - }, - { - "name": "TimedOut", - "index": 1 - }, - { - "name": "Free", - "index": 2 - } - ] - } - } - } - }, - { - "id": 754, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 755 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 755 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 755, - "type": { - "path": ["polkadot_primitives", "v5", "PersistedValidationData"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "parent_head", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "relay_parent_number", - "type": 4, - "typeName": "N" - }, - { - "name": "relay_parent_storage_root", - "type": 12, - "typeName": "H" - }, - { - "name": "max_pov_size", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 756, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 757 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 757 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 757, - "type": { - "def": { - "tuple": [755, 95] - } - } - }, - { - "id": 758, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 407 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 407 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 759, - "type": { - "def": { - "sequence": { - "type": 760 - } - } - } - }, - { - "id": 760, - "type": { - "path": ["polkadot_primitives", "v5", "CandidateEvent"], - "params": [ - { - "name": "H", - "type": 12 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "CandidateBacked", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - }, - { - "type": 98, - "typeName": "GroupIndex" - } - ], - "index": 0 - }, - { - "name": "CandidateIncluded", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - }, - { - "type": 98, - "typeName": "GroupIndex" - } - ], - "index": 1 - }, - { - "name": "CandidateTimedOut", - "fields": [ - { - "type": 88, - "typeName": "CandidateReceipt" - }, - { - "type": 96, - "typeName": "HeadData" - }, - { - "type": 97, - "typeName": "CoreIndex" - } - ], - "index": 2 - } - ] - } - } - } - }, - { - "id": 761, - "type": { - "path": ["BTreeMap"], - "params": [ - { - "name": "K", - "type": 90 - }, - { - "name": "V", - "type": 649 - } - ], - "def": { - "composite": { - "fields": [ - { - "type": 762 - } - ] - } - } - } - }, - { - "id": 762, - "type": { - "def": { - "sequence": { - "type": 763 - } - } - } - }, - { - "id": 763, - "type": { - "def": { - "tuple": [90, 649] - } - } - }, - { - "id": 764, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 612 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 612 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 765, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 655 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 655 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 766, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 95 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 95 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 767, - "type": { - "def": { - "sequence": { - "type": 768 - } - } - } - }, - { - "id": 768, - "type": { - "def": { - "tuple": [4, 103, 660] - } - } - }, - { - "id": 769, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 388 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 388 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 770, - "type": { - "def": { - "sequence": { - "type": 771 - } - } - } - }, - { - "id": 771, - "type": { - "def": { - "tuple": [4, 103, 663] - } - } - }, - { - "id": 772, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 773 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 773 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 773, - "type": { - "path": [ - "polkadot_primitives", - "v5", - "slashing", - "OpaqueKeyOwnershipProof" - ], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 774, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 47 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 47 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 775, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 776 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 776 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 776, - "type": { - "path": ["polkadot_primitives", "vstaging", "BackingState"], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "constraints", - "type": 777, - "typeName": "Constraints" - }, - { - "name": "pending_availability", - "type": 785, - "typeName": "Vec>" - } - ] - } - } - } - }, - { - "id": 777, - "type": { - "path": ["polkadot_primitives", "vstaging", "Constraints"], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "min_relay_parent_number", - "type": 4, - "typeName": "N" - }, - { - "name": "max_pov_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_code_size", - "type": 4, - "typeName": "u32" - }, - { - "name": "ump_remaining", - "type": 4, - "typeName": "u32" - }, - { - "name": "ump_remaining_bytes", - "type": 4, - "typeName": "u32" - }, - { - "name": "max_ump_num_per_candidate", - "type": 4, - "typeName": "u32" - }, - { - "name": "dmp_remaining_messages", - "type": 275, - "typeName": "Vec" - }, - { - "name": "hrmp_inbound", - "type": 778, - "typeName": "InboundHrmpLimitations" - }, - { - "name": "hrmp_channels_out", - "type": 779, - "typeName": "Vec<(ParaId, OutboundHrmpChannelLimitations)>" - }, - { - "name": "max_hrmp_num_per_candidate", - "type": 4, - "typeName": "u32" - }, - { - "name": "required_parent", - "type": 96, - "typeName": "HeadData" - }, - { - "name": "validation_code_hash", - "type": 95, - "typeName": "ValidationCodeHash" - }, - { - "name": "upgrade_restriction", - "type": 782, - "typeName": "Option" - }, - { - "name": "future_validation_code", - "type": 783, - "typeName": "Option<(N, ValidationCodeHash)>" - } - ] - } - } - } - }, - { - "id": 778, - "type": { - "path": [ - "polkadot_primitives", - "vstaging", - "InboundHrmpLimitations" - ], - "params": [ - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "valid_watermarks", - "type": 275, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 779, - "type": { - "def": { - "sequence": { - "type": 780 - } - } - } - }, - { - "id": 780, - "type": { - "def": { - "tuple": [90, 781] - } - } - }, - { - "id": 781, - "type": { - "path": [ - "polkadot_primitives", - "vstaging", - "OutboundHrmpChannelLimitations" - ], - "def": { - "composite": { - "fields": [ - { - "name": "bytes_remaining", - "type": 4, - "typeName": "u32" - }, - { - "name": "messages_remaining", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 782, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 640 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 640 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 783, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 784 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 784 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 784, - "type": { - "def": { - "tuple": [4, 95] - } - } - }, - { - "id": 785, - "type": { - "def": { - "sequence": { - "type": 786 - } - } - } - }, - { - "id": 786, - "type": { - "path": [ - "polkadot_primitives", - "vstaging", - "CandidatePendingAvailability" - ], - "params": [ - { - "name": "H", - "type": 12 - }, - { - "name": "N", - "type": 4 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "candidate_hash", - "type": 103, - "typeName": "CandidateHash" - }, - { - "name": "descriptor", - "type": 89, - "typeName": "CandidateDescriptor" - }, - { - "name": "commitments", - "type": 408, - "typeName": "CandidateCommitments" - }, - { - "name": "relay_parent_number", - "type": 4, - "typeName": "N" - }, - { - "name": "max_pov_size", - "type": 4, - "typeName": "u32" - } - ] - } - } - } - }, - { - "id": 787, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 788 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 788 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 788, - "type": { - "path": ["sp_consensus_beefy", "ValidatorSet"], - "params": [ - { - "name": "AuthorityId", - "type": 251 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "validators", - "type": 254, - "typeName": "Vec" - }, - { - "name": "id", - "type": 11, - "typeName": "ValidatorSetId" - } - ] - } - } - } - }, - { - "id": 789, - "type": { - "path": ["sp_consensus_beefy", "OpaqueKeyOwnershipProof"], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 790, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 789 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 789 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 791, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 12 - }, - { - "name": "E", - "type": 792 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 12 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 792 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 792, - "type": { - "path": ["sp_mmr_primitives", "Error"], - "def": { - "variant": { - "variants": [ - { - "name": "InvalidNumericOp", - "index": 0 - }, - { - "name": "Push", - "index": 1 - }, - { - "name": "GetRoot", - "index": 2 - }, - { - "name": "Commit", - "index": 3 - }, - { - "name": "GenerateProof", - "index": 4 - }, - { - "name": "Verify", - "index": 5 - }, - { - "name": "LeafNotFound", - "index": 6 - }, - { - "name": "PalletNotIncluded", - "index": 7 - }, - { - "name": "InvalidLeafIndex", - "index": 8 - }, - { - "name": "InvalidBestKnownBlock", - "index": 9 - } - ] - } - } - } - }, - { - "id": 793, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 11 - }, - { - "name": "E", - "type": 792 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 11 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 792 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 794, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 795 - }, - { - "name": "E", - "type": 792 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 795 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 792 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 795, - "type": { - "def": { - "tuple": [796, 798] - } - } - }, - { - "id": 796, - "type": { - "def": { - "sequence": { - "type": 797 - } - } - } - }, - { - "id": 797, - "type": { - "path": ["sp_mmr_primitives", "EncodableOpaqueLeaf"], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 798, - "type": { - "path": ["sp_mmr_primitives", "Proof"], - "params": [ - { - "name": "Hash", - "type": 12 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "leaf_indices", - "type": 799, - "typeName": "Vec" - }, - { - "name": "leaf_count", - "type": 11, - "typeName": "NodeIndex" - }, - { - "name": "items", - "type": 178, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 799, - "type": { - "def": { - "sequence": { - "type": 11 - } - } - } - }, - { - "id": 800, - "type": { - "path": ["Result"], - "params": [ - { - "name": "T", - "type": 47 - }, - { - "name": "E", - "type": 792 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "Ok", - "fields": [ - { - "type": 47 - } - ], - "index": 0 - }, - { - "name": "Err", - "fields": [ - { - "type": 792 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 801, - "type": { - "path": ["sp_consensus_grandpa", "OpaqueKeyOwnershipProof"], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 802, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 801 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 801 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 803, - "type": { - "path": ["sp_consensus_babe", "BabeConfiguration"], - "def": { - "composite": { - "fields": [ - { - "name": "slot_duration", - "type": 11, - "typeName": "u64" - }, - { - "name": "epoch_length", - "type": 11, - "typeName": "u64" - }, - { - "name": "c", - "type": 204, - "typeName": "(u64, u64)" - }, - { - "name": "authorities", - "type": 201, - "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>" - }, - { - "name": "randomness", - "type": 1, - "typeName": "Randomness" - }, - { - "name": "allowed_slots", - "type": 205, - "typeName": "AllowedSlots" - } - ] - } - } - } - }, - { - "id": 804, - "type": { - "path": ["sp_consensus_babe", "Epoch"], - "def": { - "composite": { - "fields": [ - { - "name": "epoch_index", - "type": 11, - "typeName": "u64" - }, - { - "name": "start_slot", - "type": 202, - "typeName": "Slot" - }, - { - "name": "duration", - "type": 11, - "typeName": "u64" - }, - { - "name": "authorities", - "type": 201, - "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>" - }, - { - "name": "randomness", - "type": 1, - "typeName": "Randomness" - }, - { - "name": "config", - "type": 214, - "typeName": "BabeEpochConfiguration" - } - ] - } - } - } - }, - { - "id": 805, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 806 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 806 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 806, - "type": { - "path": ["sp_consensus_babe", "OpaqueKeyOwnershipProof"], - "def": { - "composite": { - "fields": [ - { - "type": 13, - "typeName": "Vec" - } - ] - } - } - } - }, - { - "id": 807, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 808 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 808 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 808, - "type": { - "def": { - "sequence": { - "type": 809 - } - } - } - }, - { - "id": 809, - "type": { - "def": { - "tuple": [13, 277] - } - } - }, - { - "id": 810, - "type": { - "path": [ - "pallet_transaction_payment", - "types", - "RuntimeDispatchInfo" - ], - "params": [ - { - "name": "Balance", - "type": 6 - }, - { - "name": "Weight", - "type": 9 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "weight", - "type": 9, - "typeName": "Weight" - }, - { - "name": "class", - "type": 23, - "typeName": "DispatchClass" - }, - { - "name": "partial_fee", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 811, - "type": { - "path": ["pallet_transaction_payment", "types", "FeeDetails"], - "params": [ - { - "name": "Balance", - "type": 6 - } - ], - "def": { - "composite": { - "fields": [ - { - "name": "inclusion_fee", - "type": 812, - "typeName": "Option>" - }, - { - "name": "tip", - "type": 6, - "typeName": "Balance" - } - ] - } - } - } - }, - { - "id": 812, - "type": { - "path": ["Option"], - "params": [ - { - "name": "T", - "type": 813 - } - ], - "def": { - "variant": { - "variants": [ - { - "name": "None", - "index": 0 - }, - { - "name": "Some", - "fields": [ - { - "type": 813 - } - ], - "index": 1 - } - ] - } - } - } - }, - { - "id": 813, - "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": 814, - "type": { - "path": ["rococo_runtime", "RuntimeError"], - "def": { - "variant": { - "variants": [ - { - "name": "System", - "fields": [ - { - "type": 197, - "typeName": "frame_system::Error" - } - ], - "index": 0 - }, - { - "name": "Babe", - "fields": [ - { - "type": 222, - "typeName": "pallet_babe::Error" - } - ], - "index": 1 - }, - { - "name": "Indices", - "fields": [ - { - "type": 228, - "typeName": "pallet_indices::Error" - } - ], - "index": 3 - }, - { - "name": "Balances", - "fields": [ - { - "type": 246, - "typeName": "pallet_balances::Error" - } - ], - "index": 4 - }, - { - "name": "Beefy", - "fields": [ - { - "type": 267, - "typeName": "pallet_beefy::Error" - } - ], - "index": 240 - }, - { - "name": "Session", - "fields": [ - { - "type": 279, - "typeName": "pallet_session::Error" - } - ], - "index": 8 - }, - { - "name": "Grandpa", - "fields": [ - { - "type": 294, - "typeName": "pallet_grandpa::Error" - } - ], - "index": 10 - }, - { - "name": "ImOnline", - "fields": [ - { - "type": 301, - "typeName": "pallet_im_online::Error" - } - ], - "index": 11 - }, - { - "name": "Democracy", - "fields": [ - { - "type": 492, - "typeName": "pallet_democracy::Error" - } - ], - "index": 13 - }, - { - "name": "Council", - "fields": [ - { - "type": 495, - "typeName": "pallet_collective::Error" - } - ], - "index": 14 - }, - { - "name": "TechnicalCommittee", - "fields": [ - { - "type": 497, - "typeName": "pallet_collective::Error" - } - ], - "index": 15 - }, - { - "name": "PhragmenElection", - "fields": [ - { - "type": 501, - "typeName": "pallet_elections_phragmen::Error" - } - ], - "index": 16 - }, - { - "name": "TechnicalMembership", - "fields": [ - { - "type": 503, - "typeName": "pallet_membership::Error" - } - ], - "index": 17 - }, - { - "name": "Treasury", - "fields": [ - { - "type": 509, - "typeName": "pallet_treasury::Error" - } - ], - "index": 18 - }, - { - "name": "Claims", - "fields": [ - { - "type": 510, - "typeName": "claims::Error" - } - ], - "index": 19 - }, - { - "name": "Utility", - "fields": [ - { - "type": 511, - "typeName": "pallet_utility::Error" - } - ], - "index": 24 - }, - { - "name": "Identity", - "fields": [ - { - "type": 522, - "typeName": "pallet_identity::Error" - } - ], - "index": 25 - }, - { - "name": "Society", - "fields": [ - { - "type": 541, - "typeName": "pallet_society::Error" - } - ], - "index": 26 - }, - { - "name": "Recovery", - "fields": [ - { - "type": 545, - "typeName": "pallet_recovery::Error" - } - ], - "index": 27 - }, - { - "name": "Vesting", - "fields": [ - { - "type": 549, - "typeName": "pallet_vesting::Error" - } - ], - "index": 28 - }, - { - "name": "Scheduler", - "fields": [ - { - "type": 554, - "typeName": "pallet_scheduler::Error" - } - ], - "index": 29 - }, - { - "name": "Proxy", - "fields": [ - { - "type": 563, - "typeName": "pallet_proxy::Error" - } - ], - "index": 30 - }, - { - "name": "Multisig", - "fields": [ - { - "type": 567, - "typeName": "pallet_multisig::Error" - } - ], - "index": 31 - }, - { - "name": "Preimage", - "fields": [ - { - "type": 576, - "typeName": "pallet_preimage::Error" - } - ], - "index": 32 - }, - { - "name": "Bounties", - "fields": [ - { - "type": 580, - "typeName": "pallet_bounties::Error" - } - ], - "index": 35 - }, - { - "name": "ChildBounties", - "fields": [ - { - "type": 583, - "typeName": "pallet_child_bounties::Error" - } - ], - "index": 40 - }, - { - "name": "Tips", - "fields": [ - { - "type": 586, - "typeName": "pallet_tips::Error" - } - ], - "index": 36 - }, - { - "name": "Nis", - "fields": [ - { - "type": 594, - "typeName": "pallet_nis::Error" - } - ], - "index": 38 - }, - { - "name": "NisCounterpartBalances", - "fields": [ - { - "type": 599, - "typeName": "pallet_balances::Error" - } - ], - "index": 45 - }, - { - "name": "Configuration", - "fields": [ - { - "type": 603, - "typeName": "parachains_configuration::Error" - } - ], - "index": 51 - }, - { - "name": "ParaInclusion", - "fields": [ - { - "type": 611, - "typeName": "parachains_inclusion::Error" - } - ], - "index": 53 - }, - { - "name": "ParaInherent", - "fields": [ - { - "type": 617, - "typeName": "parachains_paras_inherent::Error" - } - ], - "index": 54 - }, - { - "name": "Paras", - "fields": [ - { - "type": 641, - "typeName": "parachains_paras::Error" - } - ], - "index": 56 - }, - { - "name": "Hrmp", - "fields": [ - { - "type": 653, - "typeName": "parachains_hrmp::Error" - } - ], - "index": 60 - }, - { - "name": "ParasDisputes", - "fields": [ - { - "type": 662, - "typeName": "parachains_disputes::Error" - } - ], - "index": 62 - }, - { - "name": "ParasSlashing", - "fields": [ - { - "type": 667, - "typeName": "parachains_slashing::Error" - } - ], - "index": 63 - }, - { - "name": "MessageQueue", - "fields": [ - { - "type": 674, - "typeName": "pallet_message_queue::Error" - } - ], - "index": 64 - }, - { - "name": "OnDemandAssignmentProvider", - "fields": [ - { - "type": 677, - "typeName": "parachains_assigner_on_demand::Error" - } - ], - "index": 66 - }, - { - "name": "Registrar", - "fields": [ - { - "type": 680, - "typeName": "paras_registrar::Error" - } - ], - "index": 70 - }, - { - "name": "Slots", - "fields": [ - { - "type": 682, - "typeName": "slots::Error" - } - ], - "index": 71 - }, - { - "name": "Auctions", - "fields": [ - { - "type": 687, - "typeName": "auctions::Error" - } - ], - "index": 72 - }, - { - "name": "Crowdloan", - "fields": [ - { - "type": 690, - "typeName": "crowdloan::Error" - } - ], - "index": 73 - }, - { - "name": "XcmPallet", - "fields": [ - { - "type": 712, - "typeName": "pallet_xcm::Error" - } - ], - "index": 99 - }, - { - "name": "ParasSudoWrapper", - "fields": [ - { - "type": 713, - "typeName": "paras_sudo_wrapper::Error" - } - ], - "index": 250 - }, - { - "name": "AssignedSlots", - "fields": [ - { - "type": 715, - "typeName": "assigned_slots::Error" - } - ], - "index": 251 - }, - { - "name": "StateTrieMigration", - "fields": [ - { - "type": 174, - "typeName": "pallet_state_trie_migration::Error" - } - ], - "index": 254 - }, - { - "name": "Sudo", - "fields": [ - { - "type": 716, - "typeName": "pallet_sudo::Error" - } - ], - "index": 255 - } - ] - } - } - } - } - ] - }, - "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": "BlockWeight", - "modifier": "Default", - "ty": { - "Plain": 8 - }, - "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": 12 - } - }, - "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": 13 - } - }, - "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": 12 - }, - "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": 14 - }, - "default": [0], - "docs": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "ty": { - "Plain": 18 - }, - "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": 12, - "value": 179 - } - }, - "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": 180 - }, - "default": [0], - "docs": [ - " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." - ] - }, - { - "name": "UpgradedToU32RefCount", - "modifier": "Default", - "ty": { - "Plain": 54 - }, - "default": [0], - "docs": [ - " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." - ] - }, - { - "name": "UpgradedToTripleRefCount", - "modifier": "Default", - "ty": { - "Plain": 54 - }, - "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": 177 - }, - "default": [0], - "docs": [" The execution phase of the block."] - } - ] - }, - "calls": { - "ty": 182 - }, - "event": { - "ty": 21 - }, - "constants": [ - { - "name": "BlockWeights", - "ty": 186, - "value": [ - 130, 206, 132, 99, 0, 11, 0, 32, 74, 169, 209, 1, 19, 255, 255, - 255, 255, 255, 255, 255, 255, 130, 217, 107, 23, 0, 1, 11, 160, - 217, 4, 145, 88, 1, 19, 163, 112, 61, 10, 215, 163, 112, 189, 1, - 11, 0, 152, 247, 62, 93, 1, 19, 255, 255, 255, 255, 255, 255, - 255, 191, 1, 0, 0, 130, 217, 107, 23, 0, 1, 11, 160, 97, 87, - 251, 204, 1, 19, 163, 112, 61, 10, 215, 163, 112, 253, 1, 11, 0, - 32, 74, 169, 209, 1, 19, 255, 255, 255, 255, 255, 255, 255, 255, - 1, 7, 0, 136, 82, 106, 116, 19, 0, 0, 0, 0, 0, 0, 0, 64, 130, - 217, 107, 23, 0, 0, 0, 0 - ], - "docs": [" Block & extrinsics weights: base values and limits."] - }, - { - "name": "BlockLength", - "ty": 190, - "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, 16, 0, 0], - "docs": [ - " Maximum number of block number to block hash mappings to keep (oldest pruned first)." - ] - }, - { - "name": "DbWeight", - "ty": 192, - "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": 193, - "value": [ - 24, 114, 111, 99, 111, 99, 111, 72, 112, 97, 114, 105, 116, 121, - 45, 114, 111, 99, 111, 99, 111, 45, 118, 50, 46, 48, 0, 0, 0, 0, - 214, 36, 0, 0, 0, 0, 0, 0, 60, 223, 106, 203, 104, 153, 7, 96, - 155, 4, 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, 175, 44, 2, 151, 162, 62, 109, 61, 5, 0, - 0, 0, 73, 234, 175, 27, 84, 138, 12, 176, 3, 0, 0, 0, 145, 213, - 223, 24, 176, 210, 207, 88, 2, 0, 0, 0, 237, 153, 197, 172, 178, - 94, 237, 245, 3, 0, 0, 0, 203, 202, 37, 227, 159, 20, 35, 135, - 2, 0, 0, 0, 104, 122, 212, 74, 211, 127, 3, 194, 1, 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, 55, 200, 187, 19, 80, 169, - 162, 168, 4, 0, 0, 0, 42, 94, 146, 70, 85, 57, 158, 96, 1, 0, 0, - 0, 22, 0, 0, 0, 1 - ], - "docs": [" Get the chain's current version."] - }, - { - "name": "SS58Prefix", - "ty": 77, - "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": 197 - }, - "index": 0, - "docs": [] - }, - { - "name": "Babe", - "storage": { - "prefix": "Babe", - "entries": [ - { - "name": "EpochIndex", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" Current epoch index."] - }, - { - "name": "Authorities", - "modifier": "Default", - "ty": { - "Plain": 198 - }, - "default": [0], - "docs": [" Current epoch authorities."] - }, - { - "name": "GenesisSlot", - "modifier": "Default", - "ty": { - "Plain": 202 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The slot at which the first epoch actually started. This is 0", - " until the first block of the chain." - ] - }, - { - "name": "CurrentSlot", - "modifier": "Default", - "ty": { - "Plain": 202 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" Current slot number."] - }, - { - "name": "Randomness", - "modifier": "Default", - "ty": { - "Plain": 1 - }, - "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 epoch randomness for the *current* epoch.", - "", - " # Security", - "", - " This MUST NOT be used for gambling, as it can be influenced by a", - " malicious validator in the short term. It MAY be used in many", - " cryptographic protocols, however, so long as one remembers that this", - " (like everything else on-chain) it is public. For example, it can be", - " used where a number is needed that cannot have been chosen by an", - " adversary, for purposes such as public-coin zero-knowledge proofs." - ] - }, - { - "name": "PendingEpochConfigChange", - "modifier": "Optional", - "ty": { - "Plain": 203 - }, - "default": [0], - "docs": [ - " Pending epoch configuration change that will be applied when the next epoch is enacted." - ] - }, - { - "name": "NextRandomness", - "modifier": "Default", - "ty": { - "Plain": 1 - }, - "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": [" Next epoch randomness."] - }, - { - "name": "NextAuthorities", - "modifier": "Default", - "ty": { - "Plain": 198 - }, - "default": [0], - "docs": [" Next epoch authorities."] - }, - { - "name": "SegmentIndex", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " Randomness under construction.", - "", - " We make a trade-off between storage accesses and list length.", - " We store the under-construction randomness in segments of up to", - " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", - "", - " Once a segment reaches this length, we begin the next one.", - " We reset all segments and return to `0` at the beginning of every", - " epoch." - ] - }, - { - "name": "UnderConstruction", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 206 - } - }, - "default": [0], - "docs": [ - " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." - ] - }, - { - "name": "Initialized", - "modifier": "Optional", - "ty": { - "Plain": 208 - }, - "default": [0], - "docs": [ - " Temporary value (cleared at block finalization) which is `Some`", - " if per-block initialization has already been called for current block." - ] - }, - { - "name": "AuthorVrfRandomness", - "modifier": "Default", - "ty": { - "Plain": 74 - }, - "default": [0], - "docs": [ - " This field should always be populated during block processing unless", - " secondary plain slots are enabled (which don't contain a VRF output).", - "", - " It is set in `on_finalize`, before it will contain the value from the last block." - ] - }, - { - "name": "EpochStart", - "modifier": "Default", - "ty": { - "Plain": 73 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The block numbers when the last and current epoch have started, respectively `N-1` and", - " `N`.", - " NOTE: We track this is in order to annotate the block number when a given pool of", - " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", - " slots, which may be skipped, the block numbers may not line up with the slot numbers." - ] - }, - { - "name": "Lateness", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " How late the current block is compared to its parent.", - "", - " This entry is populated as part of block execution and is cleaned up", - " on block finalization. Querying this storage entry outside of block", - " execution context should always yield zero." - ] - }, - { - "name": "EpochConfig", - "modifier": "Optional", - "ty": { - "Plain": 214 - }, - "default": [0], - "docs": [ - " The configuration for the current epoch. Should never be `None` as it is initialized in", - " genesis." - ] - }, - { - "name": "NextEpochConfig", - "modifier": "Optional", - "ty": { - "Plain": 214 - }, - "default": [0], - "docs": [ - " The configuration for the next epoch, `None` if the config will not change", - " (you can fallback to `EpochConfig` instead in that case)." - ] - }, - { - "name": "SkippedEpochs", - "modifier": "Default", - "ty": { - "Plain": 215 - }, - "default": [0], - "docs": [ - " A list of the last 100 skipped epochs and the corresponding session index", - " when the epoch was skipped.", - "", - " This is only used for validating equivocation proofs. An equivocation proof", - " must contains a key-ownership proof for a given session, therefore we need a", - " way to tie together sessions and epoch indices, i.e. we need to validate that", - " a validator was the owner of a given key on a given session, and what the", - " active epoch index was during that session." - ] - } - ] - }, - "calls": { - "ty": 218 - }, - "event": null, - "constants": [ - { - "name": "EpochDuration", - "ty": 11, - "value": [10, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount of time, in slots, that each epoch should last.", - " NOTE: Currently it is not possible to change the epoch duration after", - " the chain has started. Attempting to do so will brick block production." - ] - }, - { - "name": "ExpectedBlockTime", - "ty": 11, - "value": [112, 23, 0, 0, 0, 0, 0, 0], - "docs": [ - " The expected average block time at which BABE should be creating", - " blocks. Since BABE is probabilistic it is not trivial to figure out", - " what the expected average block time should be based on the slot", - " duration and the security parameter `c` (where `1 - c` represents", - " the probability of a slot being empty)." - ] - }, - { - "name": "MaxAuthorities", - "ty": 4, - "value": [160, 134, 1, 0], - "docs": [" Max number of authorities allowed"] - }, - { - "name": "MaxNominators", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [" The maximum number of nominators for each validator."] - } - ], - "error": { - "ty": 222 - }, - "index": 1, - "docs": [] - }, - { - "name": "Timestamp", - "storage": { - "prefix": "Timestamp", - "entries": [ - { - "name": "Now", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The current time for the current block."] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "ty": { - "Plain": 54 - }, - "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": 223 - }, - "event": null, - "constants": [ - { - "name": "MinimumPeriod", - "ty": 11, - "value": [184, 11, 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": "Indices", - "storage": { - "prefix": "Indices", - "entries": [ - { - "name": "Accounts", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 4, - "value": 224 - } - }, - "default": [0], - "docs": [" The lookup from index to account."] - } - ] - }, - "calls": { - "ty": 225 - }, - "event": { - "ty": 30 - }, - "constants": [ - { - "name": "Deposit", - "ty": 6, - "value": [52, 161, 174, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The deposit needed for reserving an index."] - } - ], - "error": { - "ty": 228 - }, - "index": 3, - "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": 229 - } - }, - "default": [0], - "docs": [ - " Any liquidity locks on some account balances.", - " NOTE: Should only be accessed when setting, changing and freeing a lock." - ] - }, - { - "name": "Reserves", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 233 - } - }, - "default": [0], - "docs": [" Named reserves on some account balances."] - }, - { - "name": "Holds", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 236 - } - }, - "default": [0], - "docs": [" Holds on account balances."] - }, - { - "name": "Freezes", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 242 - } - }, - "default": [0], - "docs": [" Freeze locks on account balances."] - } - ] - }, - "calls": { - "ty": 245 - }, - "event": { - "ty": 31 - }, - "constants": [ - { - "name": "ExistentialDeposit", - "ty": 6, - "value": [85, 160, 252, 1, 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." - ] - }, - { - "name": "MaxReserves", - "ty": 4, - "value": [50, 0, 0, 0], - "docs": [ - " The maximum number of named reserves that can exist on an account." - ] - }, - { - "name": "MaxHolds", - "ty": 4, - "value": [1, 0, 0, 0], - "docs": [ - " The maximum number of holds that can exist on an account at any time." - ] - }, - { - "name": "MaxFreezes", - "ty": 4, - "value": [1, 0, 0, 0], - "docs": [ - " The maximum number of individual freeze locks that can exist on an account at any time." - ] - } - ], - "error": { - "ty": 246 - }, - "index": 4, - "docs": [] - }, - { - "name": "TransactionPayment", - "storage": { - "prefix": "TransactionPayment", - "entries": [ - { - "name": "NextFeeMultiplier", - "modifier": "Default", - "ty": { - "Plain": 111 - }, - "default": [ - 0, 0, 100, 167, 179, 182, 224, 13, 0, 0, 0, 0, 0, 0, 0, 0 - ], - "docs": [] - }, - { - "name": "StorageVersion", - "modifier": "Default", - "ty": { - "Plain": 247 - }, - "default": [0], - "docs": [] - } - ] - }, - "calls": null, - "event": { - "ty": 33 - }, - "constants": [ - { - "name": "OperationalFeeMultiplier", - "ty": 2, - "value": [5], - "docs": [ - " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", - " `priority`", - "", - " This value is multipled 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": 33, - "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": 5, - "docs": [] - }, - { - "name": "Offences", - "storage": { - "prefix": "Offences", - "entries": [ - { - "name": "Reports", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 12, - "value": 248 - } - }, - "default": [0], - "docs": [ - " The primary structure that holds all offence records keyed by report identifiers." - ] - }, - { - "name": "ConcurrentReportsIndex", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 249, - "value": 178 - } - }, - "default": [0], - "docs": [ - " A vector of reports of the same kind that happened at the same time slot." - ] - } - ] - }, - "calls": null, - "event": { - "ty": 34 - }, - "constants": [], - "error": null, - "index": 7, - "docs": [] - }, - { - "name": "Historical", - "storage": null, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 34, - "docs": [] - }, - { - "name": "Beefy", - "storage": { - "prefix": "Beefy", - "entries": [ - { - "name": "Authorities", - "modifier": "Default", - "ty": { - "Plain": 250 - }, - "default": [0], - "docs": [" The current authorities set"] - }, - { - "name": "ValidatorSetId", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The current validator set id"] - }, - { - "name": "NextAuthorities", - "modifier": "Default", - "ty": { - "Plain": 250 - }, - "default": [0], - "docs": [ - " Authorities set scheduled to be used with the next session" - ] - }, - { - "name": "SetIdSession", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 11, - "value": 4 - } - }, - "default": [0], - "docs": [ - " A mapping from BEEFY set ID to the index of the *most recent* session for which its", - " members were responsible.", - "", - " This is only used for validating equivocation proofs. An equivocation proof must", - " contains a key-ownership proof for a given session, therefore we need a way to tie", - " together sessions and BEEFY set ids, i.e. we need to validate that a validator", - " was the owner of a given key on a given session, and what the active set ID was", - " during that session.", - "", - " TWOX-NOTE: `ValidatorSetId` is not under user control." - ] - }, - { - "name": "GenesisBlock", - "modifier": "Default", - "ty": { - "Plain": 255 - }, - "default": [0], - "docs": [ - " Block number where BEEFY consensus is enabled/started.", - " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", - " restarted from the newly set block number." - ] - } - ] - }, - "calls": { - "ty": 256 - }, - "event": null, - "constants": [ - { - "name": "MaxAuthorities", - "ty": 4, - "value": [160, 134, 1, 0], - "docs": [" The maximum number of authorities that can be added."] - }, - { - "name": "MaxNominators", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [" The maximum number of nominators for each validator."] - }, - { - "name": "MaxSetIdSessionEntries", - "ty": 11, - "value": [168, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The maximum number of entries to keep in the set id to session index mapping.", - "", - " Since the `SetIdSession` map is only used for validating equivocations this", - " value should relate to the bonding duration of whatever staking system is", - " being used (if any). If equivocation handling is not enabled then this value", - " can be zero." - ] - } - ], - "error": { - "ty": 267 - }, - "index": 240, - "docs": [] - }, - { - "name": "Mmr", - "storage": { - "prefix": "Mmr", - "entries": [ - { - "name": "RootHash", - "modifier": "Default", - "ty": { - "Plain": 12 - }, - "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": [" Latest MMR Root hash."] - }, - { - "name": "NumberOfLeaves", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" Current size of the MMR (number of leaves)."] - }, - { - "name": "Nodes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 11, - "value": 12 - } - }, - "default": [0], - "docs": [ - " Hashes of the nodes in the MMR.", - "", - " Note this collection only contains MMR peaks, the inner nodes (and leaves)", - " are pruned and only stored in the Offchain DB." - ] - } - ] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 241, - "docs": [] - }, - { - "name": "MmrLeaf", - "storage": { - "prefix": "MmrLeaf", - "entries": [ - { - "name": "BeefyAuthorities", - "modifier": "Default", - "ty": { - "Plain": 268 - }, - "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 - ], - "docs": [" Details of current BEEFY authority set."] - }, - { - "name": "BeefyNextAuthorities", - "modifier": "Default", - "ty": { - "Plain": 268 - }, - "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 - ], - "docs": [ - " Details of next BEEFY authority set.", - "", - " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." - ] - } - ] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 242, - "docs": [] - }, - { - "name": "Session", - "storage": { - "prefix": "Session", - "entries": [ - { - "name": "Validators", - "modifier": "Default", - "ty": { - "Plain": 68 - }, - "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": 54 - }, - "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": 269 - }, - "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": 275 - }, - "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": 271 - } - }, - "default": [0], - "docs": [" The next session keys for a validator."] - }, - { - "name": "KeyOwner", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 276, - "value": 0 - } - }, - "default": [0], - "docs": [ - " The owner of a key. The key is the `KeyTypeId` + the encoded key." - ] - } - ] - }, - "calls": { - "ty": 278 - }, - "event": { - "ty": 36 - }, - "constants": [], - "error": { - "ty": 279 - }, - "index": 8, - "docs": [] - }, - { - "name": "Grandpa", - "storage": { - "prefix": "Grandpa", - "entries": [ - { - "name": "State", - "modifier": "Default", - "ty": { - "Plain": 280 - }, - "default": [0], - "docs": [" State of the current authority set."] - }, - { - "name": "PendingChange", - "modifier": "Optional", - "ty": { - "Plain": 281 - }, - "default": [0], - "docs": [" Pending change: (signaled at, scheduled change)."] - }, - { - "name": "NextForced", - "modifier": "Optional", - "ty": { - "Plain": 4 - }, - "default": [0], - "docs": [" next block number where we can force a change."] - }, - { - "name": "Stalled", - "modifier": "Optional", - "ty": { - "Plain": 73 - }, - "default": [0], - "docs": [" `true` if we are currently stalled."] - }, - { - "name": "CurrentSetId", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The number of changes (both in terms of keys and underlying economic responsibilities)", - " in the \"set\" of Grandpa validators from genesis." - ] - }, - { - "name": "SetIdSession", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 11, - "value": 4 - } - }, - "default": [0], - "docs": [ - " A mapping from grandpa set ID to the index of the *most recent* session for which its", - " members were responsible.", - "", - " This is only used for validating equivocation proofs. An equivocation proof must", - " contains a key-ownership proof for a given session, therefore we need a way to tie", - " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", - " was the owner of a given key on a given session, and what the active set ID was", - " during that session.", - "", - " TWOX-NOTE: `SetId` is not under user control." - ] - } - ] - }, - "calls": { - "ty": 283 - }, - "event": { - "ty": 37 - }, - "constants": [ - { - "name": "MaxAuthorities", - "ty": 4, - "value": [160, 134, 1, 0], - "docs": [" Max Authorities in use"] - }, - { - "name": "MaxNominators", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [" The maximum number of nominators for each validator."] - }, - { - "name": "MaxSetIdSessionEntries", - "ty": 11, - "value": [168, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The maximum number of entries to keep in the set id to session index mapping.", - "", - " Since the `SetIdSession` map is only used for validating equivocations this", - " value should relate to the bonding duration of whatever staking system is", - " being used (if any). If equivocation handling is not enabled then this value", - " can be zero." - ] - } - ], - "error": { - "ty": 294 - }, - "index": 10, - "docs": [] - }, - { - "name": "ImOnline", - "storage": { - "prefix": "ImOnline", - "entries": [ - { - "name": "HeartbeatAfter", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The block number after which it's ok to send heartbeats in the current", - " session.", - "", - " At the beginning of each session we set this to a value that should fall", - " roughly in the middle of the session duration. The idea is to first wait for", - " the validators to produce a block in the current session, so that the", - " heartbeat later on will not be necessary.", - "", - " This value will only be used as a fallback if we fail to get a proper session", - " progress estimate from `NextSessionRotation`, as those estimates should be", - " more accurate then the value we calculate for `HeartbeatAfter`." - ] - }, - { - "name": "Keys", - "modifier": "Default", - "ty": { - "Plain": 295 - }, - "default": [0], - "docs": [" The current set of keys that may issue a heartbeat."] - }, - { - "name": "ReceivedHeartbeats", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 73, - "value": 54 - } - }, - "default": [0], - "docs": [ - " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`." - ] - }, - { - "name": "AuthoredBlocks", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 297, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " For each session index, we keep a mapping of `ValidatorId` to the", - " number of blocks authored by the given authority." - ] - } - ] - }, - "calls": { - "ty": 298 - }, - "event": { - "ty": 42 - }, - "constants": [ - { - "name": "UnsignedPriority", - "ty": 11, - "value": [255, 255, 255, 255, 255, 255, 255, 255], - "docs": [ - " A configuration for base priority of unsigned transactions.", - "", - " This is exposed so that it can be tuned for particular runtime, when", - " multiple pallets send unsigned transactions." - ] - } - ], - "error": { - "ty": 301 - }, - "index": 11, - "docs": [] - }, - { - "name": "AuthorityDiscovery", - "storage": null, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 12, - "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": 302 - }, - "default": [0], - "docs": [ - " The public proposals. Unsorted. The second item is the proposal." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 479 - } - }, - "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": 481 - } - }, - "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": 484 - } - }, - "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": 54 - }, - "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": 490 - }, - "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": 12, - "value": 491 - } - }, - "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": 12, - "value": 54 - } - }, - "default": [0], - "docs": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - }, - { - "name": "MetadataOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 52, - "value": 12 - } - }, - "default": [0], - "docs": [ - " General information concerning any proposal or referendum.", - " The `PreimageHash` 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": 306 - }, - "event": { - "ty": 48 - }, - "constants": [ - { - "name": "EnactmentPeriod", - "ty": 4, - "value": [0, 194, 1, 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": [192, 137, 1, 0], - "docs": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "VotingPeriod", - "ty": 4, - "value": [192, 137, 1, 0], - "docs": [" How often (in blocks) to check for new votes."] - }, - { - "name": "VoteLockingPeriod", - "ty": 4, - "value": [0, 194, 1, 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": [52, 161, 174, 198, 0, 0, 0, 0, 0, 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": 54, - "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": [8, 7, 0, 0], - "docs": [ - " Minimum voting period allowed for a fast-track referendum." - ] - }, - { - "name": "CooloffPeriod", - "ty": 4, - "value": [192, 137, 1, 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": 492 - }, - "index": 13, - "docs": [] - }, - { - "name": "Council", - "storage": { - "prefix": "Council", - "entries": [ - { - "name": "Proposals", - "modifier": "Default", - "ty": { - "Plain": 493 - }, - "default": [0], - "docs": [" The hashes of the active proposals."] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 305 - } - }, - "default": [0], - "docs": [" Actual proposal for a given hash, if it's current."] - }, - { - "name": "Voting", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 494 - } - }, - "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": 68 - }, - "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 absentations." - ] - } - ] - }, - "calls": { - "ty": 309 - }, - "event": { - "ty": 53 - }, - "constants": [ - { - "name": "MaxProposalWeight", - "ty": 9, - "value": [ - 7, 0, 16, 165, 212, 232, 19, 255, 255, 255, 255, 255, 255, 255, - 127 - ], - "docs": [ - " The maximum weight of a dispatch call that can be proposed and executed." - ] - } - ], - "error": { - "ty": 495 - }, - "index": 14, - "docs": [] - }, - { - "name": "TechnicalCommittee", - "storage": { - "prefix": "TechnicalCommittee", - "entries": [ - { - "name": "Proposals", - "modifier": "Default", - "ty": { - "Plain": 496 - }, - "default": [0], - "docs": [" The hashes of the active proposals."] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 305 - } - }, - "default": [0], - "docs": [" Actual proposal for a given hash, if it's current."] - }, - { - "name": "Voting", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 494 - } - }, - "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": 68 - }, - "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 absentations." - ] - } - ] - }, - "calls": { - "ty": 310 - }, - "event": { - "ty": 56 - }, - "constants": [ - { - "name": "MaxProposalWeight", - "ty": 9, - "value": [ - 7, 0, 16, 165, 212, 232, 19, 255, 255, 255, 255, 255, 255, 255, - 127 - ], - "docs": [ - " The maximum weight of a dispatch call that can be proposed and executed." - ] - } - ], - "error": { - "ty": 497 - }, - "index": 15, - "docs": [] - }, - { - "name": "PhragmenElection", - "storage": { - "prefix": "PhragmenElection", - "entries": [ - { - "name": "Members", - "modifier": "Default", - "ty": { - "Plain": 498 - }, - "default": [0], - "docs": [ - " The current elected members.", - "", - " Invariant: Always sorted based on account id." - ] - }, - { - "name": "RunnersUp", - "modifier": "Default", - "ty": { - "Plain": 498 - }, - "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": 58 - }, - "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": 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, 0, 0, 0, 0 - ], - "docs": [ - " Votes and locked stake of a particular voter.", - "", - " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." - ] - } - ] - }, - "calls": { - "ty": 311 - }, - "event": { - "ty": 57 - }, - "constants": [ - { - "name": "PalletId", - "ty": 137, - "value": [112, 104, 114, 101, 108, 101, 99, 116], - "docs": [" Identifier for the elections-phragmen pallet's lock"] - }, - { - "name": "CandidacyBond", - "ty": 6, - "value": [52, 161, 174, 198, 0, 0, 0, 0, 0, 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": [16, 197, 91, 146, 15, 0, 0, 0, 0, 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": [128, 150, 91, 6, 0, 0, 0, 0, 0, 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": [19, 0, 0, 0], - "docs": [" Number of members to elect."] - }, - { - "name": "DesiredRunnersUp", - "ty": 4, - "value": [19, 0, 0, 0], - "docs": [" Number of runners_up to keep."] - }, - { - "name": "TermDuration", - "ty": 4, - "value": [64, 56, 0, 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": [232, 3, 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": [16, 39, 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": [16, 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": 501 - }, - "index": 16, - "docs": [] - }, - { - "name": "TechnicalMembership", - "storage": { - "prefix": "TechnicalMembership", - "entries": [ - { - "name": "Members", - "modifier": "Default", - "ty": { - "Plain": 502 - }, - "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": 313 - }, - "event": { - "ty": 60 - }, - "constants": [], - "error": { - "ty": 503 - }, - "index": 17, - "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": 504 - } - }, - "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": 505 - }, - "default": [0], - "docs": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ] - }, - "calls": { - "ty": 314 - }, - "event": { - "ty": 61 - }, - "constants": [ - { - "name": "ProposalBond", - "ty": 506, - "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": [16, 152, 164, 133, 15, 0, 0, 0, 0, 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": 507, - "value": [1, 32, 179, 37, 26, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Maximum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "ty": 4, - "value": [128, 81, 1, 0], - "docs": [" Period between successive spends."] - }, - { - "name": "Burn", - "ty": 506, - "value": [208, 7, 0, 0], - "docs": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "PalletId", - "ty": 508, - "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." - ] - } - ], - "error": { - "ty": 509 - }, - "index": 18, - "docs": [] - }, - { - "name": "Claims", - "storage": { - "prefix": "Claims", - "entries": [ - { - "name": "Claims", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 63, - "value": 6 - } - }, - "default": [0], - "docs": [] - }, - { - "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": [] - }, - { - "name": "Vesting", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 63, - "value": 318 - } - }, - "default": [0], - "docs": [ - " Vesting schedule for a claim.", - " First balance is the total amount that should be held for vesting.", - " Second balance is how much should be unlocked per block.", - " The block number is when the vesting should start." - ] - }, - { - "name": "Signing", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 63, - "value": 320 - } - }, - "default": [0], - "docs": [" The statement kind that must be signed, if any."] - }, - { - "name": "Preclaims", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 0, - "value": 63 - } - }, - "default": [0], - "docs": [ - " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." - ] - } - ] - }, - "calls": { - "ty": 315 - }, - "event": { - "ty": 62 - }, - "constants": [ - { - "name": "Prefix", - "ty": 13, - "value": [ - 124, 80, 97, 121, 32, 82, 79, 67, 115, 32, 116, 111, 32, 116, - 104, 101, 32, 82, 111, 99, 111, 99, 111, 32, 97, 99, 99, 111, - 117, 110, 116, 58 - ], - "docs": [] - } - ], - "error": { - "ty": 510 - }, - "index": 19, - "docs": [] - }, - { - "name": "Utility", - "storage": null, - "calls": { - "ty": 321 - }, - "event": { - "ty": 65 - }, - "constants": [ - { - "name": "batched_calls_limit", - "ty": 4, - "value": [170, 42, 0, 0], - "docs": [" The limit on the number of batched calls."] - } - ], - "error": { - "ty": 511 - }, - "index": 24, - "docs": [] - }, - { - "name": "Identity", - "storage": { - "prefix": "Identity", - "entries": [ - { - "name": "IdentityOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 512 - } - }, - "default": [0], - "docs": [ - " Information that is pertinent to identify the entity behind an account.", - "", - " TWOX-NOTE: OK ― `AccountId` is a secure hash." - ] - }, - { - "name": "SuperOf", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 365 - } - }, - "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": 516 - } - }, - "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": 518 - }, - "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." - ] - } - ] - }, - "calls": { - "ty": 330 - }, - "event": { - "ty": 66 - }, - "constants": [ - { - "name": "BasicDeposit", - "ty": 6, - "value": [8, 76, 210, 194, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The amount held on deposit for a registered identity"] - }, - { - "name": "FieldDeposit", - "ty": 6, - "value": [2, 147, 180, 240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount held on deposit per additional field for a registered identity." - ] - }, - { - "name": "SubAccountDeposit", - "ty": 6, - "value": [104, 66, 93, 141, 1, 0, 0, 0, 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": "MaxAdditionalFields", - "ty": 4, - "value": [100, 0, 0, 0], - "docs": [ - " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", - " required to access an identity, but can be pretty high." - ] - }, - { - "name": "MaxRegistrars", - "ty": 4, - "value": [20, 0, 0, 0], - "docs": [ - " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", - " of, e.g., updating judgements." - ] - } - ], - "error": { - "ty": 522 - }, - "index": 25, - "docs": [] - }, - { - "name": "Society", - "storage": { - "prefix": "Society", - "entries": [ - { - "name": "Parameters", - "modifier": "Optional", - "ty": { - "Plain": 69 - }, - "default": [0], - "docs": [ - " The max number of members for the society at one time." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "ty": { - "Plain": 6 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Amount of our account balance that is specifically for the next round's bid(s)." - ] - }, - { - "name": "Founder", - "modifier": "Optional", - "ty": { - "Plain": 0 - }, - "default": [0], - "docs": [" The first member."] - }, - { - "name": "Head", - "modifier": "Optional", - "ty": { - "Plain": 0 - }, - "default": [0], - "docs": [ - " The most primary from the most recently approved rank 0 members in the society." - ] - }, - { - "name": "Rules", - "modifier": "Optional", - "ty": { - "Plain": 12 - }, - "default": [0], - "docs": [ - " A hash of the rules of this society concerning membership. Can only be set once and", - " only by the founder." - ] - }, - { - "name": "Members", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 523 - } - }, - "default": [0], - "docs": [ - " The current members and their rank. Doesn't include `SuspendedMembers`." - ] - }, - { - "name": "Payouts", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 526 - } - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Information regarding rank-0 payouts, past and future." - ] - }, - { - "name": "MemberCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" - ] - }, - { - "name": "MemberByIndex", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 0 - } - }, - "default": [0], - "docs": [ - " The current items in `Members` keyed by their unique index. Keys are densely populated", - " `0..MemberCount` (does not include `MemberCount`)." - ] - }, - { - "name": "SuspendedMembers", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 523 - } - }, - "default": [0], - "docs": [ - " The set of suspended members, with their old membership record." - ] - }, - { - "name": "RoundCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" The number of rounds which have passed."] - }, - { - "name": "Bids", - "modifier": "Default", - "ty": { - "Plain": 530 - }, - "default": [0], - "docs": [ - " The current bids, stored ordered by the value of the bid." - ] - }, - { - "name": "Candidates", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 534 - } - }, - "default": [0], - "docs": [] - }, - { - "name": "Skeptic", - "modifier": "Optional", - "ty": { - "Plain": 0 - }, - "default": [0], - "docs": [" The current skeptic."] - }, - { - "name": "Votes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 536, - "value": 537 - } - }, - "default": [0], - "docs": [" Double map from Candidate -> Voter -> (Maybe) Vote."] - }, - { - "name": "VoteClearCursor", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 538 - } - }, - "default": [0], - "docs": [ - " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." - ] - }, - { - "name": "NextHead", - "modifier": "Optional", - "ty": { - "Plain": 539 - }, - "default": [0], - "docs": [ - " At the end of the claim period, this contains the most recently approved members (along with", - " their bid and round ID) who is from the most recent round with the lowest bid. They will", - " become the new `Head`." - ] - }, - { - "name": "ChallengeRoundCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The number of challenge rounds there have been. Used to identify stale DefenderVotes." - ] - }, - { - "name": "Defending", - "modifier": "Optional", - "ty": { - "Plain": 540 - }, - "default": [0], - "docs": [ - " The defending member currently being challenged, along with a running tally of votes." - ] - }, - { - "name": "DefenderVotes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 297, - "value": 537 - } - }, - "default": [0], - "docs": [" Votes for the defender, keyed by challenge round."] - } - ] - }, - "calls": { - "ty": 369 - }, - "event": { - "ty": 67 - }, - "constants": [ - { - "name": "PalletId", - "ty": 508, - "value": [112, 121, 47, 115, 111, 99, 105, 101], - "docs": [" The societies's pallet id"] - }, - { - "name": "GraceStrikes", - "ty": 4, - "value": [1, 0, 0, 0], - "docs": [ - " The maximum number of strikes before a member gets funds slashed." - ] - }, - { - "name": "PeriodSpend", - "ty": 6, - "value": [144, 217, 18, 13, 132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount of incentive paid within each period. Doesn't include VoterTip." - ] - }, - { - "name": "VotingPeriod", - "ty": 4, - "value": [64, 25, 1, 0], - "docs": [ - " The number of blocks on which new candidates should be voted on. Together with", - " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." - ] - }, - { - "name": "ClaimPeriod", - "ty": 4, - "value": [128, 112, 0, 0], - "docs": [ - " The number of blocks on which new candidates can claim their membership and be the", - " named head." - ] - }, - { - "name": "MaxLockDuration", - "ty": 4, - "value": [0, 78, 237, 0], - "docs": [" The maximum duration of the payout lock."] - }, - { - "name": "ChallengePeriod", - "ty": 4, - "value": [192, 137, 1, 0], - "docs": [" The number of blocks between membership challenges."] - }, - { - "name": "MaxPayouts", - "ty": 4, - "value": [8, 0, 0, 0], - "docs": [ - " The maximum number of payouts a member may have waiting unclaimed." - ] - }, - { - "name": "MaxBids", - "ty": 4, - "value": [0, 2, 0, 0], - "docs": [" The maximum number of bids at once."] - } - ], - "error": { - "ty": 541 - }, - "index": 26, - "docs": [] - }, - { - "name": "Recovery", - "storage": { - "prefix": "Recovery", - "entries": [ - { - "name": "Recoverable", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 542 - } - }, - "default": [0], - "docs": [ - " The set of recoverable accounts and their recovery configuration." - ] - }, - { - "name": "ActiveRecoveries", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 536, - "value": 544 - } - }, - "default": [0], - "docs": [ - " Active recovery attempts.", - "", - " First account is the account to be recovered, and the second account", - " is the user trying to recover the account." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 0 - } - }, - "default": [0], - "docs": [ - " The list of allowed proxy accounts.", - "", - " Map from the user who can access it to the recovered account." - ] - } - ] - }, - "calls": { - "ty": 370 - }, - "event": { - "ty": 70 - }, - "constants": [ - { - "name": "ConfigDepositBase", - "ty": 6, - "value": [4, 38, 105, 225, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The base amount of currency needed to reserve for creating a recovery configuration.", - "", - " This is held for an additional storage item whose value size is", - " `2 + sizeof(BlockNumber, Balance)` bytes." - ] - }, - { - "name": "FriendDepositFactor", - "ty": 6, - "value": [154, 80, 87, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount of currency needed per additional user when creating a recovery", - " configuration.", - "", - " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", - " value." - ] - }, - { - "name": "MaxFriends", - "ty": 4, - "value": [9, 0, 0, 0], - "docs": [ - " The maximum amount of friends allowed in a recovery configuration.", - "", - " NOTE: The threshold programmed in this Pallet uses u16, so it does", - " not really make sense to have a limit here greater than u16::MAX.", - " But also, that is a lot more than you should probably set this value", - " to anyway..." - ] - }, - { - "name": "RecoveryDeposit", - "ty": 6, - "value": [4, 38, 105, 225, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The base amount of currency needed to reserve for starting a recovery.", - "", - " This is primarily held for deterring malicious recovery attempts, and should", - " have a value large enough that a bad actor would choose not to place this", - " deposit. It also acts to fund additional storage item whose value size is", - " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", - " threshold." - ] - } - ], - "error": { - "ty": 545 - }, - "index": 27, - "docs": [] - }, - { - "name": "Vesting", - "storage": { - "prefix": "Vesting", - "entries": [ - { - "name": "Vesting", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 546 - } - }, - "default": [0], - "docs": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "StorageVersion", - "modifier": "Default", - "ty": { - "Plain": 548 - }, - "default": [0], - "docs": [ - " Storage version of the pallet.", - "", - " New networks start with latest version, as determined by the genesis build." - ] - } - ] - }, - "calls": { - "ty": 371 - }, - "event": { - "ty": 71 - }, - "constants": [ - { - "name": "MinVestedTransfer", - "ty": 6, - "value": [52, 161, 174, 198, 0, 0, 0, 0, 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": 549 - }, - "index": 28, - "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": 550 - } - }, - "default": [0], - "docs": [ - " Items to be executed, indexed by the block number that they should be executed on." - ] - }, - { - "name": "Lookup", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 1, - "value": 73 - } - }, - "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": 373 - }, - "event": { - "ty": 72 - }, - "constants": [ - { - "name": "MaximumWeight", - "ty": 9, - "value": [ - 11, 0, 128, 110, 135, 116, 1, 19, 204, 204, 204, 204, 204, 204, - 204, 204 - ], - "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": 554 - }, - "index": 29, - "docs": [] - }, - { - "name": "Proxy", - "storage": { - "prefix": "Proxy", - "entries": [ - { - "name": "Proxies", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 0, - "value": 555 - } - }, - "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": 559 - } - }, - "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": 375 - }, - "event": { - "ty": 75 - }, - "constants": [ - { - "name": "ProxyDepositBase", - "ty": 6, - "value": [176, 125, 59, 135, 15, 0, 0, 0, 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": [52, 115, 142, 6, 0, 0, 0, 0, 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": [176, 125, 59, 135, 15, 0, 0, 0, 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": [104, 230, 28, 13, 0, 0, 0, 0, 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": 563 - }, - "index": 30, - "docs": [] - }, - { - "name": "Multisig", - "storage": { - "prefix": "Multisig", - "entries": [ - { - "name": "Multisigs", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 564, - "value": 565 - } - }, - "default": [0], - "docs": [" The set of open multisig operations."] - } - ] - }, - "calls": { - "ty": 377 - }, - "event": { - "ty": 78 - }, - "constants": [ - { - "name": "DepositBase", - "ty": 6, - "value": [240, 117, 32, 151, 15, 0, 0, 0, 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": [128, 150, 91, 6, 0, 0, 0, 0, 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": [100, 0, 0, 0], - "docs": [ - " The maximum amount of signatories allowed in the multisig." - ] - } - ], - "error": { - "ty": 567 - }, - "index": 31, - "docs": [] - }, - { - "name": "Preimage", - "storage": { - "prefix": "Preimage", - "entries": [ - { - "name": "StatusFor", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 568 - } - }, - "default": [0], - "docs": [" The request status of a given hash."] - }, - { - "name": "RequestStatusFor", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 570 - } - }, - "default": [0], - "docs": [" The request status of a given hash."] - }, - { - "name": "PreimageFor", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 574, - "value": 575 - } - }, - "default": [0], - "docs": [] - } - ] - }, - "calls": { - "ty": 379 - }, - "event": { - "ty": 80 - }, - "constants": [], - "error": { - "ty": 576 - }, - "index": 32, - "docs": [] - }, - { - "name": "Bounties", - "storage": { - "prefix": "Bounties", - "entries": [ - { - "name": "BountyCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Number of bounty proposals that have been made."] - }, - { - "name": "Bounties", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 577 - } - }, - "default": [0], - "docs": [" Bounties that have been made."] - }, - { - "name": "BountyDescriptions", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 579 - } - }, - "default": [0], - "docs": [" The description of each bounty."] - }, - { - "name": "BountyApprovals", - "modifier": "Default", - "ty": { - "Plain": 505 - }, - "default": [0], - "docs": [ - " Bounty indices that have been approved but not yet funded." - ] - } - ] - }, - "calls": { - "ty": 380 - }, - "event": { - "ty": 81 - }, - "constants": [ - { - "name": "BountyDepositBase", - "ty": 6, - "value": [52, 161, 174, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount held on deposit for placing a bounty proposal." - ] - }, - { - "name": "BountyDepositPayoutDelay", - "ty": 4, - "value": [0, 225, 0, 0], - "docs": [ - " The delay period for which a bounty beneficiary need to wait before claim the payout." - ] - }, - { - "name": "BountyUpdatePeriod", - "ty": 4, - "value": [128, 198, 19, 0], - "docs": [" Bounty duration in blocks."] - }, - { - "name": "CuratorDepositMultiplier", - "ty": 506, - "value": [32, 161, 7, 0], - "docs": [ - " The curator deposit is calculated as a percentage of the curator fee.", - "", - " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", - " `CuratorDepositMin`." - ] - }, - { - "name": "CuratorDepositMax", - "ty": 507, - "value": [1, 4, 38, 105, 225, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Maximum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "CuratorDepositMin", - "ty": 507, - "value": [1, 82, 67, 222, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "BountyValueMinimum", - "ty": 6, - "value": [104, 66, 93, 141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" Minimum value for a bounty."] - }, - { - "name": "DataDepositPerByte", - "ty": 6, - "value": [85, 160, 252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount held on deposit per byte within the tip report reason or bounty description." - ] - }, - { - "name": "MaximumReasonLength", - "ty": 4, - "value": [0, 64, 0, 0], - "docs": [ - " Maximum acceptable reason length.", - "", - " Benchmarks depend on this value, be sure to update weights file when changing this value" - ] - } - ], - "error": { - "ty": 580 - }, - "index": 35, - "docs": [] - }, - { - "name": "ChildBounties", - "storage": { - "prefix": "ChildBounties", - "entries": [ - { - "name": "ChildBountyCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Number of total child bounties."] - }, - { - "name": "ParentChildBounties", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " Number of child bounties per parent bounty.", - " Map of parent bounty index to number of child bounties." - ] - }, - { - "name": "ChildBounties", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 73, - "value": 581 - } - }, - "default": [0], - "docs": [" Child bounties that have been added."] - }, - { - "name": "ChildBountyDescriptions", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 579 - } - }, - "default": [0], - "docs": [" The description of each child-bounty."] - }, - { - "name": "ChildrenCuratorFees", - "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": [ - " The cumulative child-bounty curator fee for each parent bounty." - ] - } - ] - }, - "calls": { - "ty": 381 - }, - "event": { - "ty": 82 - }, - "constants": [ - { - "name": "MaxActiveChildBountyCount", - "ty": 4, - "value": [100, 0, 0, 0], - "docs": [ - " Maximum number of child bounties that can be added to a parent bounty." - ] - }, - { - "name": "ChildBountyValueMinimum", - "ty": 6, - "value": [164, 134, 188, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" Minimum value for a child-bounty."] - } - ], - "error": { - "ty": 583 - }, - "index": 40, - "docs": [] - }, - { - "name": "Tips", - "storage": { - "prefix": "Tips", - "entries": [ - { - "name": "Tips", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 12, - "value": 584 - } - }, - "default": [0], - "docs": [ - " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", - " This has the insecure enumerable hash function since the key itself is already", - " guaranteed to be a secure hash." - ] - }, - { - "name": "Reasons", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 13 - } - }, - "default": [0], - "docs": [ - " Simple preimage lookup from the reason's hash to the original data. Again, has an", - " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." - ] - } - ] - }, - "calls": { - "ty": 382 - }, - "event": { - "ty": 83 - }, - "constants": [ - { - "name": "MaximumReasonLength", - "ty": 4, - "value": [0, 64, 0, 0], - "docs": [ - " Maximum acceptable reason length.", - "", - " Benchmarks depend on this value, be sure to update weights file when changing this value" - ] - }, - { - "name": "DataDepositPerByte", - "ty": 6, - "value": [85, 160, 252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The amount held on deposit per byte within the tip report reason or bounty description." - ] - }, - { - "name": "TipCountdown", - "ty": 4, - "value": [64, 56, 0, 0], - "docs": [ - " The period for which a tip remains open after is has achieved threshold tippers." - ] - }, - { - "name": "TipFindersFee", - "ty": 585, - "value": [20], - "docs": [ - " The percent of the final tip which goes to the original reporter of the tip." - ] - }, - { - "name": "TipReportDepositBase", - "ty": 6, - "value": [52, 161, 174, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The amount held on deposit for placing a tip report."] - } - ], - "error": { - "ty": 586 - }, - "index": 36, - "docs": [] - }, - { - "name": "Nis", - "storage": { - "prefix": "Nis", - "entries": [ - { - "name": "QueueTotals", - "modifier": "Default", - "ty": { - "Plain": 587 - }, - "default": [ - 177, 4, 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, 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, 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, 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, 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, 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, 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, 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, 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, - 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, - 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, - 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, - 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, 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, 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, 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 - ], - "docs": [ - " The totals of items and balances within each queue. Saves a lot of storage reads in the", - " case of sparsely packed queues.", - "", - " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", - " whose duration is one `Period` would be storage `0`." - ] - }, - { - "name": "Queues", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 4, - "value": 588 - } - }, - "default": [0], - "docs": [ - " The queues of bids. Indexed by duration (in `Period`s)." - ] - }, - { - "name": "Summary", - "modifier": "Default", - "ty": { - "Plain": 591 - }, - "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 - ], - "docs": [" Summary information over the general state."] - }, - { - "name": "Receipts", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 4, - "value": 592 - } - }, - "default": [0], - "docs": [ - " The currently outstanding receipts, indexed according to the order of creation." - ] - } - ] - }, - "calls": { - "ty": 383 - }, - "event": { - "ty": 84 - }, - "constants": [ - { - "name": "PalletId", - "ty": 508, - "value": [112, 121, 47, 110, 105, 115, 32, 32], - "docs": [ - " The treasury's pallet id, used for deriving its sovereign account ID." - ] - }, - { - "name": "QueueCount", - "ty": 4, - "value": [44, 1, 0, 0], - "docs": [ - " Number of duration queues in total. This sets the maximum duration supported, which is", - " this value multiplied by `Period`." - ] - }, - { - "name": "MaxQueueLen", - "ty": 4, - "value": [232, 3, 0, 0], - "docs": [ - " Maximum number of items that may be in each duration queue.", - "", - " Must be larger than zero." - ] - }, - { - "name": "FifoQueueLen", - "ty": 4, - "value": [250, 0, 0, 0], - "docs": [ - " Portion of the queue which is free from ordering and just a FIFO.", - "", - " Must be no greater than `MaxQueueLen`." - ] - }, - { - "name": "BasePeriod", - "ty": 4, - "value": [128, 151, 6, 0], - "docs": [ - " The base period for the duration queues. This is the common multiple across all", - " supported freezing durations that can be bid upon." - ] - }, - { - "name": "MinBid", - "ty": 6, - "value": [0, 64, 122, 16, 243, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The minimum amount of funds that may be placed in a bid. Note that this", - " does not actually limit the amount which may be represented in a receipt since bids may", - " be split up by the system.", - "", - " It should be at least big enough to ensure that there is no possible storage spam attack", - " or queue-filling attack." - ] - }, - { - "name": "MinReceipt", - "ty": 85, - "value": [0, 232, 118, 72, 23, 0, 0, 0], - "docs": [ - " The minimum amount of funds which may intentionally be left remaining under a single", - " receipt." - ] - }, - { - "name": "IntakePeriod", - "ty": 4, - "value": [50, 0, 0, 0], - "docs": [ - " The number of blocks between consecutive attempts to dequeue bids and create receipts.", - "", - " A larger value results in fewer storage hits each block, but a slower period to get to", - " the target." - ] - }, - { - "name": "MaxIntakeWeight", - "ty": 9, - "value": [ - 7, 0, 208, 237, 144, 46, 19, 153, 153, 153, 153, 153, 153, 153, - 25 - ], - "docs": [ - " The maximum amount of bids that can consolidated into receipts in a single intake. A", - " larger value here means less of the block available for transactions should there be a", - " glut of bids." - ] - }, - { - "name": "ThawThrottle", - "ty": 593, - "value": [0, 0, 217, 233, 172, 45, 120, 3, 5, 0, 0, 0], - "docs": [ - " The maximum proportion which may be thawed and the period over which it is reset." - ] - } - ], - "error": { - "ty": 594 - }, - "index": 38, - "docs": [] - }, - { - "name": "NisCounterpartBalances", - "storage": { - "prefix": "NisCounterpartBalances", - "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": 595 - } - }, - "default": [0], - "docs": [ - " Any liquidity locks on some account balances.", - " NOTE: Should only be accessed when setting, changing and freeing a lock." - ] - }, - { - "name": "Reserves", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 596 - } - }, - "default": [0], - "docs": [" Named reserves on some account balances."] - }, - { - "name": "Holds", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 597 - } - }, - "default": [0], - "docs": [" Holds on account balances."] - }, - { - "name": "Freezes", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Blake2_128Concat"], - "key": 0, - "value": 598 - } - }, - "default": [0], - "docs": [" Freeze locks on account balances."] - } - ] - }, - "calls": { - "ty": 385 - }, - "event": { - "ty": 86 - }, - "constants": [ - { - "name": "ExistentialDeposit", - "ty": 6, - "value": [0, 228, 11, 84, 2, 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": [4, 0, 0, 0], - "docs": [ - " The maximum number of locks that should exist on an account.", - " Not strictly enforced, but used for weight estimation." - ] - }, - { - "name": "MaxReserves", - "ty": 4, - "value": [4, 0, 0, 0], - "docs": [ - " The maximum number of named reserves that can exist on an account." - ] - }, - { - "name": "MaxHolds", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [ - " The maximum number of holds that can exist on an account at any time." - ] - }, - { - "name": "MaxFreezes", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [ - " The maximum number of individual freeze locks that can exist on an account at any time." - ] - } - ], - "error": { - "ty": 599 - }, - "index": 45, - "docs": [] - }, - { - "name": "ParachainsOrigin", - "storage": null, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 50, - "docs": [ - " There is no way to register an origin type in `construct_runtime` without a pallet the origin", - " belongs to.", - "", - " This module fulfills only the single purpose of housing the `Origin` in `construct_runtime`." - ] - }, - { - "name": "Configuration", - "storage": { - "prefix": "Configuration", - "entries": [ - { - "name": "ActiveConfig", - "modifier": "Default", - "ty": { - "Plain": 600 - }, - "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, 2, 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, 0, 0, 0, 0, 0, 16, 39, 0, 0, 128, 178, - 230, 14, 128, 195, 201, 1, 128, 150, 152, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 6, 0, 0, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0 - ], - "docs": [" The active configuration for the current session."] - }, - { - "name": "PendingConfigs", - "modifier": "Default", - "ty": { - "Plain": 601 - }, - "default": [0], - "docs": [ - " Pending configuration changes.", - "", - " This is a list of configuration changes, each with a session index at which it should", - " be applied.", - "", - " The list is sorted ascending by session index. Also, this list can only contain at most", - " 2 items: for the next session and for the `scheduled_session`." - ] - }, - { - "name": "BypassConsistencyCheck", - "modifier": "Default", - "ty": { - "Plain": 54 - }, - "default": [0], - "docs": [ - " If this is set, then the configuration setters will bypass the consistency checks. This", - " is meant to be used only as the last resort." - ] - } - ] - }, - "calls": { - "ty": 386 - }, - "event": null, - "constants": [], - "error": { - "ty": 603 - }, - "index": 51, - "docs": [] - }, - { - "name": "ParasShared", - "storage": { - "prefix": "ParasShared", - "entries": [ - { - "name": "CurrentSessionIndex", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" The current session index."] - }, - { - "name": "ActiveValidatorIndices", - "modifier": "Default", - "ty": { - "Plain": 604 - }, - "default": [0], - "docs": [ - " All the validators actively participating in parachain consensus.", - " Indices are into the broader validator set." - ] - }, - { - "name": "ActiveValidatorKeys", - "modifier": "Default", - "ty": { - "Plain": 605 - }, - "default": [0], - "docs": [ - " The parachain attestation keys of the validators actively participating in parachain", - " consensus. This should be the same length as `ActiveValidatorIndices`." - ] - }, - { - "name": "AllowedRelayParents", - "modifier": "Default", - "ty": { - "Plain": 606 - }, - "default": [0, 0, 0, 0, 0], - "docs": [" All allowed relay-parents."] - } - ] - }, - "calls": { - "ty": 394 - }, - "event": null, - "constants": [], - "error": null, - "index": 52, - "docs": [] - }, - { - "name": "ParaInclusion", - "storage": { - "prefix": "ParaInclusion", - "entries": [ - { - "name": "AvailabilityBitfields", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 403, - "value": 609 - } - }, - "default": [0], - "docs": [ - " The latest bitfield for each validator, referred to by their index in the validator set." - ] - }, - { - "name": "PendingAvailability", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 610 - } - }, - "default": [0], - "docs": [" Candidates pending availability by `ParaId`."] - }, - { - "name": "PendingAvailabilityCommitments", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 408 - } - }, - "default": [0], - "docs": [ - " The commitments of candidates pending availability, by `ParaId`." - ] - } - ] - }, - "calls": { - "ty": 395 - }, - "event": { - "ty": 87 - }, - "constants": [], - "error": { - "ty": 611 - }, - "index": 53, - "docs": [] - }, - { - "name": "ParaInherent", - "storage": { - "prefix": "ParaInherent", - "entries": [ - { - "name": "Included", - "modifier": "Optional", - "ty": { - "Plain": 47 - }, - "default": [0], - "docs": [ - " Whether the paras inherent was included within this block.", - "", - " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", - " due to the guarantees of FRAME's storage APIs.", - "", - " If this is `None` at the end of the block, we panic and render the block invalid." - ] - }, - { - "name": "OnChainVotes", - "modifier": "Optional", - "ty": { - "Plain": 612 - }, - "default": [0], - "docs": [ - " Scraped on chain data for extracting resolved disputes as well as backing votes." - ] - } - ] - }, - "calls": { - "ty": 396 - }, - "event": null, - "constants": [], - "error": { - "ty": 617 - }, - "index": 54, - "docs": [] - }, - { - "name": "ParaScheduler", - "storage": { - "prefix": "ParaScheduler", - "entries": [ - { - "name": "ValidatorGroups", - "modifier": "Default", - "ty": { - "Plain": 618 - }, - "default": [0], - "docs": [ - " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", - " broader set of Polkadot validators, but instead just the subset used for parachains during", - " this session.", - "", - " Bound: The number of cores is the sum of the numbers of parachains and parathread", - " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe", - " upper bound at 10k." - ] - }, - { - "name": "AvailabilityCores", - "modifier": "Default", - "ty": { - "Plain": 619 - }, - "default": [0], - "docs": [ - " One entry for each availability core. Entries are `None` if the core is not currently", - " occupied. Can be temporarily `Some` if scheduled but not occupied.", - " The i'th parachain belongs to the i'th core, with the remaining cores all being", - " parathread-multiplexers.", - "", - " Bounded by the maximum of either of these two values:", - " * The number of parachains and parathread multiplexers", - " * The number of validators divided by `configuration.max_validators_per_core`." - ] - }, - { - "name": "SessionStartBlock", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The block number where the session start occurred. Used to track how many group rotations", - " have occurred.", - "", - " Note that in the context of parachains modules the session change is signaled during", - " the block and enacted at the end of the block (at the finalization stage, to be exact).", - " Thus for all intents and purposes the effect of the session change is observed at the", - " block following the session change, block number of which we save in this storage value." - ] - }, - { - "name": "ClaimQueue", - "modifier": "Default", - "ty": { - "Plain": 623 - }, - "default": [0], - "docs": [ - " One entry for each availability core. The `VecDeque` represents the assignments to be", - " scheduled on that core. `None` is used to signal to not schedule the next para of the core", - " as there is one currently being scheduled. Not using `None` here would overwrite the", - " `CoreState` in the runtime API. The value contained here will not be valid after the end of", - " a block. Runtime APIs should be used to determine scheduled cores/ for the upcoming block." - ] - } - ] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 55, - "docs": [] - }, - { - "name": "Paras", - "storage": { - "prefix": "Paras", - "entries": [ - { - "name": "PvfActiveVoteMap", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 95, - "value": 628 - } - }, - "default": [0], - "docs": [ - " All currently active PVF pre-checking votes.", - "", - " Invariant:", - " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa." - ] - }, - { - "name": "PvfActiveVoteList", - "modifier": "Default", - "ty": { - "Plain": 631 - }, - "default": [0], - "docs": [ - " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`." - ] - }, - { - "name": "Parachains", - "modifier": "Default", - "ty": { - "Plain": 632 - }, - "default": [0], - "docs": [ - " All lease holding parachains. Ordered ascending by `ParaId`. On demand parachains are not", - " included.", - "", - " Consider using the [`ParachainsCache`] type of modifying." - ] - }, - { - "name": "ParaLifecycles", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 633 - } - }, - "default": [0], - "docs": [" The current lifecycle of a all known Para IDs."] - }, - { - "name": "Heads", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 96 - } - }, - "default": [0], - "docs": [" The head-data of every registered para."] - }, - { - "name": "MostRecentContext", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 4 - } - }, - "default": [0], - "docs": [ - " The context (relay-chain block number) of the most recent parachain head." - ] - }, - { - "name": "CurrentCodeHash", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 95 - } - }, - "default": [0], - "docs": [ - " The validation code hash of every live para.", - "", - " Corresponding code can be retrieved with [`CodeByHash`]." - ] - }, - { - "name": "PastCodeHash", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 634, - "value": 95 - } - }, - "default": [0], - "docs": [ - " Actual past code hash, indicated by the para id as well as the block number at which it", - " became outdated.", - "", - " Corresponding code can be retrieved with [`CodeByHash`]." - ] - }, - { - "name": "PastCodeMeta", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 635 - } - }, - "default": [0, 0], - "docs": [ - " Past code of parachains. The parachains themselves may not be registered anymore,", - " but we also keep their code on-chain for the same amount of time as outdated code", - " to keep it available for approval checkers." - ] - }, - { - "name": "PastCodePruning", - "modifier": "Default", - "ty": { - "Plain": 638 - }, - "default": [0], - "docs": [ - " Which paras have past code that needs pruning and the relay-chain block at which the code", - " was replaced. Note that this is the actual height of the included block, not the expected", - " height at which the code upgrade would be applied, although they may be equal.", - " This is to ensure the entire acceptance period is covered, not an offset acceptance period", - " starting from the time at which the parachain perceives a code upgrade as having occurred.", - " Multiple entries for a single para are permitted. Ordered ascending by block number." - ] - }, - { - "name": "FutureCodeUpgrades", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 4 - } - }, - "default": [0], - "docs": [ - " The block number at which the planned code change is expected for a para.", - " The change will be applied after the first parablock for this ID included which executes", - " in the context of a relay chain block with a number >= `expected_at`." - ] - }, - { - "name": "FutureCodeHash", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 95 - } - }, - "default": [0], - "docs": [ - " The actual future code hash of a para.", - "", - " Corresponding code can be retrieved with [`CodeByHash`]." - ] - }, - { - "name": "UpgradeGoAheadSignal", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 639 - } - }, - "default": [0], - "docs": [ - " This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade", - " procedure.", - "", - " This value is absent when there are no upgrades scheduled or during the time the relay chain", - " performs the checks. It is set at the first relay-chain block when the corresponding", - " parachain can switch its upgrade function. As soon as the parachain's block is included, the", - " value gets reset to `None`.", - "", - " NOTE that this field is used by parachains via merkle storage proofs, therefore changing", - " the format will require migration of parachains." - ] - }, - { - "name": "UpgradeRestrictionSignal", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 640 - } - }, - "default": [0], - "docs": [ - " This is used by the relay-chain to communicate that there are restrictions for performing", - " an upgrade for this parachain.", - "", - " This may be a because the parachain waits for the upgrade cooldown to expire. Another", - " potential use case is when we want to perform some maintenance (such as storage migration)", - " we could restrict upgrades to make the process simpler.", - "", - " NOTE that this field is used by parachains via merkle storage proofs, therefore changing", - " the format will require migration of parachains." - ] - }, - { - "name": "UpgradeCooldowns", - "modifier": "Default", - "ty": { - "Plain": 638 - }, - "default": [0], - "docs": [ - " The list of parachains that are awaiting for their upgrade restriction to cooldown.", - "", - " Ordered ascending by block number." - ] - }, - { - "name": "UpcomingUpgrades", - "modifier": "Default", - "ty": { - "Plain": 638 - }, - "default": [0], - "docs": [ - " The list of upcoming code upgrades. Each item is a pair of which para performs a code", - " upgrade and at which relay-chain block it is expected at.", - "", - " Ordered ascending by block number." - ] - }, - { - "name": "ActionsQueue", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 632 - } - }, - "default": [0], - "docs": [ - " The actions to perform during the start of a specific session index." - ] - }, - { - "name": "UpcomingParasGenesis", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 466 - } - }, - "default": [0], - "docs": [ - " Upcoming paras instantiation arguments.", - "", - " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set", - " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`." - ] - }, - { - "name": "CodeByHashRefs", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 95, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " The number of reference on the validation code in [`CodeByHash`] storage." - ] - }, - { - "name": "CodeByHash", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 95, - "value": 414 - } - }, - "default": [0], - "docs": [ - " Validation code stored by its hash.", - "", - " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", - " [`PastCodeHash`]." - ] - } - ] - }, - "calls": { - "ty": 424 - }, - "event": { - "ty": 99 - }, - "constants": [ - { - "name": "UnsignedPriority", - "ty": 11, - "value": [255, 255, 255, 255, 255, 255, 255, 255], - "docs": [] - } - ], - "error": { - "ty": 641 - }, - "index": 56, - "docs": [] - }, - { - "name": "Initializer", - "storage": { - "prefix": "Initializer", - "entries": [ - { - "name": "HasInitialized", - "modifier": "Optional", - "ty": { - "Plain": 47 - }, - "default": [0], - "docs": [ - " Whether the parachains modules have been initialized within this block.", - "", - " Semantically a `bool`, but this guarantees it should never hit the trie,", - " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", - "", - " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one", - " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable", - " for the semantics of this variable." - ] - }, - { - "name": "BufferedSessionChanges", - "modifier": "Default", - "ty": { - "Plain": 642 - }, - "default": [0], - "docs": [ - " Buffered session changes along with the block number at which they should be applied.", - "", - " Typically this will be empty or one element long. Apart from that this item never hits", - " the storage.", - "", - " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", - " upgrade boundaries or if governance intervenes." - ] - } - ] - }, - "calls": { - "ty": 426 - }, - "event": null, - "constants": [], - "error": null, - "index": 57, - "docs": [] - }, - { - "name": "Dmp", - "storage": { - "prefix": "Dmp", - "entries": [ - { - "name": "DownwardMessageQueues", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 644 - } - }, - "default": [0], - "docs": [" The downward messages addressed for a certain para."] - }, - { - "name": "DownwardMessageQueueHeads", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 12 - } - }, - "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": [ - " A mapping that stores the downward message queue MQC head for each para.", - "", - " Each link in this chain has a form:", - " `(prev_head, B, H(M))`, where", - " - `prev_head`: is the previous head hash or zero if none.", - " - `B`: is the relay-chain block number in which a message was appended.", - " - `H(M)`: is the hash of the message being appended." - ] - }, - { - "name": "DeliveryFeeFactor", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 111 - } - }, - "default": [ - 0, 0, 100, 167, 179, 182, 224, 13, 0, 0, 0, 0, 0, 0, 0, 0 - ], - "docs": [" The number to multiply the base delivery fee by."] - } - ] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 58, - "docs": [] - }, - { - "name": "Hrmp", - "storage": { - "prefix": "Hrmp", - "entries": [ - { - "name": "HrmpOpenChannelRequests", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 101, - "value": 646 - } - }, - "default": [0], - "docs": [ - " The set of pending HRMP open channel requests.", - "", - " The set is accompanied by a list for iteration.", - "", - " Invariant:", - " - There are no channels that exists in list but not in the set and vice versa." - ] - }, - { - "name": "HrmpOpenChannelRequestsList", - "modifier": "Default", - "ty": { - "Plain": 647 - }, - "default": [0], - "docs": [] - }, - { - "name": "HrmpOpenChannelRequestCount", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " This mapping tracks how many open channel requests are initiated by a given sender para.", - " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has", - " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`." - ] - }, - { - "name": "HrmpAcceptedChannelRequestCount", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " This mapping tracks how many open channel requests were accepted by a given recipient para.", - " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", - " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." - ] - }, - { - "name": "HrmpCloseChannelRequests", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 101, - "value": 47 - } - }, - "default": [0], - "docs": [ - " A set of pending HRMP close channel requests that are going to be closed during the session", - " change. Used for checking if a given channel is registered for closure.", - "", - " The set is accompanied by a list for iteration.", - "", - " Invariant:", - " - There are no channels that exists in list but not in the set and vice versa." - ] - }, - { - "name": "HrmpCloseChannelRequestsList", - "modifier": "Default", - "ty": { - "Plain": 647 - }, - "default": [0], - "docs": [] - }, - { - "name": "HrmpWatermarks", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 4 - } - }, - "default": [0], - "docs": [ - " The HRMP watermark associated with each para.", - " Invariant:", - " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a", - " session." - ] - }, - { - "name": "HrmpChannels", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 101, - "value": 648 - } - }, - "default": [0], - "docs": [ - " HRMP channel data associated with each para.", - " Invariant:", - " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." - ] - }, - { - "name": "HrmpIngressChannelsIndex", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 632 - } - }, - "default": [0], - "docs": [ - " Ingress/egress indexes allow to find all the senders and receivers given the opposite side.", - " I.e.", - "", - " (a) ingress index allows to find all the senders for a given recipient.", - " (b) egress index allows to find all the recipients for a given sender.", - "", - " Invariants:", - " - for each ingress index entry for `P` each item `I` in the index should present in", - " `HrmpChannels` as `(I, P)`.", - " - for each egress index entry for `P` each item `E` in the index should present in", - " `HrmpChannels` as `(P, E)`.", - " - there should be no other dangling channels in `HrmpChannels`.", - " - the vectors are sorted." - ] - }, - { - "name": "HrmpEgressChannelsIndex", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 632 - } - }, - "default": [0], - "docs": [] - }, - { - "name": "HrmpChannelContents", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 101, - "value": 649 - } - }, - "default": [0], - "docs": [ - " Storage for the messages for each channel.", - " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." - ] - }, - { - "name": "HrmpChannelDigests", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 651 - } - }, - "default": [0], - "docs": [ - " Maintains a mapping that can be used to answer the question: What paras sent a message at", - " the given block number for a given receiver. Invariants:", - " - The inner `Vec` is never empty.", - " - The inner `Vec` cannot store two same `ParaId`.", - " - The outer vector is sorted ascending by block number and cannot store two items with the", - " same block number." - ] - } - ] - }, - "calls": { - "ty": 427 - }, - "event": { - "ty": 100 - }, - "constants": [], - "error": { - "ty": 653 - }, - "index": 60, - "docs": [] - }, - { - "name": "ParaSessionInfo", - "storage": { - "prefix": "ParaSessionInfo", - "entries": [ - { - "name": "AssignmentKeysUnsafe", - "modifier": "Default", - "ty": { - "Plain": 654 - }, - "default": [0], - "docs": [ - " Assignment keys for the current session.", - " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", - " When in doubt, use `Sessions` API instead." - ] - }, - { - "name": "EarliestStoredSession", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The earliest session for which previous session info is stored." - ] - }, - { - "name": "Sessions", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 4, - "value": 655 - } - }, - "default": [0], - "docs": [ - " Session information in a rolling window.", - " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", - " Does not have any entries before the session index in the first session change notification." - ] - }, - { - "name": "AccountKeys", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 4, - "value": 68 - } - }, - "default": [0], - "docs": [ - " The validator account keys of the validators actively participating in parachain consensus." - ] - }, - { - "name": "SessionExecutorParams", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 4, - "value": 388 - } - }, - "default": [0], - "docs": [" Executor parameter set for a given session index"] - } - ] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 61, - "docs": [] - }, - { - "name": "ParasDisputes", - "storage": { - "prefix": "ParasDisputes", - "entries": [ - { - "name": "LastPrunedSession", - "modifier": "Optional", - "ty": { - "Plain": 4 - }, - "default": [0], - "docs": [ - " The last pruned session, if any. All data stored by this module", - " references sessions." - ] - }, - { - "name": "Disputes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 659, - "value": 660 - } - }, - "default": [0], - "docs": [ - " All ongoing or concluded disputes for the last several sessions." - ] - }, - { - "name": "BackersOnDisputes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 659, - "value": 661 - } - }, - "default": [0], - "docs": [ - " Backing votes stored for each dispute.", - " This storage is used for slashing." - ] - }, - { - "name": "Included", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 659, - "value": 4 - } - }, - "default": [0], - "docs": [ - " All included blocks on the chain, as well as the block number in this chain that", - " should be reverted back to if the candidate is disputed and determined to be invalid." - ] - }, - { - "name": "Frozen", - "modifier": "Default", - "ty": { - "Plain": 255 - }, - "default": [0], - "docs": [ - " Whether the chain is frozen. Starts as `None`. When this is `Some`,", - " the chain will not accept any new parachain blocks for backing or inclusion,", - " and its value indicates the last valid block number in the chain.", - " It can only be set back to `None` by governance intervention." - ] - } - ] - }, - "calls": { - "ty": 428 - }, - "event": { - "ty": 102 - }, - "constants": [], - "error": { - "ty": 662 - }, - "index": 62, - "docs": [] - }, - { - "name": "ParasSlashing", - "storage": { - "prefix": "ParasSlashing", - "entries": [ - { - "name": "UnappliedSlashes", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 659, - "value": 663 - } - }, - "default": [0], - "docs": [" Validators pending dispute slashes."] - }, - { - "name": "ValidatorSetCounts", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 4 - } - }, - "default": [0], - "docs": [" `ValidatorSetCount` per session."] - } - ] - }, - "calls": { - "ty": 429 - }, - "event": null, - "constants": [], - "error": { - "ty": 667 - }, - "index": 63, - "docs": [] - }, - { - "name": "MessageQueue", - "storage": { - "prefix": "MessageQueue", - "entries": [ - { - "name": "BookStateFor", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 107, - "value": 668 - } - }, - "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": 107 - }, - "default": [0], - "docs": [" The origin at which we should begin servicing."] - }, - { - "name": "Pages", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Twox64Concat"], - "key": 671, - "value": 672 - } - }, - "default": [0], - "docs": [" The map of page indices to pages."] - } - ] - }, - "calls": { - "ty": 433 - }, - "event": { - "ty": 106 - }, - "constants": [ - { - "name": "HeapSize", - "ty": 4, - "value": [0, 128, 0, 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": [96, 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": 189, - "value": [ - 1, 7, 0, 160, 219, 33, 93, 19, 51, 51, 51, 51, 51, 51, 51, 51 - ], - "docs": [ - " The amount of weight (if any) which should be provided to the message queue for", - " servicing enqueued items.", - "", - " This may be legitimately `None` in the case that you will call", - " `ServiceQueues::service_queues` manually." - ] - } - ], - "error": { - "ty": 674 - }, - "index": 64, - "docs": [] - }, - { - "name": "ParaAssignmentProvider", - "storage": { - "prefix": "ParaAssignmentProvider", - "entries": [] - }, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 65, - "docs": [] - }, - { - "name": "OnDemandAssignmentProvider", - "storage": { - "prefix": "OnDemandAssignmentProvider", - "entries": [ - { - "name": "SpotTraffic", - "modifier": "Default", - "ty": { - "Plain": 111 - }, - "default": [ - 0, 0, 100, 167, 179, 182, 224, 13, 0, 0, 0, 0, 0, 0, 0, 0 - ], - "docs": [ - " Keeps track of the multiplier used to calculate the current spot price for the on demand", - " assigner." - ] - }, - { - "name": "OnDemandQueue", - "modifier": "Default", - "ty": { - "Plain": 675 - }, - "default": [0], - "docs": [ - " The order storage entry. Uses a VecDeque to be able to push to the front of the", - " queue from the scheduler on session boundaries." - ] - }, - { - "name": "ParaIdAffinity", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox256"], - "key": 90, - "value": 676 - } - }, - "default": [0], - "docs": [ - " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in", - " it's lookahead. Keeping track of this affinity prevents parallel execution of the same", - " `ParaId` on two or more `CoreIndex`es." - ] - } - ] - }, - "calls": { - "ty": 434 - }, - "event": { - "ty": 110 - }, - "constants": [ - { - "name": "TrafficDefaultValue", - "ty": 111, - "value": [ - 0, 0, 100, 167, 179, 182, 224, 13, 0, 0, 0, 0, 0, 0, 0, 0 - ], - "docs": [" The default value for the spot traffic multiplier."] - } - ], - "error": { - "ty": 677 - }, - "index": 66, - "docs": [] - }, - { - "name": "ParachainsAssignmentProvider", - "storage": null, - "calls": null, - "event": null, - "constants": [], - "error": null, - "index": 67, - "docs": [] - }, - { - "name": "Registrar", - "storage": { - "prefix": "Registrar", - "entries": [ - { - "name": "PendingSwap", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 90 - } - }, - "default": [0], - "docs": [" Pending swap operations."] - }, - { - "name": "Paras", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 678 - } - }, - "default": [0], - "docs": [ - " Amount held on deposit for each para and the original depositor.", - "", - " The given account ID is responsible for registering the code and initial head data, but may", - " only do so if it isn't yet registered. (After that, it's up to governance to do so.)" - ] - }, - { - "name": "NextFreeParaId", - "modifier": "Default", - "ty": { - "Plain": 90 - }, - "default": [0, 0, 0, 0], - "docs": [" The next free `ParaId`."] - } - ] - }, - "calls": { - "ty": 435 - }, - "event": { - "ty": 112 - }, - "constants": [ - { - "name": "ParaDeposit", - "ty": 6, - "value": [0, 128, 202, 57, 97, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The deposit to be paid to run a on-demand parachain.", - " This should include the cost for storing the genesis head and validation code." - ] - }, - { - "name": "DataDepositPerByte", - "ty": 6, - "value": [85, 160, 252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [" The deposit to be paid per byte stored on chain."] - } - ], - "error": { - "ty": 680 - }, - "index": 70, - "docs": [] - }, - { - "name": "Slots", - "storage": { - "prefix": "Slots", - "entries": [ - { - "name": "Leases", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 681 - } - }, - "default": [0], - "docs": [ - " Amounts held on deposit for each (possibly future) leased parachain.", - "", - " The actual amount locked on its behalf by any account at any time is the maximum of the", - " second values of the items in this list whose first value is the account.", - "", - " The first item in the list is the amount locked for the current Lease Period. Following", - " items are for the subsequent lease periods.", - "", - " The default value (an empty list) implies that the parachain no longer exists (or never", - " existed) as far as this pallet is concerned.", - "", - " If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it", - " will be left-padded with one or more `None`s to denote the fact that nothing is held on", - " deposit for the non-existent chain currently, but is held at some point in the future.", - "", - " It is illegal for a `None` value to trail in the list." - ] - } - ] - }, - "calls": { - "ty": 436 - }, - "event": { - "ty": 113 - }, - "constants": [ - { - "name": "LeasePeriod", - "ty": 4, - "value": [64, 56, 0, 0], - "docs": [ - " The number of blocks over which a single period lasts." - ] - }, - { - "name": "LeaseOffset", - "ty": 4, - "value": [0, 0, 0, 0], - "docs": [" The number of blocks to offset each lease period by."] - } - ], - "error": { - "ty": 682 - }, - "index": 71, - "docs": [] - }, - { - "name": "Auctions", - "storage": { - "prefix": "Auctions", - "entries": [ - { - "name": "AuctionCounter", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Number of auctions started so far."] - }, - { - "name": "AuctionInfo", - "modifier": "Optional", - "ty": { - "Plain": 73 - }, - "default": [0], - "docs": [ - " Information relating to the current auction, if there is one.", - "", - " The first item in the tuple is the lease period index that the first of the four", - " contiguous lease periods on auction is for. The second is the block number when the", - " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." - ] - }, - { - "name": "ReservedAmounts", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 683, - "value": 6 - } - }, - "default": [0], - "docs": [ - " Amounts currently reserved in the accounts of the bidders currently winning", - " (sub-)ranges." - ] - }, - { - "name": "Winning", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 4, - "value": 684 - } - }, - "default": [0], - "docs": [ - " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", - " the current auction. The map's key is the 0-based index into the Sample Size. The", - " first sample of the ending period is 0; the last is `Sample Size - 1`." - ] - } - ] - }, - "calls": { - "ty": 437 - }, - "event": { - "ty": 114 - }, - "constants": [ - { - "name": "EndingPeriod", - "ty": 4, - "value": [64, 25, 1, 0], - "docs": [ - " The number of blocks over which an auction may be retroactively ended." - ] - }, - { - "name": "SampleLength", - "ty": 4, - "value": [20, 0, 0, 0], - "docs": [ - " The length of each sample to take during the ending period.", - "", - " `EndingPeriod` / `SampleLength` = Total # of Samples" - ] - }, - { - "name": "SlotRangeCount", - "ty": 4, - "value": [36, 0, 0, 0], - "docs": [] - }, - { - "name": "LeasePeriodsPerSlot", - "ty": 4, - "value": [8, 0, 0, 0], - "docs": [] - } - ], - "error": { - "ty": 687 - }, - "index": 72, - "docs": [] - }, - { - "name": "Crowdloan", - "storage": { - "prefix": "Crowdloan", - "entries": [ - { - "name": "Funds", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 688 - } - }, - "default": [0], - "docs": [" Info on all of the funds."] - }, - { - "name": "NewRaise", - "modifier": "Default", - "ty": { - "Plain": 632 - }, - "default": [0], - "docs": [ - " The funds that have had additional contributions during the last block. This is used", - " in order to determine which funds should submit new or updated bids." - ] - }, - { - "name": "EndingsCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The number of auctions that have entered into their ending period so far." - ] - }, - { - "name": "NextFundIndex", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Tracker for the next available fund index"] - } - ] - }, - "calls": { - "ty": 439 - }, - "event": { - "ty": 115 - }, - "constants": [ - { - "name": "PalletId", - "ty": 508, - "value": [112, 121, 47, 99, 102, 117, 110, 100], - "docs": [ - " `PalletId` for the crowdloan pallet. An appropriate value could be", - " `PalletId(*b\"py/cfund\")`" - ] - }, - { - "name": "MinContribution", - "ty": 6, - "value": [24, 228, 118, 72, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " The minimum amount that may be contributed into a crowdloan. Should almost certainly be", - " at least `ExistentialDeposit`." - ] - }, - { - "name": "RemoveKeysLimit", - "ty": 4, - "value": [232, 3, 0, 0], - "docs": [ - " Max number of storage keys to remove per extrinsic call." - ] - } - ], - "error": { - "ty": 690 - }, - "index": 73, - "docs": [] - }, - { - "name": "XcmPallet", - "storage": { - "prefix": "XcmPallet", - "entries": [ - { - "name": "QueryCounter", - "modifier": "Default", - "ty": { - "Plain": 11 - }, - "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": 11, - "value": 691 - } - }, - "default": [0], - "docs": [" The ongoing queries."] - }, - { - "name": "AssetTraps", - "modifier": "Default", - "ty": { - "Map": { - "hashers": ["Identity"], - "key": 12, - "value": 4 - } - }, - "default": [0, 0, 0, 0], - "docs": [ - " The existing asset traps.", - "", - " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) 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": 696, - "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": 696, - "value": 11 - } - }, - "default": [0], - "docs": [ - " All locations that we have requested version notifications from." - ] - }, - { - "name": "VersionNotifyTargets", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat", "Blake2_128Concat"], - "key": 696, - "value": 697 - } - }, - "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": 698 - }, - "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": 701 - }, - "default": [0], - "docs": [" The current migration's stage, if any."] - }, - { - "name": "RemoteLockedFungibles", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": [ - "Twox64Concat", - "Blake2_128Concat", - "Blake2_128Concat" - ], - "key": 703, - "value": 705 - } - }, - "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": 709 - } - }, - "default": [0], - "docs": [ - " Fungible assets which we know are locked on this chain." - ] - }, - { - "name": "XcmExecutionSuspended", - "modifier": "Default", - "ty": { - "Plain": 54 - }, - "default": [0], - "docs": [" Global suspension state of the XCM executor."] - } - ] - }, - "calls": { - "ty": 444 - }, - "event": { - "ty": 116 - }, - "constants": [], - "error": { - "ty": 712 - }, - "index": 99, - "docs": [] - }, - { - "name": "ParasSudoWrapper", - "storage": null, - "calls": { - "ty": 465 - }, - "event": null, - "constants": [], - "error": { - "ty": 713 - }, - "index": 250, - "docs": [] - }, - { - "name": "AssignedSlots", - "storage": { - "prefix": "AssignedSlots", - "entries": [ - { - "name": "PermanentSlots", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 73 - } - }, - "default": [0], - "docs": [ - " Assigned permanent slots, with their start lease period, and duration." - ] - }, - { - "name": "PermanentSlotCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Number of assigned (and active) permanent slots."] - }, - { - "name": "TemporarySlots", - "modifier": "Optional", - "ty": { - "Map": { - "hashers": ["Twox64Concat"], - "key": 90, - "value": 714 - } - }, - "default": [0], - "docs": [" Assigned temporary slots."] - }, - { - "name": "TemporarySlotCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [" Number of assigned temporary slots."] - }, - { - "name": "ActiveTemporarySlotCount", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " Number of active temporary slots in current slot lease period." - ] - }, - { - "name": "MaxTemporarySlots", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The max number of temporary slots that can be assigned." - ] - }, - { - "name": "MaxPermanentSlots", - "modifier": "Default", - "ty": { - "Plain": 4 - }, - "default": [0, 0, 0, 0], - "docs": [ - " The max number of permanent slots that can be assigned." - ] - } - ] - }, - "calls": { - "ty": 467 - }, - "event": { - "ty": 170 - }, - "constants": [ - { - "name": "PermanentSlotLeasePeriodLength", - "ty": 4, - "value": [109, 1, 0, 0], - "docs": [ - " The number of lease periods a permanent parachain slot lasts." - ] - }, - { - "name": "TemporarySlotLeasePeriodLength", - "ty": 4, - "value": [5, 0, 0, 0], - "docs": [ - " The number of lease periods a temporary parachain slot lasts." - ] - }, - { - "name": "MaxTemporarySlotPerLeasePeriod", - "ty": 4, - "value": [5, 0, 0, 0], - "docs": [ - " The max number of temporary slots to be scheduled per lease periods." - ] - } - ], - "error": { - "ty": 715 - }, - "index": 251, - "docs": [] - }, - { - "name": "ValidatorManager", - "storage": { - "prefix": "ValidatorManager", - "entries": [ - { - "name": "ValidatorsToRetire", - "modifier": "Default", - "ty": { - "Plain": 68 - }, - "default": [0], - "docs": [ - " Validators that should be retired, because their Parachain was deregistered." - ] - }, - { - "name": "ValidatorsToAdd", - "modifier": "Default", - "ty": { - "Plain": 68 - }, - "default": [0], - "docs": [" Validators that should be added."] - } - ] - }, - "calls": { - "ty": 469 - }, - "event": { - "ty": 171 - }, - "constants": [], - "error": null, - "index": 252, - "docs": [] - }, - { - "name": "StateTrieMigration", - "storage": { - "prefix": "StateTrieMigration", - "entries": [ - { - "name": "MigrationProcess", - "modifier": "Default", - "ty": { - "Plain": 473 - }, - "default": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - "docs": [ - " Migration progress.", - "", - " This stores the snapshot of the last migrated keys. It can be set into motion and move", - " forward by any of the means provided by this pallet." - ] - }, - { - "name": "AutoLimits", - "modifier": "Default", - "ty": { - "Plain": 471 - }, - "default": [0], - "docs": [ - " The limits that are imposed on automatic migrations.", - "", - " If set to None, then no automatic migration happens." - ] - }, - { - "name": "SignedMigrationMaxLimits", - "modifier": "Optional", - "ty": { - "Plain": 472 - }, - "default": [0], - "docs": [ - " The maximum limits that the signed migration could use.", - "", - " If not set, no signed submission is allowed." - ] - } - ] - }, - "calls": { - "ty": 470 - }, - "event": { - "ty": 172 - }, - "constants": [ - { - "name": "MaxKeyLen", - "ty": 4, - "value": [0, 2, 0, 0], - "docs": [ - " Maximal number of bytes that a key can have.", - "", - " FRAME itself does not limit the key length.", - " The concrete value must therefore depend on your storage usage.", - " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", - " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", - "", - " Use the *state migration RPC* to retrieve the length of the longest key in your", - " storage: ", - "", - " The migration will halt with a `Halted` event if this value is too small.", - " Since there is no real penalty from over-estimating, it is advised to use a large", - " value. The default is 512 byte.", - "", - " Some key lengths for reference:", - " - [`frame_support::storage::StorageValue`]: 32 byte", - " - [`frame_support::storage::StorageMap`]: 64 byte", - " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", - "", - " For more info see", - " " - ] - } - ], - "error": { - "ty": 174 - }, - "index": 254, - "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": 476 - }, - "event": { - "ty": 175 - }, - "constants": [], - "error": { - "ty": 716 - }, - "index": 255, - "docs": [] - } - ], - "extrinsic": { - "version": 4, - "address_ty": 226, - "call_ty": 305, - "signature_ty": 443, - "extra_ty": 717, - "signed_extensions": [ - { - "identifier": "CheckNonZeroSender", - "ty": 718, - "additional_signed": 47 - }, - { - "identifier": "CheckSpecVersion", - "ty": 719, - "additional_signed": 4 - }, - { - "identifier": "CheckTxVersion", - "ty": 720, - "additional_signed": 4 - }, - { - "identifier": "CheckGenesis", - "ty": 721, - "additional_signed": 12 - }, - { - "identifier": "CheckMortality", - "ty": 722, - "additional_signed": 12 - }, - { - "identifier": "CheckNonce", - "ty": 724, - "additional_signed": 47 - }, - { - "identifier": "CheckWeight", - "ty": 725, - "additional_signed": 47 - }, - { - "identifier": "ChargeTransactionPayment", - "ty": 726, - "additional_signed": 47 - } - ] - }, - "ty": 727, - "apis": [ - { - "name": "Core", - "methods": [ - { - "name": "version", - "inputs": [], - "output": 193, - "docs": [" Returns the version of the runtime."] - }, - { - "name": "execute_block", - "inputs": [ - { - "name": "block", - "ty": 728 - } - ], - "output": 47, - "docs": [" Execute the given block."] - }, - { - "name": "initialize_block", - "inputs": [ - { - "name": "header", - "ty": 220 - } - ], - "output": 47, - "docs": [" Initialize a block with the given header."] - } - ], - "docs": [ - " The `Core` runtime api that every Substrate runtime needs to implement." - ] - }, - { - "name": "Metadata", - "methods": [ - { - "name": "metadata", - "inputs": [], - "output": 731, - "docs": [" Returns the metadata of a runtime."] - }, - { - "name": "metadata_at_version", - "inputs": [ - { - "name": "version", - "ty": 4 - } - ], - "output": 732, - "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": 275, - "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": 729 - } - ], - "output": 733, - "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": 220, - "docs": [" Finish the current block."] - }, - { - "name": "inherent_extrinsics", - "inputs": [ - { - "name": "inherent", - "ty": 737 - } - ], - "output": 730, - "docs": [ - " Generate inherent extrinsics. The inherent data will vary from chain to chain." - ] - }, - { - "name": "check_inherents", - "inputs": [ - { - "name": "block", - "ty": 728 - }, - { - "name": "data", - "ty": 737 - } - ], - "output": 741, - "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": 742 - }, - { - "name": "tx", - "ty": 729 - }, - { - "name": "block_hash", - "ty": 12 - } - ], - "output": 743, - "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": 220 - } - ], - "output": 47, - "docs": [" Starts the off-chain task for given block header."] - } - ], - "docs": [" The offchain worker api."] - }, - { - "name": "ParachainHost", - "methods": [ - { - "name": "validators", - "inputs": [], - "output": 605, - "docs": [" Get the current validators."] - }, - { - "name": "validator_groups", - "inputs": [], - "output": 745, - "docs": [ - " Returns the validator groups and rotation info localized based on the hypothetical child", - " of a block whose state this is invoked on. Note that `now` in the `GroupRotationInfo`", - " should be the successor of the number of the block." - ] - }, - { - "name": "availability_cores", - "inputs": [], - "output": 747, - "docs": [ - " Yields information on all availability cores as relevant to the child block.", - " Cores are either free or occupied. Free cores can have paras assigned to them." - ] - }, - { - "name": "persisted_validation_data", - "inputs": [ - { - "name": "para_id", - "ty": 90 - }, - { - "name": "assumption", - "ty": 753 - } - ], - "output": 754, - "docs": [ - " Yields the persisted validation data for the given `ParaId` along with an assumption that", - " should be used if the para currently occupies a core.", - "", - " Returns `None` if either the para is not registered or the assumption is `Freed`", - " and the para already occupies a core." - ] - }, - { - "name": "assumed_validation_data", - "inputs": [ - { - "name": "para_id", - "ty": 90 - }, - { - "name": "expected_persisted_validation_data_hash", - "ty": 12 - } - ], - "output": 756, - "docs": [ - " Returns the persisted validation data for the given `ParaId` along with the corresponding", - " validation code hash. Instead of accepting assumption about the para, matches the validation", - " data hash against an expected one and yields `None` if they're not equal." - ] - }, - { - "name": "check_validation_outputs", - "inputs": [ - { - "name": "para_id", - "ty": 90 - }, - { - "name": "outputs", - "ty": 408 - } - ], - "output": 54, - "docs": [ - " Checks if the given validation outputs pass the acceptance criteria." - ] - }, - { - "name": "session_index_for_child", - "inputs": [], - "output": 4, - "docs": [ - " Returns the session index expected at a child of the block.", - "", - " This can be used to instantiate a `SigningContext`." - ] - }, - { - "name": "validation_code", - "inputs": [ - { - "name": "para_id", - "ty": 90 - }, - { - "name": "assumption", - "ty": 753 - } - ], - "output": 413, - "docs": [ - " Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.", - "", - " Returns `None` if either the para is not registered or the assumption is `Freed`", - " and the para already occupies a core." - ] - }, - { - "name": "candidate_pending_availability", - "inputs": [ - { - "name": "para_id", - "ty": 90 - } - ], - "output": 758, - "docs": [ - " Get the receipt of a candidate pending availability. This returns `Some` for any paras", - " assigned to occupied cores in `availability_cores` and `None` otherwise." - ] - }, - { - "name": "candidate_events", - "inputs": [], - "output": 759, - "docs": [ - " Get a vector of events concerning candidates that occurred within a block." - ] - }, - { - "name": "dmq_contents", - "inputs": [ - { - "name": "recipient", - "ty": 90 - } - ], - "output": 644, - "docs": [ - " Get all the pending inbound messages in the downward message queue for a para." - ] - }, - { - "name": "inbound_hrmp_channels_contents", - "inputs": [ - { - "name": "recipient", - "ty": 90 - } - ], - "output": 761, - "docs": [ - " Get the contents of all channels addressed to the given recipient. Channels that have no", - " messages in them are also included." - ] - }, - { - "name": "validation_code_by_hash", - "inputs": [ - { - "name": "hash", - "ty": 95 - } - ], - "output": 413, - "docs": [" Get the validation code from its hash."] - }, - { - "name": "on_chain_votes", - "inputs": [], - "output": 764, - "docs": [ - " Scrape dispute relevant from on-chain, backing votes and resolved disputes." - ] - }, - { - "name": "session_info", - "inputs": [ - { - "name": "index", - "ty": 4 - } - ], - "output": 765, - "docs": [ - " Get the session info for the given session, if stored.", - "", - " NOTE: This function is only available since parachain host version 2." - ] - }, - { - "name": "submit_pvf_check_statement", - "inputs": [ - { - "name": "stmt", - "ty": 425 - }, - { - "name": "signature", - "ty": 404 - } - ], - "output": 47, - "docs": [ - " Submits a PVF pre-checking statement into the transaction pool.", - "", - " NOTE: This function is only available since parachain host version 2." - ] - }, - { - "name": "pvfs_require_precheck", - "inputs": [], - "output": 631, - "docs": [ - " Returns code hashes of PVFs that require pre-checking by validators in the active set.", - "", - " NOTE: This function is only available since parachain host version 2." - ] - }, - { - "name": "validation_code_hash", - "inputs": [ - { - "name": "para_id", - "ty": 90 - }, - { - "name": "assumption", - "ty": 753 - } - ], - "output": 766, - "docs": [ - " Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.", - "", - " NOTE: This function is only available since parachain host version 2." - ] - }, - { - "name": "disputes", - "inputs": [], - "output": 767, - "docs": [" Returns all onchain disputes."] - }, - { - "name": "session_executor_params", - "inputs": [ - { - "name": "session_index", - "ty": 4 - } - ], - "output": 769, - "docs": [" Returns execution parameters for the session."] - }, - { - "name": "unapplied_slashes", - "inputs": [], - "output": 770, - "docs": [ - " Returns a list of validators that lost a past session dispute and need to be slashed.", - " NOTE: This function is only available since parachain host version 5." - ] - }, - { - "name": "key_ownership_proof", - "inputs": [ - { - "name": "validator_id", - "ty": 272 - } - ], - "output": 772, - "docs": [ - " Returns a merkle proof of a validator session key.", - " NOTE: This function is only available since parachain host version 5." - ] - }, - { - "name": "submit_report_dispute_lost", - "inputs": [ - { - "name": "dispute_proof", - "ty": 430 - }, - { - "name": "key_ownership_proof", - "ty": 773 - } - ], - "output": 774, - "docs": [ - " Submit an unsigned extrinsic to slash validators who lost a dispute about", - " a candidate of a past session.", - " NOTE: This function is only available since parachain host version 5." - ] - }, - { - "name": "minimum_backing_votes", - "inputs": [], - "output": 4, - "docs": [ - " Get the minimum number of backing votes for a parachain candidate.", - " This is a staging method! Do not use on production runtimes!" - ] - }, - { - "name": "staging_para_backing_state", - "inputs": [ - { - "name": "_", - "ty": 90 - } - ], - "output": 775, - "docs": [ - " Returns the state of parachain backing for a given para.", - " This is a staging method! Do not use on production runtimes!" - ] - }, - { - "name": "staging_async_backing_params", - "inputs": [], - "output": 387, - "docs": [ - " Returns candidate's acceptance limitations for asynchronous backing for a relay parent." - ] - } - ], - "docs": [" The API for querying the state of parachains on-chain."] - }, - { - "name": "BeefyApi", - "methods": [ - { - "name": "beefy_genesis", - "inputs": [], - "output": 255, - "docs": [ - " Return the block number where BEEFY consensus is enabled/started" - ] - }, - { - "name": "validator_set", - "inputs": [], - "output": 787, - "docs": [" Return the current active BEEFY validator set"] - }, - { - "name": "submit_report_equivocation_unsigned_extrinsic", - "inputs": [ - { - "name": "equivocation_proof", - "ty": 257 - }, - { - "name": "key_owner_proof", - "ty": 789 - } - ], - "output": 774, - "docs": [ - " Submits an unsigned extrinsic to report an equivocation. The caller", - " must provide the equivocation proof and a key ownership proof", - " (should be obtained using `generate_key_ownership_proof`). The", - " extrinsic will be unsigned and should only be accepted for local", - " authorship (not to be broadcast to the network). This method returns", - " `None` when creation of the extrinsic fails, e.g. if equivocation", - " reporting is disabled for the given runtime (i.e. this method is", - " hardcoded to return `None`). Only useful in an offchain context." - ] - }, - { - "name": "generate_key_ownership_proof", - "inputs": [ - { - "name": "set_id", - "ty": 11 - }, - { - "name": "authority_id", - "ty": 251 - } - ], - "output": 790, - "docs": [ - " Generates a proof of key ownership for the given authority in the", - " given set. An example usage of this module is coupled with the", - " session historical module to prove that a given authority key is", - " tied to a given staking identity during a specific session. Proofs", - " of key ownership are necessary for submitting equivocation reports.", - " NOTE: even though the API takes a `set_id` as parameter the current", - " implementations ignores this parameter and instead relies on this", - " method being called at the correct block height, i.e. any point at", - " which the given set id is live on-chain. Future implementations will", - " instead use indexed data through an offchain worker, not requiring", - " older states to be available." - ] - } - ], - "docs": [" API necessary for BEEFY voters."] - }, - { - "name": "MmrApi", - "methods": [ - { - "name": "mmr_root", - "inputs": [], - "output": 791, - "docs": [" Return the on-chain MMR root hash."] - }, - { - "name": "mmr_leaf_count", - "inputs": [], - "output": 793, - "docs": [" Return the number of MMR blocks in the chain."] - }, - { - "name": "generate_proof", - "inputs": [ - { - "name": "block_numbers", - "ty": 275 - }, - { - "name": "best_known_block_number", - "ty": 255 - } - ], - "output": 794, - "docs": [ - " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,", - " use historical MMR state at given block height `n`. Else, use current MMR state." - ] - }, - { - "name": "verify_proof", - "inputs": [ - { - "name": "leaves", - "ty": 796 - }, - { - "name": "proof", - "ty": 798 - } - ], - "output": 800, - "docs": [ - " Verify MMR proof against on-chain MMR for a batch of leaves.", - "", - " Note this function will use on-chain MMR root hash and check if the proof matches the hash.", - " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", - " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [Proof]" - ] - }, - { - "name": "verify_proof_stateless", - "inputs": [ - { - "name": "root", - "ty": 12 - }, - { - "name": "leaves", - "ty": 796 - }, - { - "name": "proof", - "ty": 798 - } - ], - "output": 800, - "docs": [ - " Verify MMR proof against given root hash for a batch of leaves.", - "", - " Note this function does not require any on-chain storage - the", - " proof is verified against given MMR root hash.", - "", - " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", - " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [Proof]" - ] - } - ], - "docs": [" API to interact with MMR pallet."] - }, - { - "name": "GrandpaApi", - "methods": [ - { - "name": "grandpa_authorities", - "inputs": [], - "output": 38, - "docs": [ - " Get the current GRANDPA authorities and weights. This should not change except", - " for when changes are scheduled and the corresponding delay has passed.", - "", - " When called at block B, it will return the set of authorities that should be", - " used to finalize descendants of this block (B+1, B+2, ...). The block B itself", - " is finalized by the authorities from block B-1." - ] - }, - { - "name": "submit_report_equivocation_unsigned_extrinsic", - "inputs": [ - { - "name": "equivocation_proof", - "ty": 284 - }, - { - "name": "key_owner_proof", - "ty": 801 - } - ], - "output": 774, - "docs": [ - " Submits an unsigned extrinsic to report an equivocation. The caller", - " must provide the equivocation proof and a key ownership proof", - " (should be obtained using `generate_key_ownership_proof`). The", - " extrinsic will be unsigned and should only be accepted for local", - " authorship (not to be broadcast to the network). This method returns", - " `None` when creation of the extrinsic fails, e.g. if equivocation", - " reporting is disabled for the given runtime (i.e. this method is", - " hardcoded to return `None`). Only useful in an offchain context." - ] - }, - { - "name": "generate_key_ownership_proof", - "inputs": [ - { - "name": "set_id", - "ty": 11 - }, - { - "name": "authority_id", - "ty": 40 - } - ], - "output": 802, - "docs": [ - " Generates a proof of key ownership for the given authority in the", - " given set. An example usage of this module is coupled with the", - " session historical module to prove that a given authority key is", - " tied to a given staking identity during a specific session. Proofs", - " of key ownership are necessary for submitting equivocation reports.", - " NOTE: even though the API takes a `set_id` as parameter the current", - " implementations ignore this parameter and instead rely on this", - " method being called at the correct block height, i.e. any point at", - " which the given set id is live on-chain. Future implementations will", - " instead use indexed data through an offchain worker, not requiring", - " older states to be available." - ] - }, - { - "name": "current_set_id", - "inputs": [], - "output": 11, - "docs": [" Get current GRANDPA authority set id."] - } - ], - "docs": [ - " APIs for integrating the GRANDPA finality gadget into runtimes.", - " This should be implemented on the runtime side.", - "", - " This is primarily used for negotiating authority-set changes for the", - " gadget. GRANDPA uses a signaling model of changing authority sets:", - " changes should be signaled with a delay of N blocks, and then automatically", - " applied in the runtime after those N blocks have passed.", - "", - " The consensus protocol will coordinate the handoff externally." - ] - }, - { - "name": "BabeApi", - "methods": [ - { - "name": "configuration", - "inputs": [], - "output": 803, - "docs": [" Return the configuration for BABE."] - }, - { - "name": "current_epoch_start", - "inputs": [], - "output": 202, - "docs": [" Returns the slot that started the current epoch."] - }, - { - "name": "current_epoch", - "inputs": [], - "output": 804, - "docs": [" Returns information regarding the current epoch."] - }, - { - "name": "next_epoch", - "inputs": [], - "output": 804, - "docs": [ - " Returns information regarding the next epoch (which was already", - " previously announced)." - ] - }, - { - "name": "generate_key_ownership_proof", - "inputs": [ - { - "name": "slot", - "ty": 202 - }, - { - "name": "authority_id", - "ty": 200 - } - ], - "output": 805, - "docs": [ - " Generates a proof of key ownership for the given authority in the", - " current epoch. An example usage of this module is coupled with the", - " session historical module to prove that a given authority key is", - " tied to a given staking identity during a specific session. Proofs", - " of key ownership are necessary for submitting equivocation reports.", - " NOTE: even though the API takes a `slot` as parameter the current", - " implementations ignores this parameter and instead relies on this", - " method being called at the correct block height, i.e. any point at", - " which the epoch for the given slot is live on-chain. Future", - " implementations will instead use indexed data through an offchain", - " worker, not requiring older states to be available." - ] - }, - { - "name": "submit_report_equivocation_unsigned_extrinsic", - "inputs": [ - { - "name": "equivocation_proof", - "ty": 219 - }, - { - "name": "key_owner_proof", - "ty": 806 - } - ], - "output": 774, - "docs": [ - " Submits an unsigned extrinsic to report an equivocation. The caller", - " must provide the equivocation proof and a key ownership proof", - " (should be obtained using `generate_key_ownership_proof`). The", - " extrinsic will be unsigned and should only be accepted for local", - " authorship (not to be broadcast to the network). This method returns", - " `None` when creation of the extrinsic fails, e.g. if equivocation", - " reporting is disabled for the given runtime (i.e. this method is", - " hardcoded to return `None`). Only useful in an offchain context." - ] - } - ], - "docs": [" API necessary for block authorship with BABE."] - }, - { - "name": "AuthorityDiscoveryApi", - "methods": [ - { - "name": "authorities", - "inputs": [], - "output": 657, - "docs": [ - " Retrieve authority identifiers of the current and next authority set." - ] - } - ], - "docs": [ - " The authority discovery api.", - "", - " This api is used by the `client/authority-discovery` module to retrieve identifiers", - " of the current and next authority set." - ] - }, - { - "name": "SessionKeys", - "methods": [ - { - "name": "generate_session_keys", - "inputs": [ - { - "name": "seed", - "ty": 702 - } - ], - "output": 13, - "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": 13 - } - ], - "output": 807, - "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": "TransactionPaymentApi", - "methods": [ - { - "name": "query_info", - "inputs": [ - { - "name": "uxt", - "ty": 729 - }, - { - "name": "len", - "ty": 4 - } - ], - "output": 810, - "docs": [] - }, - { - "name": "query_fee_details", - "inputs": [ - { - "name": "uxt", - "ty": 729 - }, - { - "name": "len", - "ty": 4 - } - ], - "output": 811, - "docs": [] - }, - { - "name": "query_weight_to_fee", - "inputs": [ - { - "name": "weight", - "ty": 9 - } - ], - "output": 6, - "docs": [] - }, - { - "name": "query_length_to_fee", - "inputs": [ - { - "name": "length", - "ty": 4 - } - ], - "output": 6, - "docs": [] - } - ], - "docs": [] - }, - { - "name": "BeefyMmrApi", - "methods": [ - { - "name": "authority_set_proof", - "inputs": [], - "output": 268, - "docs": [ - " Return the currently active BEEFY authority set proof." - ] - }, - { - "name": "next_authority_set_proof", - "inputs": [], - "output": 268, - "docs": [" Return the next/queued BEEFY authority set proof."] - } - ], - "docs": [" API useful for BEEFY light clients."] - } - ], - "outer_enums": { - "call_enum_ty": 305, - "event_enum_ty": 20, - "error_enum_ty": 814 - }, - "custom": { - "map": {} - } - } - } -] diff --git a/artifacts/polkadot_metadata.scale b/artifacts/polkadot_metadata.scale new file mode 100644 index 0000000000000000000000000000000000000000..e49aa00fe610286ef682ce883f56a82448228dc3 GIT binary patch literal 298287 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%0A_f`xAJ+3DCMAjK7J941}2OZd#^pi;F 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%0A;ULO#Z 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 { /// This example shows how to use metadata from a polkadot node to generate rust types. pub fn main() { - let type_registry = read_registry_from_json(); + let type_registry = read_registry_from_scale_metadata(); let settings = TypeGeneratorSettings::default() .type_mod_name("my_types") - .decoded_bits_type_path(parse_quote!(DecodedBits)); + .decoded_bits_type_path(parse_quote!(DecodedBits)) + .compact_as_type_path(parse_quote!(parity_scale_codec::CompactAs)) + .compact_type_path(parse_quote!(parity_scale_codec::Compact)) + .derive_on_all([parse_quote!(Debug), parse_quote!(Clone)]); let type_generator = TypeGenerator::new(&type_registry, &settings); let code = type_generator @@ -26,22 +30,19 @@ pub fn main() { .unwrap() .to_token_stream(); - write_pretty_tokens(code, "./src/polkadot.rs"); + write_pretty_tokens(code, "./artifacts/generated_polkadot.rs"); } -fn read_registry_from_json() -> PortableRegistry { - let json: Value = - serde_json::from_str(&std::fs::read_to_string("./artifacts/polkadot.json").unwrap()) - .unwrap(); - let types = json.as_array().unwrap()[1] - .as_object() - .unwrap() - .get("V15") - .unwrap() - .get("types") - .unwrap(); - let registry: PortableRegistry = serde_json::from_value(types.clone()).unwrap(); - registry +fn read_registry_from_scale_metadata() -> PortableRegistry { + let bytes = std::fs::read("./artifacts/polkadot_metadata.scale") + .expect("File polkadot_metadata not found!"); + let metadata = frame_metadata::RuntimeMetadataPrefixed::decode(&mut &bytes[..]) + .expect("Metadata decoding failed"); + match metadata.1 { + frame_metadata::RuntimeMetadata::V14(m) => m.types, + frame_metadata::RuntimeMetadata::V15(m) => m.types, + _ => panic!("Metadata too old, needs to be V14 or V15"), + } } fn write_pretty_tokens(tokens: TokenStream, path: &str) { diff --git a/typegen/src/lib.rs b/typegen/src/lib.rs index 45b24de..325686b 100644 --- a/typegen/src/lib.rs +++ b/typegen/src/lib.rs @@ -12,6 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. +#![deny(unused_crate_dependencies)] + +#[cfg(test)] +use frame_metadata as _; +#[cfg(test)] +use prettyplease as _; +#[cfg(test)] +use scale_bits as _; + pub mod typegen; pub mod utils; diff --git a/typegen/src/typegen/settings/mod.rs b/typegen/src/typegen/settings/mod.rs index df6c45a..93f4f7c 100644 --- a/typegen/src/typegen/settings/mod.rs +++ b/typegen/src/typegen/settings/mod.rs @@ -68,6 +68,16 @@ impl TypeGeneratorSettings { self } + pub fn compact_as_type_path(mut self, path: syn::Path) -> Self { + self.compact_as_type_path = Some(path); + self + } + + pub fn compact_type_path(mut self, path: syn::Path) -> Self { + self.compact_type_path = Some(path); + self + } + pub fn decoded_bits_type_path(mut self, path: syn::Path) -> Self { self.decoded_bits_type_path = Some(path); self From ffa5ea39c930287d6c14870541f3673a473fc756 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Mon, 27 Nov 2023 18:33:05 +0100 Subject: [PATCH 07/27] add documentation to everything. --- Cargo.toml | 5 +++- description/Cargo.toml | 14 +++++----- description/src/formatting.rs | 1 + description/src/lib.rs | 8 ++++++ description/src/type_example/mod.rs | 2 ++ description/src/type_example/rust_value.rs | 5 ++++ description/src/type_example/scale_value.rs | 2 ++ typegen/src/lib.rs | 5 ++++ typegen/src/typegen/error.rs | 11 ++++++++ typegen/src/typegen/ir/mod.rs | 2 ++ typegen/src/typegen/ir/module_ir.rs | 6 ++++ typegen/src/typegen/ir/type_ir.rs | 30 +++++++++++++++++++- typegen/src/typegen/mod.rs | 13 +++++++++ typegen/src/typegen/resolve_type_paths.rs | 2 ++ typegen/src/typegen/settings/mod.rs | 12 ++++++++ typegen/src/typegen/settings/substitutes.rs | 4 +++ typegen/src/typegen/type_params.rs | 3 +- typegen/src/typegen/type_path.rs | 31 +++++++++++++++++++++ typegen/src/utils.rs | 2 ++ 19 files changed, 147 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2dec50b..f6344ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,4 +34,7 @@ frame-metadata = { version = "16.0.0", default-features = false, features = ["cu bitvec = { version = "1", default-features = false } pretty_assertions = "1.4.0" anyhow = "1.0.75" -# crates +peekmore = "1.3.0" +scale-value = { version = "0.13.0" } +rand_chacha = { version = "0.3.1" } +rand = { version = "0.8.5" } diff --git a/description/Cargo.toml b/description/Cargo.toml index 7fbad07..e061f58 100644 --- a/description/Cargo.toml +++ b/description/Cargo.toml @@ -14,18 +14,18 @@ type-example = ["dep:scale-value", "dep:proc-macro2", "dep:rand_chacha", "dep:ra [dependencies] anyhow = { workspace = true } -peekmore = "1.3.0" +peekmore = { workspace = true } smallvec = { workspace = true } scale-info = { workspace = true } - -scale-value = { version = "0.13.0", optional = true } -proc-macro2 = { version = "1.0.69", optional = true } -rand_chacha = { version = "0.3.1", optional = true } -rand = { version = "0.8.5", optional = true } - scale-typegen = { workspace = true } quote = { workspace = true } +#dependencies for "type-example" feature: +scale-value = { workspace = true, optional = true } +proc-macro2 = { workspace = true, optional = true } +rand_chacha = { workspace = true, optional = true } +rand = { workspace = true, optional = true } + [dev-dependencies] indoc = "2" pretty_assertions = { workspace = true } diff --git a/description/src/formatting.rs b/description/src/formatting.rs index f4a1123..43080aa 100644 --- a/description/src/formatting.rs +++ b/description/src/formatting.rs @@ -3,6 +3,7 @@ use std::str::Chars; use peekmore::{PeekMore, PeekMoreIterator}; use smallvec::SmallVec; +/// Formats a type description string to have nice indents. pub fn format_type_description(input: &str) -> String { /// Big scope means we want to spread out items over multiple lines. /// Small scope means, we want to keep it compact (on one line). diff --git a/description/src/lib.rs b/description/src/lib.rs index 3bc3c5a..5a1252e 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -12,12 +12,20 @@ // See the License for the specific language governing permissions and // limitations under the License. +//! A crate for turning a type from a [`scale_info::PortableRegistry`] into some other, fully resolved, tree-like representation. +//! Currently we can generate these representations for a type: +//! - A human readable description of the type via [`crate::type_description`]. +//! - An exemplary rust value of the type via [`crate::rust_value`]. +//! - An exemplary scale value of the type via [`crate::scale_value`]. + #![deny(unused_crate_dependencies)] +#![deny(missing_docs)] mod description; mod formatting; mod transformer; +/// Create type examples for a type registry. #[cfg(feature = "type-example")] pub mod type_example; diff --git a/description/src/type_example/mod.rs b/description/src/type_example/mod.rs index 404bb34..8e7709a 100644 --- a/description/src/type_example/mod.rs +++ b/description/src/type_example/mod.rs @@ -1,4 +1,6 @@ +/// Generate an exemplary rust value of some type pub mod rust_value; +/// Generate an exemplary scale value of some type pub mod scale_value; #[cfg(test)] diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 018d264..71bb3e9 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -100,6 +100,7 @@ impl<'a> CodeTransformer<'a> { } } +/// Generates a random rust value for a type from the registry. The result should be a valid rust expression. pub fn example( type_id: u32, types: &PortableRegistry, @@ -108,6 +109,10 @@ pub fn example( example_from_seed(type_id, types, settings_for_path_resolver, 42, None, None) } +/// Generates a random rust value for a type from the registry. The result should be a valid rust expression. You can specify a seed to get reproducable results. +/// The `ty_middleware` can be used, to return a different type when a certain type is encountered. +/// The `ty_path_middleware` can be used, to convert an type path encountered into a different type path. +/// E.g. turning `::std::vec::Vec` into just `Vec`. pub fn example_from_seed( type_id: u32, types: &PortableRegistry, diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index 2f3a2ac..54e7ff5 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -11,11 +11,13 @@ use crate::transformer::Transformer; type ValueTransformer<'a> = Transformer<'a, Value, RefCell>; +/// Generates a random scale value for a type from the registry. pub fn example(id: u32, types: &PortableRegistry) -> anyhow::Result { const MAGIC_SEED: u64 = 42; example_from_seed(id, types, MAGIC_SEED) } +/// Generates a random scale value for a type from the registry. You can specify the seed to get reproducable results. pub fn example_from_seed(id: u32, types: &PortableRegistry, seed: u64) -> anyhow::Result { fn error_on_recurse( _type_id: u32, diff --git a/typegen/src/lib.rs b/typegen/src/lib.rs index 325686b..fccb7bd 100644 --- a/typegen/src/lib.rs +++ b/typegen/src/lib.rs @@ -12,8 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +//! A library based on [scale-info](https://github.com/paritytech/scale-info) to transpile portable registries of types into rust type definitions. #![deny(unused_crate_dependencies)] +#![deny(missing_docs)] +// The #![deny(unused_crate_dependencies)] requires us to do these for the example to work: #[cfg(test)] use frame_metadata as _; #[cfg(test)] @@ -21,7 +24,9 @@ use prettyplease as _; #[cfg(test)] use scale_bits as _; +/// Type Generation Settings and Logic pub mod typegen; +/// Utilities for handling Type Registries pub mod utils; pub use typegen::{ diff --git a/typegen/src/typegen/error.rs b/typegen/src/typegen/error.rs index 415c938..4e90720 100644 --- a/typegen/src/typegen/error.rs +++ b/typegen/src/typegen/error.rs @@ -1,20 +1,28 @@ use proc_macro2::Span; +/// Error for when something went wrong during type generation. #[derive(Debug, thiserror::Error)] #[non_exhaustive] pub enum TypegenError { + /// Could not parse into a syn type. #[error("Could not parse into a syn type: {0}")] SynParseError(#[from] syn::Error), + /// Fields should either be all named or all unnamed, make sure you are providing a valid metadata. #[error("Fields should either be all named or all unnamed, make sure you are providing a valid metadata: {0}")] InvalidFields(String), + /// A type in the metadata was invalid #[error("A type in the metadata was invalid: {0}")] InvalidType(String), + /// Could not generate a type that contains a compact type, because the Compact type path is not set in the settings. #[error("Could not generate a type that contains a compact type, because the Compact type path is not set in the settings.")] CompactPathNone, + /// Could not generate a type that contains a bit sequence, because the DecodedBits type path is not set in the settings. #[error("Could not generate a type that contains a bit sequence, because the DecodedBits type path is not set in the settings.")] DecodedBitsPathNone, + /// Could not find type with ID in the type registry. #[error("Could not find type with ID {0} in the type registry.")] TypeNotFound(u32), + /// Type substitution error. #[error("Type substitution error: {0}")] InvalidSubstitute(#[from] TypeSubstitutionError), } @@ -22,7 +30,9 @@ pub enum TypegenError { /// Error attempting to do type substitution. #[derive(Debug, thiserror::Error)] pub struct TypeSubstitutionError { + /// Where in the code the error occured. pub span: Span, + /// Kind of TypeSubstitutionError that happended. pub kind: TypeSubstitutionErrorKind, } @@ -35,6 +45,7 @@ impl std::fmt::Display for TypeSubstitutionError { } } +/// Error attempting to do type substitution. #[derive(Debug, thiserror::Error)] #[non_exhaustive] pub enum TypeSubstitutionErrorKind { diff --git a/typegen/src/typegen/ir/mod.rs b/typegen/src/typegen/ir/mod.rs index edbc95d..8a9a410 100644 --- a/typegen/src/typegen/ir/mod.rs +++ b/typegen/src/typegen/ir/mod.rs @@ -1,2 +1,4 @@ +/// Intermediate Representation of a rust module. pub mod module_ir; +/// Intermediate Representation of a rust type. pub mod type_ir; diff --git a/typegen/src/typegen/ir/module_ir.rs b/typegen/src/typegen/ir/module_ir.rs index ab56c43..f8ce59b 100644 --- a/typegen/src/typegen/ir/module_ir.rs +++ b/typegen/src/typegen/ir/module_ir.rs @@ -10,9 +10,13 @@ use scale_info::form::PortableForm; /// Represents a Rust `mod`, containing generated types and child `mod`s. #[derive(Debug, Clone)] pub struct ModuleIR { + /// Name of this module. pub name: Ident, + /// Root module identifier. pub root_mod: Ident, + /// Submodules of this module. pub children: BTreeMap, + /// Types in this module. pub types: BTreeMap, TypeIR>, } @@ -65,6 +69,8 @@ impl ModuleIR { &self.root_mod } + /// Recursively creates submodules for the given namespace and returns a mutable reference to the innermost module created this way. + /// Returns itself, if the namespace is empty. pub fn get_or_insert_submodule(&mut self, namespace: &[String]) -> &mut ModuleIR { if namespace.is_empty() { return self; diff --git a/typegen/src/typegen/ir/type_ir.rs b/typegen/src/typegen/ir/type_ir.rs index 40c7d43..a01b781 100644 --- a/typegen/src/typegen/ir/type_ir.rs +++ b/typegen/src/typegen/ir/type_ir.rs @@ -5,17 +5,26 @@ use crate::typegen::{ settings::derives::Derives, type_params::TypeParameters, type_path::TypePath, }; +/// Intermediate Representation of a Rust type. #[derive(Debug, Clone)] pub struct TypeIR { + /// Generic type parameters. pub type_params: TypeParameters, + /// Derived traits for his type. pub derives: Derives, + /// whether or not `#[codec(...)]` attributes should be inserted. + /// Only makes sense if the derives include `Encode`/`Decode`. pub insert_codec_attributes: bool, + /// Is this type an enum or struct. pub kind: TypeIRKind, } +/// An enum or struct. #[derive(Debug, Clone)] pub enum TypeIRKind { + /// A struct. Struct(CompositeIR), + /// An enum. Enum(EnumIR), } @@ -35,34 +44,46 @@ impl TypeIR { } } +/// A composite. Could be a struct or a variant of an enum. #[derive(Debug, Clone)] pub struct CompositeIR { + /// Struct name or enum variant name. pub name: Ident, + /// Named, Unnamed or NoFields. pub kind: CompositeIRKind, + /// Docs for the composite. pub docs: TokenStream, } impl CompositeIR { + /// Creates a new `CompositeIR`. pub fn new(name: Ident, kind: CompositeIRKind, docs: TokenStream) -> Self { Self { name, kind, docs } } } +/// A rust enum. #[derive(Debug, Clone)] pub struct EnumIR { + /// Docs for the enum. pub(crate) docs: TokenStream, pub(crate) name: Ident, pub(crate) variants: Vec<(u8, CompositeIR)>, } +/// Named, Unnamed or NoFields. #[derive(Debug, Clone)] pub enum CompositeIRKind { + /// A zero-sized, empty composite. NoFields, + /// Composite with named fields, e.g. a struct. Named(Vec<(Ident, CompositeFieldIR)>), + /// Composite with unnamed fields, e.g. a tuple. Unnamed(Vec), } impl CompositeIRKind { + /// Returns true if this composite be compact encoded. This is only true if the composite has exactly one field which could be compact encoded. pub fn could_derive_as_compact(&self) -> bool { // has to have only a single field: let single_field = match self { @@ -84,14 +105,20 @@ impl CompositeIRKind { } } +/// A field of a composite. #[derive(Debug, Clone)] pub struct CompositeFieldIR { + /// type path of the field. pub type_path: TypePath, + /// Is this field compact encoded? + /// Having this as `true` may insert a `#[codec(compact)]` attribute during code generation. pub is_compact: bool, + /// Is this field actually boxed? e.g. `Box` instead of just `type_path`. pub is_boxed: bool, } impl CompositeFieldIR { + /// Creates a new [`CompositeFieldIR`]. pub fn new(type_path: TypePath, is_compact: bool, is_boxed: bool) -> Self { CompositeFieldIR { type_path, @@ -100,7 +127,8 @@ impl CompositeFieldIR { } } - pub fn compact_attr(&self) -> Option { + /// Returns a `#[codec(compact)]` attribute if the field should be compact encoded. + fn compact_attr(&self) -> Option { self.is_compact.then(|| quote!( #[codec(compact)] )) } } diff --git a/typegen/src/typegen/mod.rs b/typegen/src/typegen/mod.rs index a3c90e6..801cad2 100644 --- a/typegen/src/typegen/mod.rs +++ b/typegen/src/typegen/mod.rs @@ -13,11 +13,17 @@ use quote::quote; use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef}; use syn::parse_quote; +/// Custom error types. pub mod error; +/// Intermediate representation of types and modules. pub mod ir; +/// Utility extension functions on the `TypeGenerator` struct to resolve type paths. pub mod resolve_type_paths; +/// Settings passed into the `TypeGenerator`. pub mod settings; +/// Logic for dealing with used and unused generic type parameters. pub mod type_params; +/// Type path definition and conversion into tokens. pub mod type_path; /// An interface for generating a types module. @@ -35,10 +41,12 @@ impl<'a> TypeGenerator<'a> { } } + /// The name of the generated module which will contain the generated types. pub fn types_mod_ident(&self) -> &Ident { &self.settings.types_mod_ident } + /// The settings used by this type generator. pub fn settings(&self) -> &TypeGeneratorSettings { self.settings } @@ -81,6 +89,7 @@ impl<'a> TypeGenerator<'a> { Ok(root_mod) } + /// Creates an intermediate representation of a type that can later be converted into rust tokens. pub fn create_type_ir( &self, ty: &Type, @@ -156,6 +165,7 @@ impl<'a> TypeGenerator<'a> { .unwrap_or_default() } + /// Creates an intermediate representation of a composite. pub fn create_composite_ir_kind( &self, fields: &[scale_info::Field], @@ -229,6 +239,8 @@ impl<'a> TypeGenerator<'a> { } } + /// Creates the intermediate representation of a type from just a composite definition. + /// This uses just the default derives and type params are left empty. pub fn upcast_composite(&self, composite: &CompositeIR) -> TypeIR { // just use Default Derives + AsCompact. No access to type specific derives here. (Mainly used in subxt to create structs from enum variants...) let mut derives = self.settings.derives.default_derives().clone(); @@ -243,6 +255,7 @@ impl<'a> TypeGenerator<'a> { } } + /// The default derives set in the type generator's settings. pub fn default_derives(&self) -> &Derives { self.settings.derives.default_derives() } diff --git a/typegen/src/typegen/resolve_type_paths.rs b/typegen/src/typegen/resolve_type_paths.rs index b43019d..b306823 100644 --- a/typegen/src/typegen/resolve_type_paths.rs +++ b/typegen/src/typegen/resolve_type_paths.rs @@ -173,6 +173,7 @@ impl<'a> TypeGenerator<'a> { Ok(TypePath::from_type(ty)) } + /// Converts a [`scale_info::Path`] into a [`TypePathType`], replacing all types that should be substituted. pub fn type_path_maybe_with_substitutes( &self, path: &scale_info::Path, @@ -189,6 +190,7 @@ impl<'a> TypeGenerator<'a> { } } + /// Resolves a type, given some type id. pub fn resolve_type(&self, id: u32) -> Result<&Type, TypegenError> { let ty = self .type_registry diff --git a/typegen/src/typegen/settings/mod.rs b/typegen/src/typegen/settings/mod.rs index 93f4f7c..65457cb 100644 --- a/typegen/src/typegen/settings/mod.rs +++ b/typegen/src/typegen/settings/mod.rs @@ -5,9 +5,12 @@ use syn::parse_quote; use self::substitutes::absolute_path; +/// Settings for which derives should be applied on types pub mod derives; +/// Settings for which types should be substituted by other types. pub mod substitutes; +/// A struct containing all the settings for generating rust types from a type registry. pub struct TypeGeneratorSettings { /// The name of the module which will contain the generated types. pub types_mod_ident: Ident, @@ -51,16 +54,19 @@ impl Default for TypeGeneratorSettings { } impl TypeGeneratorSettings { + /// Creates a new `TypeGeneratorSettings`. pub fn new() -> Self { Self::default() } + /// Sets the `type_mod_name` field. pub fn type_mod_name(mut self, type_mod_name: &str) -> Self { self.types_mod_ident = syn::parse_str(type_mod_name).expect("The provided type_mod_name is not a valid ident"); self } + /// Adds a rule, that a type with path `from` should be replaced with the path `to`. pub fn substitute(mut self, from: syn::Path, to: syn::Path) -> Self { self.substitutes .insert(from, absolute_path(to).unwrap()) @@ -68,31 +74,37 @@ impl TypeGeneratorSettings { self } + /// Sets the `compact_as_type_path` field. pub fn compact_as_type_path(mut self, path: syn::Path) -> Self { self.compact_as_type_path = Some(path); self } + /// Sets the `compact_type_path` field. pub fn compact_type_path(mut self, path: syn::Path) -> Self { self.compact_type_path = Some(path); self } + /// Sets the `decoded_bits_type_path` field. pub fn decoded_bits_type_path(mut self, path: syn::Path) -> Self { self.decoded_bits_type_path = Some(path); self } + /// Sets the `should_gen_docs` field. pub fn should_gen_docs(mut self, should_gen_docs: bool) -> Self { self.should_gen_docs = should_gen_docs; self } + /// Sets the `insert_codec_attributes` field. pub fn insert_codec_attributes(mut self) -> Self { self.insert_codec_attributes = true; self } + /// Adds some derives for all types. pub fn derive_on_all(mut self, derive_paths: impl IntoIterator) -> Self { self.derives.extend_for_all(derive_paths, []); self diff --git a/typegen/src/typegen/settings/substitutes.rs b/typegen/src/typegen/settings/substitutes.rs index 8bdfc1d..b1eefe0 100644 --- a/typegen/src/typegen/settings/substitutes.rs +++ b/typegen/src/typegen/settings/substitutes.rs @@ -20,6 +20,7 @@ pub struct TypeSubstitutes { substitutes: HashMap, } +/// A type that substitutes another type. #[derive(Debug)] pub struct Substitute { path: syn::Path, @@ -239,6 +240,7 @@ impl TypeSubstitutes { } } +/// utility for constructing a `PathSegments` struct. #[macro_export] macro_rules! path_segments { ($($ident: ident)::*) => { @@ -370,10 +372,12 @@ fn is_absolute(path: &syn::Path) -> bool { .map_or(false, |segment| segment.ident == "crate") } +/// tries to convert a [`syn::Path`] into an `AbsolutePath`. Only succeeds if the path is not a relative path. pub fn absolute_path(path: syn::Path) -> Result { path.try_into() } +/// New-type wrapper around [`syn::Path`] pub struct AbsolutePath(syn::Path); impl TryFrom for AbsolutePath { diff --git a/typegen/src/typegen/type_params.rs b/typegen/src/typegen/type_params.rs index 36987f9..ff1ad77 100644 --- a/typegen/src/typegen/type_params.rs +++ b/typegen/src/typegen/type_params.rs @@ -68,8 +68,7 @@ impl TypeParameters { pub fn has_unused_type_params(&self) -> bool { !self.unused.is_empty() } - - pub fn mark_used(&mut self, param: &TypeParameter) { + pub(super) fn mark_used(&mut self, param: &TypeParameter) { self.unused.remove(param); } } diff --git a/typegen/src/typegen/type_path.rs b/typegen/src/typegen/type_path.rs index 5778596..eb720ca 100644 --- a/typegen/src/typegen/type_path.rs +++ b/typegen/src/typegen/type_path.rs @@ -14,9 +14,12 @@ use syn::parse_quote; #[derive(Clone, Debug)] pub struct TypePath(TypePathInner); +/// The type path to either a concrete type or a generic type parameter #[derive(Clone, Debug)] pub enum TypePathInner { + /// Generic type parameter Parameter(TypeParameter), + /// Concrete type Type(TypePathType), } @@ -55,14 +58,17 @@ impl TypePath { } } + /// Returns true, if this is a concrete compact type. pub fn is_compact(&self) -> bool { matches!(&self.0, TypePathInner::Type(ty) if ty.is_compact()) } + /// Returns true, if this is a concrete string type. pub fn is_string(&self) -> bool { matches!(&self.0, TypePathInner::Type(ty) if ty.is_string()) } + /// Returns true, if this is an unsigned integer (anywhere between u8 and u128). pub fn is_uint_up_to_u128(&self) -> bool { matches!( &self.0, @@ -116,38 +122,60 @@ impl TypePath { } } +/// The path of a Concrete type #[derive(Clone, Debug)] pub enum TypePathType { + /// A user-defined type (non-builtin struct or enum) Path { + /// Type path path: syn::Path, + /// Generic type parameters params: Vec, }, + /// A variable sized sequences of elements of some type. See [`std::vec::Vec`]. Vec { + /// Type of elements in the vector. of: Box, }, + /// A fixed length array that contains `len` elements of some type. Array { + /// number of elements in the array len: usize, + /// Type path of: Box, }, + /// A Tuple type Tuple { + /// Types that make up this tuple elements: Vec, }, + /// Primitive type Primitive { + /// A primitive Rust type. def: TypeDefPrimitive, }, + /// A compact encoded type Compact { + /// The type that is being compact encoded inner: Box, + /// is this type used as a field of a struct or enum right now? is_field: bool, + /// path to the `Compact` type (usually [`parity_scale_codec::Compact`]) compact_type_path: syn::Path, }, + /// A bit vector BitVec { + /// Order type bit_order_type: Box, + /// Store type bit_store_type: Box, + /// A user defined wrapper type around scale_bits::Bits. Should be generic over the `order` and `store` types. decoded_bits_type_path: syn::Path, }, } impl TypePathType { + /// Constructs a [`TypePathType`] from some context information. pub fn from_type_def_path( path: &Path, root_mod_ident: Ident, @@ -231,10 +259,12 @@ impl TypePathType { } } + /// Returns true, if this is a concrete compact type. pub fn is_compact(&self) -> bool { matches!(self, TypePathType::Compact { .. }) } + /// Returns true, if this is a string type. pub fn is_string(&self) -> bool { matches!( self, @@ -310,6 +340,7 @@ impl TypePathType { } } +/// A generic type parameter #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct TypeParameter { pub(super) concrete_type_id: u32, diff --git a/typegen/src/utils.rs b/typegen/src/utils.rs index 185ecc5..58c477b 100644 --- a/typegen/src/utils.rs +++ b/typegen/src/utils.rs @@ -4,12 +4,14 @@ use std::collections::HashMap; use crate::TypegenError; +/// Converts a [`scale_info::Type`] into a [`syn::TypePath`]. pub fn syn_type_path(ty: &Type) -> Result { let joined_path = ty.path.segments.join("::"); let ty_path: syn::TypePath = syn::parse_str(&joined_path)?; Ok(ty_path) } +/// Deduplicates type paths in the provided Registry. pub fn ensure_unique_type_paths(types: &mut PortableRegistry) { let mut types_with_same_type_path = HashMap::<&[String], SmallVec<[u32; 2]>>::new(); From 8ae1090b761d69b3f8764f75716cf16e3a004093 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 28 Nov 2023 16:35:10 +0100 Subject: [PATCH 08/27] fix bugs in generic recursion of container types --- Cargo.lock | 1 + description/Cargo.toml | 1 + description/src/description.rs | 3 +- description/src/formatting.rs | 2 +- description/src/lib.rs | 162 ++++++++++++++++++++++----------- description/src/transformer.rs | 63 +++++++++++-- 6 files changed, 169 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d03435..4de20e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -422,6 +422,7 @@ version = "0.0.1" dependencies = [ "anyhow", "indoc", + "parity-scale-codec", "peekmore", "pretty_assertions", "proc-macro2", diff --git a/description/Cargo.toml b/description/Cargo.toml index e061f58..f720158 100644 --- a/description/Cargo.toml +++ b/description/Cargo.toml @@ -29,3 +29,4 @@ rand = { workspace = true, optional = true } [dev-dependencies] indoc = "2" pretty_assertions = { workspace = true } +parity-scale-codec = { workspace = true } diff --git a/description/src/description.rs b/description/src/description.rs index 02e8d4d..5d64245 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -19,6 +19,8 @@ pub fn type_description( ty: &Type, _transformer: &Transformer, ) -> anyhow::Result { + dbg!(_type_id); + dbg!(ty); if let Some(type_name) = ty.path.ident() { return Ok(type_name); } @@ -35,7 +37,6 @@ pub fn type_description( if format { description = format_type_description(&description); } - Ok(description) } diff --git a/description/src/formatting.rs b/description/src/formatting.rs index 43080aa..acab723 100644 --- a/description/src/formatting.rs +++ b/description/src/formatting.rs @@ -13,7 +13,7 @@ pub fn format_type_description(input: &str) -> String { Small, } - const SMALL_SCOPE_MAX_TOKENS: usize = 30; + const SMALL_SCOPE_MAX_TOKENS: usize = 32; /// should be called on the chars iterator shortly after open_token was encountered. fn scope_is_small( chars: &mut PeekMoreIterator, diff --git a/description/src/lib.rs b/description/src/lib.rs index 5a1252e..47b538d 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -21,6 +21,10 @@ #![deny(unused_crate_dependencies)] #![deny(missing_docs)] +// Because of `unused_crate_dependencies` flag: +#[cfg(test)] +use parity_scale_codec as _; + mod description; mod formatting; mod transformer; @@ -77,61 +81,80 @@ mod tests { }"} ); } - // todo!("This test with the generics does not fly yet.") - // #[test] - // fn enums() { - // #[allow(unused)] - // #[derive(TypeInfo)] - // enum Shape { - // Inivisible, - // Circle(u64), - // Rect(Compact, Compact), - // Polygon { - // corners: u8, - // radius: u64, - // }, - // MultiShape { - // shapes: Vec>, - // t: T, - // operation: Operation, - // }, - // } - - // #[allow(unused)] - // #[derive(TypeInfo)] - // enum Operation { - // Add, - // Intersect, - // Difference, - // } - - // let (type_id, type_registry) = make_type::>(); - - // assert_eq!( - // type_description(type_id, &type_registry).unwrap(), - // indoc! { - // "enum Shape { - // Inivisible, - // Circle(u64), - // Rect( - // Compact, - // Compact - // ), - // Polygon { - // corners: u8, - // radius: u64 - // }, - // MultiShape { - // shapes: Vec, - // operation: enum Operation { - // Add, - // Intersect, - // Difference - // } - // } - // }"} - // ); - // } + + #[test] + fn enums() { + use parity_scale_codec::Compact; + + #[allow(unused)] + #[derive(TypeInfo)] + enum Shape { + Inivisible, + Circle(u64), + Rect(Compact, Compact), + Polygon { + corners: u8, + radius: u64, + }, + MultiShape { + shapes: Vec>, + t: T, + operation: Operation, + }, + } + + #[allow(unused)] + #[derive(TypeInfo)] + enum Operation { + Add, + Intersect, + Difference, + } + + let (type_id, type_registry) = make_type::>(); + dbg!(&type_registry); + assert_eq!( + type_description(type_id, &type_registry, true).unwrap(), + indoc! { + "enum Shape { + Inivisible, + Circle(u64), + Rect(Compact, Compact), + Polygon { + corners: u8, + radius: u64 + }, + MultiShape { + shapes: Vec< + enum Shape { + Inivisible, + Circle(u64), + Rect(Compact, Compact), + Polygon { + corners: u8, + radius: u64 + }, + MultiShape { + shapes: Vec, + t: u64, + operation: enum Operation { + Add, + Intersect, + Difference + } + } + } + >, + t: u8, + operation: enum Operation { + Add, + Intersect, + Difference + } + } + }"} + ); + } #[test] fn recursive_structs() { @@ -165,4 +188,33 @@ mod tests { }"} ); } + + #[test] + fn recursive_containers() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Container { + shapes: Vec, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct S { + u: u8, + others: Vec, + } + + let (type_id, type_registry) = make_type::(); + + assert_eq!( + type_description(type_id, &type_registry, true).unwrap(), + indoc! { + "Container { + shapes: Vec + }> + }"} + ); + } } diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 7bddfbe..1abf7c2 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -1,6 +1,6 @@ use std::{cell::RefCell, collections::HashMap}; -use scale_info::{form::PortableForm, PortableRegistry, Type}; +use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef}; /// The transformer provides an abstraction for traversing a type registry /// given a type_id as a starting point, and **transforming** it into a tree-like structure. @@ -12,7 +12,13 @@ pub struct Transformer<'a, R, S = ()> { cache: RefCell>>, /// state can be used for example for an Rng pub state: S, + /// The `policy` defines, how to transform a type. If the type is unrepresentable, return an Err. policy: fn(u32, &Type, &Self) -> anyhow::Result, + /// The `recurse_policy` defines, how to handle cases, + /// where a type has been visited before, and is visited again BEFORE a representation of this type could be computed. + /// If it returns Some(..) we avoid infinite recursion by returning a concrete value. + /// If it returns None, nothing is done in the case of detected recursion and the type falls through. + /// It is transformed with the `policy` in this case. This can be dangerous, but may be necessary for some container types. recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, registry: &'a PortableRegistry, } @@ -27,15 +33,14 @@ enum Cached { impl<'a, R, S> Transformer<'a, R, S> where - R: Clone, + R: Clone + std::fmt::Debug, { pub fn state(&self) -> &S { &self.state } - pub fn new( policy: fn(u32, &Type, &Self) -> anyhow::Result, - resurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, + recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, state: S, registry: &'a PortableRegistry, ) -> Self { @@ -43,7 +48,7 @@ where cache: RefCell::new(HashMap::new()), state, policy, - recurse_policy: resurse_policy, + recurse_policy, registry, } } @@ -56,7 +61,10 @@ where match self.cache.borrow().get(&type_id) { Some(Cached::Recursive) => { - return (self.recurse_policy)(type_id, ty, self); + dbg!(self.cache.borrow()); + if !recursion_should_fall_through(&ty.type_def) { + return (self.recurse_policy)(type_id, ty, self); + } } Some(Cached::Computed(r)) => return Ok(r.clone()), _ => {} @@ -70,3 +78,46 @@ where Ok(r) } } + +/// +/// ## Background: +/// +/// There is a problem in generating recursive type descriptions: +/// Suppose we have the following setup: +/// ```rust +/// struct A { +/// bees: Vec +/// } +/// +/// struct B { +/// id: u8, +/// others: Vec +/// } +/// ``` +/// This could be described as: +/// ```txt,no_run +/// struct A { +/// bees: Vec +/// }> +/// } +/// ``` +/// But the recursive resolving would get stuck in the middle, reporting recursion. +/// This is because Vec needs to be mapped to different strings, so the simple cache lookup is not viable. +/// The solution to this is, to just let some container types like Vec do recursion while others can't. +/// +/// The safety of the following logic relies on the assumption that ultimately everything resolves down to a primitive or a struct/enum that is in the cache. +/// It basically just returns true o generic wrapper types. +fn recursion_should_fall_through(def: &TypeDef) -> bool { + match def { + scale_info::TypeDef::Sequence(_) => true, + scale_info::TypeDef::Array(_) => true, + scale_info::TypeDef::Tuple(_) => true, + scale_info::TypeDef::Compact(_) => true, + scale_info::TypeDef::Composite(_) => false, + scale_info::TypeDef::Primitive(_) => false, + scale_info::TypeDef::Variant(_) => false, + scale_info::TypeDef::BitSequence(_) => false, + } +} From 83bda0927f4cdcf7225d1bc8c5a8d8b02b08ab84 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 28 Nov 2023 16:36:25 +0100 Subject: [PATCH 09/27] clippy fix --- typegen/examples/polkadot.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/typegen/examples/polkadot.rs b/typegen/examples/polkadot.rs index a483852..93609a5 100644 --- a/typegen/examples/polkadot.rs +++ b/typegen/examples/polkadot.rs @@ -1,6 +1,5 @@ use std::marker::PhantomData; -use frame_metadata; use parity_scale_codec::Decode; use proc_macro2::TokenStream; use quote::ToTokens; From 66302dc8e74ac716640853a0f8d4d0dc4255e941 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 28 Nov 2023 17:09:52 +0100 Subject: [PATCH 10/27] fix dependencies --- description/Cargo.toml | 6 +++--- description/src/transformer.rs | 3 --- description/src/type_example/rust_value.rs | 4 ++-- description/src/type_example/scale_value.rs | 6 +++--- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/description/Cargo.toml b/description/Cargo.toml index f720158..bfbee7a 100644 --- a/description/Cargo.toml +++ b/description/Cargo.toml @@ -10,21 +10,21 @@ edition = "2021" [features] default = ["type-example"] -type-example = ["dep:scale-value", "dep:proc-macro2", "dep:rand_chacha", "dep:rand"] +type-example = ["scale-value", "proc-macro2", "rand_chacha", "rand", "quote", "scale-typegen"] [dependencies] anyhow = { workspace = true } peekmore = { workspace = true } smallvec = { workspace = true } scale-info = { workspace = true } -scale-typegen = { workspace = true } -quote = { workspace = true } #dependencies for "type-example" feature: scale-value = { workspace = true, optional = true } proc-macro2 = { workspace = true, optional = true } rand_chacha = { workspace = true, optional = true } rand = { workspace = true, optional = true } +scale-typegen = { workspace = true, optional = true } +quote = { workspace = true, optional = true } [dev-dependencies] indoc = "2" diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 1abf7c2..1d56a8a 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -35,9 +35,6 @@ impl<'a, R, S> Transformer<'a, R, S> where R: Clone + std::fmt::Debug, { - pub fn state(&self) -> &S { - &self.state - } pub fn new( policy: fn(u32, &Type, &Self) -> anyhow::Result, recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 71bb3e9..42071cd 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -29,14 +29,14 @@ impl<'a> CodeTransformer<'a> { /// and, if the correct ty_path_middleware is set, prunes the resulting type path. fn resolve_type_path_omit_generics(&self, type_id: u32) -> anyhow::Result { let mut type_path = self - .state() + .state .type_generator .resolve_type_path(type_id) .map_err(|e| anyhow!("{e}"))? .to_token_stream(); // apply ty path middleware pruning/replacing paths: - if let Some(ty_path_middleware) = &self.state().ty_path_middleware { + if let Some(ty_path_middleware) = &self.state.ty_path_middleware { type_path = ty_path_middleware(type_path); }; diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index 54e7ff5..de9c124 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -50,7 +50,7 @@ fn ty_example( TypeDef::Variant(variant) => { let random_variant = variant .variants - .choose(&mut *transformer.state().borrow_mut()) + .choose(&mut *transformer.state.borrow_mut()) .ok_or_else(|| anyhow!("Variant type should have at least one variant"))?; let fields = random_variant .fields @@ -87,12 +87,12 @@ fn ty_example( } TypeDef::Primitive(primitive) => Ok(primitive_type_def_example( primitive, - &mut *transformer.state().borrow_mut(), + &mut *transformer.state.borrow_mut(), )), TypeDef::Compact(compact) => transformer.resolve(compact.type_param.id), TypeDef::BitSequence(_) => { let mut bit_sequence = BitSequence::new(); - let rng = &mut *transformer.state().borrow_mut(); + let rng = &mut *transformer.state.borrow_mut(); for _ in 0..rng.gen_range(3..7) { bit_sequence.push(rng.gen()); } From f7fff3b133732e8a7c0fbd82385dc5452b3a0813 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 28 Nov 2023 17:12:53 +0100 Subject: [PATCH 11/27] remove the generated rs code --- .gitignore | 2 + artifacts/generated_polkadot.rs | 8856 ------------------------------- 2 files changed, 2 insertions(+), 8856 deletions(-) delete mode 100644 artifacts/generated_polkadot.rs diff --git a/.gitignore b/.gitignore index ebcbf42..5107373 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ .idea Cargo.lock + +/artifacts/*.rs \ No newline at end of file diff --git a/artifacts/generated_polkadot.rs b/artifacts/generated_polkadot.rs deleted file mode 100644 index 2961e39..0000000 --- a/artifacts/generated_polkadot.rs +++ /dev/null @@ -1,8856 +0,0 @@ -pub mod my_types { - use super::my_types; - pub mod bitvec { - use super::my_types; - pub mod order { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Lsb0; - } - } - pub mod bounded_collections { - use super::my_types; - pub mod bounded_btree_map { - use super::my_types; - #[derive(Clone, Debug)] - pub struct BoundedBTreeMap<_0, _1>(pub ::std::collections::BTreeMap<_0, _1>); - } - pub mod bounded_vec { - use super::my_types; - #[derive(Clone, Debug)] - pub struct BoundedVec<_0>(pub ::std::vec::Vec<_0>); - } - pub mod weak_bounded_vec { - use super::my_types; - #[derive(Clone, Debug)] - pub struct WeakBoundedVec<_0>(pub ::std::vec::Vec<_0>); - } - } - pub mod finality_grandpa { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Equivocation<_0, _1, _2> { - pub round_number: ::core::primitive::u64, - pub identity: _0, - pub first: (_1, _2), - pub second: (_1, _2), - } - #[derive(Clone, Debug)] - pub struct Precommit<_0, _1> { - pub target_hash: _0, - pub target_number: _1, - } - #[derive(Clone, Debug)] - pub struct Prevote<_0, _1> { - pub target_hash: _0, - pub target_number: _1, - } - } - pub mod frame_support { - use super::my_types; - pub mod dispatch { - use super::my_types; - #[derive(Clone, Debug)] - pub enum DispatchClass { - Normal, - Operational, - Mandatory, - } - #[derive(Clone, Debug)] - pub struct DispatchInfo { - pub weight: my_types::sp_weights::weight_v2::Weight, - pub class: my_types::frame_support::dispatch::DispatchClass, - pub pays_fee: my_types::frame_support::dispatch::Pays, - } - #[derive(Clone, Debug)] - pub enum Pays { - Yes, - No, - } - #[derive(Clone, Debug)] - pub struct PerDispatchClass<_0> { - pub normal: _0, - pub operational: _0, - pub mandatory: _0, - } - #[derive(Clone, Debug)] - pub struct PostDispatchInfo { - pub actual_weight: ::core::option::Option< - my_types::sp_weights::weight_v2::Weight, - >, - pub pays_fee: my_types::frame_support::dispatch::Pays, - } - #[derive(Clone, Debug)] - pub enum RawOrigin<_0> { - Root, - Signed(_0), - None, - } - } - pub mod traits { - use super::my_types; - pub mod messages { - use super::my_types; - #[derive(Clone, Debug)] - pub enum ProcessMessageError { - BadFormat, - Corrupt, - Unsupported, - Overweight(my_types::sp_weights::weight_v2::Weight), - Yield, - } - } - pub mod preimages { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Bounded<_0> { - Legacy { hash: my_types::primitive_types::H256 }, - Inline( - my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - ), - Lookup { - hash: my_types::primitive_types::H256, - len: ::core::primitive::u32, - }, - __Ignore(::core::marker::PhantomData<_0>), - } - } - pub mod schedule { - use super::my_types; - #[derive(Clone, Debug)] - pub enum DispatchTime<_0> { - At(_0), - After(_0), - } - } - pub mod tokens { - use super::my_types; - pub mod misc { - use super::my_types; - #[derive(Clone, Debug)] - pub enum BalanceStatus { - Free, - Reserved, - } - } - } - } - #[derive(Clone, Debug)] - pub struct PalletId(pub [::core::primitive::u8; 8usize]); - } - pub mod frame_system { - use super::my_types; - pub mod extensions { - use super::my_types; - pub mod check_genesis { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckGenesis; - } - pub mod check_mortality { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckMortality(pub my_types::sp_runtime::generic::era::Era); - } - pub mod check_non_zero_sender { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckNonZeroSender; - } - pub mod check_nonce { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckNonce(pub ::core::primitive::u32); - } - pub mod check_spec_version { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckSpecVersion; - } - pub mod check_tx_version { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckTxVersion; - } - pub mod check_weight { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckWeight; - } - } - pub mod limits { - use super::my_types; - #[derive(Clone, Debug)] - pub struct BlockLength { - pub max: my_types::frame_support::dispatch::PerDispatchClass< - ::core::primitive::u32, - >, - } - #[derive(Clone, Debug)] - pub struct BlockWeights { - pub base_block: my_types::sp_weights::weight_v2::Weight, - pub max_block: my_types::sp_weights::weight_v2::Weight, - pub per_class: my_types::frame_support::dispatch::PerDispatchClass< - my_types::frame_system::limits::WeightsPerClass, - >, - } - #[derive(Clone, Debug)] - pub struct WeightsPerClass { - pub base_extrinsic: my_types::sp_weights::weight_v2::Weight, - pub max_extrinsic: ::core::option::Option< - my_types::sp_weights::weight_v2::Weight, - >, - pub max_total: ::core::option::Option< - my_types::sp_weights::weight_v2::Weight, - >, - pub reserved: ::core::option::Option< - my_types::sp_weights::weight_v2::Weight, - >, - } - } - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::remark`]. - remark { remark: ::std::vec::Vec<::core::primitive::u8> }, - ///See [`Pallet::set_heap_pages`]. - set_heap_pages { pages: ::core::primitive::u64 }, - ///See [`Pallet::set_code`]. - set_code { code: ::std::vec::Vec<::core::primitive::u8> }, - ///See [`Pallet::set_code_without_checks`]. - set_code_without_checks { code: ::std::vec::Vec<::core::primitive::u8> }, - ///See [`Pallet::set_storage`]. - set_storage { - items: ::std::vec::Vec< - ( - ::std::vec::Vec<::core::primitive::u8>, - ::std::vec::Vec<::core::primitive::u8>, - ), - >, - }, - ///See [`Pallet::kill_storage`]. - kill_storage { - keys: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, - }, - ///See [`Pallet::kill_prefix`]. - kill_prefix { - prefix: ::std::vec::Vec<::core::primitive::u8>, - subkeys: ::core::primitive::u32, - }, - ///See [`Pallet::remark_with_event`]. - remark_with_event { remark: ::std::vec::Vec<::core::primitive::u8> }, - } - #[derive(Clone, Debug)] - ///Error for the System pallet - pub enum Error { - ///The name of specification does not match between the current runtime - ///and the new runtime. - InvalidSpecName, - ///The specification version is not allowed to decrease between the current runtime - ///and the new runtime. - SpecVersionNeedsToIncrease, - ///Failed to extract the runtime version from the new runtime. - /// - ///Either calling `Core_version` or decoding `RuntimeVersion` failed. - FailedToExtractRuntimeVersion, - ///Suicide called when the account has non-default composite data. - NonDefaultComposite, - ///There is a non-zero reference count preventing the account from being purged. - NonZeroRefCount, - ///The origin filter prevent the call to be dispatched. - CallFiltered, - } - #[derive(Clone, Debug)] - ///Event for the System pallet. - pub enum Event { - ///An extrinsic completed successfully. - ExtrinsicSuccess { - dispatch_info: my_types::frame_support::dispatch::DispatchInfo, - }, - ///An extrinsic failed. - ExtrinsicFailed { - dispatch_error: my_types::sp_runtime::DispatchError, - dispatch_info: my_types::frame_support::dispatch::DispatchInfo, - }, - ///`:code` was updated. - CodeUpdated, - ///A new account was created. - NewAccount { account: my_types::sp_core::crypto::AccountId32 }, - ///An account was reaped. - KilledAccount { account: my_types::sp_core::crypto::AccountId32 }, - ///On on-chain remark happened. - Remarked { - sender: my_types::sp_core::crypto::AccountId32, - hash: my_types::primitive_types::H256, - }, - } - } - #[derive(Clone, Debug)] - pub struct AccountInfo<_0, _1> { - pub nonce: _0, - pub consumers: ::core::primitive::u32, - pub providers: ::core::primitive::u32, - pub sufficients: ::core::primitive::u32, - pub data: _1, - } - #[derive(Clone, Debug)] - pub struct EventRecord<_0, _1> { - pub phase: my_types::frame_system::Phase, - pub event: _0, - pub topics: ::std::vec::Vec<_1>, - } - #[derive(Clone, Debug)] - pub struct LastRuntimeUpgradeInfo { - pub spec_version: ::core::primitive::u32, - pub spec_name: ::std::string::String, - } - #[derive(Clone, Debug)] - pub enum Phase { - ApplyExtrinsic(::core::primitive::u32), - Finalization, - Initialization, - } - } - pub mod pallet_babe { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::report_equivocation`]. - report_equivocation { - equivocation_proof: ::std::boxed::Box< - my_types::sp_consensus_slots::EquivocationProof< - my_types::sp_runtime::generic::header::Header< - ::core::primitive::u32, - my_types::sp_runtime::traits::BlakeTwo256, - >, - my_types::sp_consensus_babe::app::Public, - >, - >, - key_owner_proof: my_types::sp_session::MembershipProof, - }, - ///See [`Pallet::report_equivocation_unsigned`]. - report_equivocation_unsigned { - equivocation_proof: ::std::boxed::Box< - my_types::sp_consensus_slots::EquivocationProof< - my_types::sp_runtime::generic::header::Header< - ::core::primitive::u32, - my_types::sp_runtime::traits::BlakeTwo256, - >, - my_types::sp_consensus_babe::app::Public, - >, - >, - key_owner_proof: my_types::sp_session::MembershipProof, - }, - ///See [`Pallet::plan_config_change`]. - plan_config_change { - config: my_types::sp_consensus_babe::digests::NextConfigDescriptor, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///An equivocation proof provided as part of an equivocation report is invalid. - InvalidEquivocationProof, - ///A key ownership proof provided as part of an equivocation report is invalid. - InvalidKeyOwnershipProof, - ///A given equivocation report is valid but already previously reported. - DuplicateOffenceReport, - ///Submitted configuration is invalid. - InvalidConfiguration, - } - } - } - pub mod pallet_bags_list { - use super::my_types; - pub mod list { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Bag { - pub head: ::core::option::Option, - pub tail: ::core::option::Option, - } - #[derive(Clone, Debug)] - pub enum ListError { - Duplicate, - NotHeavier, - NotInSameBag, - NodeNotFound, - } - #[derive(Clone, Debug)] - pub struct Node { - pub id: my_types::sp_core::crypto::AccountId32, - pub prev: ::core::option::Option, - pub next: ::core::option::Option, - pub bag_upper: ::core::primitive::u64, - pub score: ::core::primitive::u64, - } - } - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::rebag`]. - rebag { - dislocated: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::put_in_front_of`]. - put_in_front_of { - lighter: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///A error in the list interface implementation. - List(my_types::pallet_bags_list::list::ListError), - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Moved an account from one bag to another. - Rebagged { - who: my_types::sp_core::crypto::AccountId32, - from: ::core::primitive::u64, - to: ::core::primitive::u64, - }, - ///Updated the score of some account to the given amount. - ScoreUpdated { - who: my_types::sp_core::crypto::AccountId32, - new_score: ::core::primitive::u64, - }, - } - } - } - pub mod pallet_balances { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::transfer_allow_death`]. - transfer_allow_death { - dest: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - value: ::core::primitive::u128, - }, - ///See [`Pallet::set_balance_deprecated`]. - set_balance_deprecated { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - new_free: ::core::primitive::u128, - old_reserved: ::core::primitive::u128, - }, - ///See [`Pallet::force_transfer`]. - force_transfer { - source: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - dest: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - value: ::core::primitive::u128, - }, - ///See [`Pallet::transfer_keep_alive`]. - transfer_keep_alive { - dest: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - value: ::core::primitive::u128, - }, - ///See [`Pallet::transfer_all`]. - transfer_all { - dest: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - keep_alive: ::core::primitive::bool, - }, - ///See [`Pallet::force_unreserve`]. - force_unreserve { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - amount: ::core::primitive::u128, - }, - ///See [`Pallet::upgrade_accounts`]. - upgrade_accounts { - who: ::std::vec::Vec, - }, - ///See [`Pallet::transfer`]. - transfer { - dest: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - value: ::core::primitive::u128, - }, - ///See [`Pallet::force_set_balance`]. - force_set_balance { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - new_free: ::core::primitive::u128, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Vesting balance too high to send value. - VestingBalance, - ///Account liquidity restrictions prevent withdrawal. - LiquidityRestrictions, - ///Balance too low to send value. - InsufficientBalance, - ///Value too low to create account due to existential deposit. - ExistentialDeposit, - ///Transfer/payment would kill account. - Expendability, - ///A vesting schedule already exists for this account. - ExistingVestingSchedule, - ///Beneficiary account must pre-exist. - DeadAccount, - ///Number of named reserves exceed `MaxReserves`. - TooManyReserves, - ///Number of holds exceed `MaxHolds`. - TooManyHolds, - ///Number of freezes exceed `MaxFreezes`. - TooManyFreezes, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///An account was created with some free balance. - Endowed { - account: my_types::sp_core::crypto::AccountId32, - free_balance: ::core::primitive::u128, - }, - ///An account was removed whose balance was non-zero but below ExistentialDeposit, - ///resulting in an outright loss. - DustLost { - account: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Transfer succeeded. - Transfer { - from: my_types::sp_core::crypto::AccountId32, - to: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A balance was set by root. - BalanceSet { - who: my_types::sp_core::crypto::AccountId32, - free: ::core::primitive::u128, - }, - ///Some balance was reserved (moved from free to reserved). - Reserved { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some balance was unreserved (moved from reserved to free). - Unreserved { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some balance was moved from the reserve of the first account to the second account. - ///Final argument indicates the destination balance type. - ReserveRepatriated { - from: my_types::sp_core::crypto::AccountId32, - to: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - destination_status: my_types::frame_support::traits::tokens::misc::BalanceStatus, - }, - ///Some amount was deposited (e.g. for transaction fees). - Deposit { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was withdrawn from the account (e.g. for transaction fees). - Withdraw { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was removed from the account (e.g. for misbehavior). - Slashed { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was minted into an account. - Minted { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was burned from an account. - Burned { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was suspended from an account (it can be restored later). - Suspended { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some amount was restored into an account. - Restored { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///An account was upgraded. - Upgraded { who: my_types::sp_core::crypto::AccountId32 }, - ///Total issuance was increased by `amount`, creating a credit to be balanced. - Issued { amount: ::core::primitive::u128 }, - ///Total issuance was decreased by `amount`, creating a debt to be balanced. - Rescinded { amount: ::core::primitive::u128 }, - ///Some balance was locked. - Locked { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some balance was unlocked. - Unlocked { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some balance was frozen. - Frozen { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Some balance was thawed. - Thawed { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct AccountData<_0> { - pub free: _0, - pub reserved: _0, - pub frozen: _0, - pub flags: my_types::pallet_balances::types::ExtraFlags, - } - #[derive(Clone, Debug)] - pub struct BalanceLock<_0> { - pub id: [::core::primitive::u8; 8usize], - pub amount: _0, - pub reasons: my_types::pallet_balances::types::Reasons, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct ExtraFlags(pub ::core::primitive::u128); - #[derive(Clone, Debug)] - pub struct IdAmount<_0, _1> { - pub id: _0, - pub amount: _1, - } - #[derive(Clone, Debug)] - pub enum Reasons { - Fee, - Misc, - All, - } - #[derive(Clone, Debug)] - pub struct ReserveData<_0, _1> { - pub id: _0, - pub amount: _1, - } - } - } - pub mod pallet_bounties { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::propose_bounty`]. - propose_bounty { - value: ::core::primitive::u128, - description: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::approve_bounty`]. - approve_bounty { bounty_id: ::core::primitive::u32 }, - ///See [`Pallet::propose_curator`]. - propose_curator { - bounty_id: ::core::primitive::u32, - curator: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - fee: ::core::primitive::u128, - }, - ///See [`Pallet::unassign_curator`]. - unassign_curator { bounty_id: ::core::primitive::u32 }, - ///See [`Pallet::accept_curator`]. - accept_curator { bounty_id: ::core::primitive::u32 }, - ///See [`Pallet::award_bounty`]. - award_bounty { - bounty_id: ::core::primitive::u32, - beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::claim_bounty`]. - claim_bounty { bounty_id: ::core::primitive::u32 }, - ///See [`Pallet::close_bounty`]. - close_bounty { bounty_id: ::core::primitive::u32 }, - ///See [`Pallet::extend_bounty_expiry`]. - extend_bounty_expiry { - bounty_id: ::core::primitive::u32, - remark: ::std::vec::Vec<::core::primitive::u8>, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Proposer's balance is too low. - InsufficientProposersBalance, - ///No proposal or bounty at that index. - InvalidIndex, - ///The reason given is just too big. - ReasonTooBig, - ///The bounty status is unexpected. - UnexpectedStatus, - ///Require bounty curator. - RequireCurator, - ///Invalid bounty value. - InvalidValue, - ///Invalid bounty fee. - InvalidFee, - ///A bounty payout is pending. - ///To cancel the bounty, you must unassign and slash the curator. - PendingPayout, - ///The bounties cannot be claimed/closed because it's still in the countdown period. - Premature, - ///The bounty cannot be closed because it has active child bounties. - HasActiveChildBounty, - ///Too many approvals are already queued. - TooManyQueued, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///New bounty proposal. - BountyProposed { index: ::core::primitive::u32 }, - ///A bounty proposal was rejected; funds were slashed. - BountyRejected { - index: ::core::primitive::u32, - bond: ::core::primitive::u128, - }, - ///A bounty proposal is funded and became active. - BountyBecameActive { index: ::core::primitive::u32 }, - ///A bounty is awarded to a beneficiary. - BountyAwarded { - index: ::core::primitive::u32, - beneficiary: my_types::sp_core::crypto::AccountId32, - }, - ///A bounty is claimed by beneficiary. - BountyClaimed { - index: ::core::primitive::u32, - payout: ::core::primitive::u128, - beneficiary: my_types::sp_core::crypto::AccountId32, - }, - ///A bounty is cancelled. - BountyCanceled { index: ::core::primitive::u32 }, - ///A bounty expiry is extended. - BountyExtended { index: ::core::primitive::u32 }, - } - } - #[derive(Clone, Debug)] - pub struct Bounty<_0, _1, _2> { - pub proposer: _0, - pub value: _1, - pub fee: _1, - pub curator_deposit: _1, - pub bond: _1, - pub status: my_types::pallet_bounties::BountyStatus<_0, _2>, - } - #[derive(Clone, Debug)] - pub enum BountyStatus<_0, _1> { - Proposed, - Approved, - Funded, - CuratorProposed { curator: _0 }, - Active { curator: _0, update_due: _1 }, - PendingPayout { curator: _0, beneficiary: _0, unlock_at: _1 }, - } - } - pub mod pallet_child_bounties { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::add_child_bounty`]. - add_child_bounty { - parent_bounty_id: ::core::primitive::u32, - value: ::core::primitive::u128, - description: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::propose_curator`]. - propose_curator { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - curator: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - fee: ::core::primitive::u128, - }, - ///See [`Pallet::accept_curator`]. - accept_curator { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - }, - ///See [`Pallet::unassign_curator`]. - unassign_curator { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - }, - ///See [`Pallet::award_child_bounty`]. - award_child_bounty { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::claim_child_bounty`]. - claim_child_bounty { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - }, - ///See [`Pallet::close_child_bounty`]. - close_child_bounty { - parent_bounty_id: ::core::primitive::u32, - child_bounty_id: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The parent bounty is not in active state. - ParentBountyNotActive, - ///The bounty balance is not enough to add new child-bounty. - InsufficientBountyBalance, - ///Number of child bounties exceeds limit `MaxActiveChildBountyCount`. - TooManyChildBounties, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A child-bounty is added. - Added { - index: ::core::primitive::u32, - child_index: ::core::primitive::u32, - }, - ///A child-bounty is awarded to a beneficiary. - Awarded { - index: ::core::primitive::u32, - child_index: ::core::primitive::u32, - beneficiary: my_types::sp_core::crypto::AccountId32, - }, - ///A child-bounty is claimed by beneficiary. - Claimed { - index: ::core::primitive::u32, - child_index: ::core::primitive::u32, - payout: ::core::primitive::u128, - beneficiary: my_types::sp_core::crypto::AccountId32, - }, - ///A child-bounty is cancelled. - Canceled { - index: ::core::primitive::u32, - child_index: ::core::primitive::u32, - }, - } - } - #[derive(Clone, Debug)] - pub struct ChildBounty<_0, _1, _2> { - pub parent_bounty: ::core::primitive::u32, - pub value: _1, - pub fee: _1, - pub curator_deposit: _1, - pub status: my_types::pallet_child_bounties::ChildBountyStatus<_0, _2>, - } - #[derive(Clone, Debug)] - pub enum ChildBountyStatus<_0, _1> { - Added, - CuratorProposed { curator: _0 }, - Active { curator: _0 }, - PendingPayout { curator: _0, beneficiary: _0, unlock_at: _1 }, - } - } - pub mod pallet_collective { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::set_members`]. - set_members { - new_members: ::std::vec::Vec, - prime: ::core::option::Option< - my_types::sp_core::crypto::AccountId32, - >, - old_count: ::core::primitive::u32, - }, - ///See [`Pallet::execute`]. - execute { - proposal: ::std::boxed::Box, - length_bound: ::core::primitive::u32, - }, - ///See [`Pallet::propose`]. - propose { - threshold: ::core::primitive::u32, - proposal: ::std::boxed::Box, - length_bound: ::core::primitive::u32, - }, - ///See [`Pallet::vote`]. - vote { - proposal: my_types::primitive_types::H256, - index: ::core::primitive::u32, - approve: ::core::primitive::bool, - }, - ///See [`Pallet::disapprove_proposal`]. - disapprove_proposal { proposal_hash: my_types::primitive_types::H256 }, - ///See [`Pallet::close`]. - close { - proposal_hash: my_types::primitive_types::H256, - index: ::core::primitive::u32, - proposal_weight_bound: my_types::sp_weights::weight_v2::Weight, - length_bound: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Account is not a member - NotMember, - ///Duplicate proposals not allowed - DuplicateProposal, - ///Proposal must exist - ProposalMissing, - ///Mismatched index - WrongIndex, - ///Duplicate vote ignored - DuplicateVote, - ///Members are already initialized! - AlreadyInitialized, - ///The close call was made too early, before the end of the voting. - TooEarly, - ///There can only be a maximum of `MaxProposals` active proposals. - TooManyProposals, - ///The given weight bound for the proposal was too low. - WrongProposalWeight, - ///The given length bound for the proposal was too low. - WrongProposalLength, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A motion (given hash) has been proposed (by given account) with a threshold (given - ///`MemberCount`). - Proposed { - account: my_types::sp_core::crypto::AccountId32, - proposal_index: ::core::primitive::u32, - proposal_hash: my_types::primitive_types::H256, - threshold: ::core::primitive::u32, - }, - ///A motion (given hash) has been voted on by given account, leaving - ///a tally (yes votes and no votes given respectively as `MemberCount`). - Voted { - account: my_types::sp_core::crypto::AccountId32, - proposal_hash: my_types::primitive_types::H256, - voted: ::core::primitive::bool, - yes: ::core::primitive::u32, - no: ::core::primitive::u32, - }, - ///A motion was approved by the required threshold. - Approved { proposal_hash: my_types::primitive_types::H256 }, - ///A motion was not approved by the required threshold. - Disapproved { proposal_hash: my_types::primitive_types::H256 }, - ///A motion was executed; result will be `Ok` if it returned without error. - Executed { - proposal_hash: my_types::primitive_types::H256, - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///A single member did some action; result will be `Ok` if it returned without error. - MemberExecuted { - proposal_hash: my_types::primitive_types::H256, - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///A proposal was closed because its threshold was reached or after its duration was up. - Closed { - proposal_hash: my_types::primitive_types::H256, - yes: ::core::primitive::u32, - no: ::core::primitive::u32, - }, - } - } - #[derive(Clone, Debug)] - pub enum RawOrigin<_0> { - Members(::core::primitive::u32, ::core::primitive::u32), - Member(_0), - _Phantom, - } - #[derive(Clone, Debug)] - pub struct Votes<_0, _1> { - pub index: ::core::primitive::u32, - pub threshold: ::core::primitive::u32, - pub ayes: ::std::vec::Vec<_0>, - pub nays: ::std::vec::Vec<_0>, - pub end: _1, - } - } - pub mod pallet_conviction_voting { - use super::my_types; - pub mod conviction { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Conviction { - None, - Locked1x, - Locked2x, - Locked3x, - Locked4x, - Locked5x, - Locked6x, - } - } - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::vote`]. - vote { - poll_index: ::core::primitive::u32, - vote: my_types::pallet_conviction_voting::vote::AccountVote< - ::core::primitive::u128, - >, - }, - ///See [`Pallet::delegate`]. - delegate { - class: ::core::primitive::u16, - to: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - conviction: my_types::pallet_conviction_voting::conviction::Conviction, - balance: ::core::primitive::u128, - }, - ///See [`Pallet::undelegate`]. - undelegate { class: ::core::primitive::u16 }, - ///See [`Pallet::unlock`]. - unlock { - class: ::core::primitive::u16, - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::remove_vote`]. - remove_vote { - class: ::core::option::Option<::core::primitive::u16>, - index: ::core::primitive::u32, - }, - ///See [`Pallet::remove_other_vote`]. - remove_other_vote { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - class: ::core::primitive::u16, - index: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Poll is not ongoing. - NotOngoing, - ///The given account did not vote on the poll. - NotVoter, - ///The actor has no permission to conduct the action. - NoPermission, - ///The actor has no permission to conduct the action right now but will do in the future. - NoPermissionYet, - ///The account is already delegating. - AlreadyDelegating, - ///The account currently has votes attached to it and the operation cannot succeed until - ///these are removed, either through `unvote` or `reap_vote`. - AlreadyVoting, - ///Too high a balance was provided that the account cannot afford. - InsufficientFunds, - ///The account is not currently delegating. - NotDelegating, - ///Delegation to oneself makes no sense. - Nonsense, - ///Maximum number of votes reached. - MaxVotesReached, - ///The class must be supplied since it is not easily determinable from the state. - ClassNeeded, - ///The class ID supplied is invalid. - BadClass, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///An account has delegated their vote to another account. \[who, target\] - Delegated( - my_types::sp_core::crypto::AccountId32, - my_types::sp_core::crypto::AccountId32, - ), - ///An \[account\] has cancelled a previous delegation operation. - Undelegated(my_types::sp_core::crypto::AccountId32), - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Delegations<_0> { - pub votes: _0, - pub capital: _0, - } - #[derive(Clone, Debug)] - pub struct Tally<_0> { - pub ayes: _0, - pub nays: _0, - pub support: _0, - } - } - pub mod vote { - use super::my_types; - #[derive(Clone, Debug)] - pub enum AccountVote<_0> { - Standard { - vote: my_types::pallet_conviction_voting::vote::Vote, - balance: _0, - }, - Split { aye: _0, nay: _0 }, - SplitAbstain { aye: _0, nay: _0, abstain: _0 }, - } - #[derive(Clone, Debug)] - pub struct Casting<_0, _1, _2> { - pub votes: my_types::bounded_collections::bounded_vec::BoundedVec< - (_1, my_types::pallet_conviction_voting::vote::AccountVote<_0>), - >, - pub delegations: my_types::pallet_conviction_voting::types::Delegations< - _0, - >, - pub prior: my_types::pallet_conviction_voting::vote::PriorLock<_1, _0>, - pub __ignore: ::core::marker::PhantomData<_2>, - } - #[derive(Clone, Debug)] - pub struct Delegating<_0, _1, _2> { - pub balance: _0, - pub target: _1, - pub conviction: my_types::pallet_conviction_voting::conviction::Conviction, - pub delegations: my_types::pallet_conviction_voting::types::Delegations< - _0, - >, - pub prior: my_types::pallet_conviction_voting::vote::PriorLock<_2, _0>, - } - #[derive(Clone, Debug)] - pub struct PriorLock<_0, _1>(pub _0, pub _1); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Vote(pub ::core::primitive::u8); - #[derive(Clone, Debug)] - pub enum Voting<_0, _1, _2, _3> { - Casting(my_types::pallet_conviction_voting::vote::Casting<_0, _2, _2>), - Delegating( - my_types::pallet_conviction_voting::vote::Delegating<_0, _1, _2>, - ), - __Ignore(::core::marker::PhantomData<_3>), - } - } - } - pub mod pallet_democracy { - use super::my_types; - pub mod conviction { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Conviction { - None, - Locked1x, - Locked2x, - Locked3x, - Locked4x, - Locked5x, - Locked6x, - } - } - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::propose`]. - propose { - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - value: ::core::primitive::u128, - }, - ///See [`Pallet::second`]. - second { proposal: ::core::primitive::u32 }, - ///See [`Pallet::vote`]. - vote { - ref_index: ::core::primitive::u32, - vote: my_types::pallet_democracy::vote::AccountVote< - ::core::primitive::u128, - >, - }, - ///See [`Pallet::emergency_cancel`]. - emergency_cancel { ref_index: ::core::primitive::u32 }, - ///See [`Pallet::external_propose`]. - external_propose { - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - }, - ///See [`Pallet::external_propose_majority`]. - external_propose_majority { - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - }, - ///See [`Pallet::external_propose_default`]. - external_propose_default { - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - }, - ///See [`Pallet::fast_track`]. - fast_track { - proposal_hash: my_types::primitive_types::H256, - voting_period: ::core::primitive::u32, - delay: ::core::primitive::u32, - }, - ///See [`Pallet::veto_external`]. - veto_external { proposal_hash: my_types::primitive_types::H256 }, - ///See [`Pallet::cancel_referendum`]. - cancel_referendum { ref_index: ::core::primitive::u32 }, - ///See [`Pallet::delegate`]. - delegate { - to: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - conviction: my_types::pallet_democracy::conviction::Conviction, - balance: ::core::primitive::u128, - }, - ///See [`Pallet::undelegate`]. - undelegate, - ///See [`Pallet::clear_public_proposals`]. - clear_public_proposals, - ///See [`Pallet::unlock`]. - unlock { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::remove_vote`]. - remove_vote { index: ::core::primitive::u32 }, - ///See [`Pallet::remove_other_vote`]. - remove_other_vote { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - index: ::core::primitive::u32, - }, - ///See [`Pallet::blacklist`]. - blacklist { - proposal_hash: my_types::primitive_types::H256, - maybe_ref_index: ::core::option::Option<::core::primitive::u32>, - }, - ///See [`Pallet::cancel_proposal`]. - cancel_proposal { prop_index: ::core::primitive::u32 }, - ///See [`Pallet::set_metadata`]. - set_metadata { - owner: my_types::pallet_democracy::types::MetadataOwner, - maybe_hash: ::core::option::Option, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Value too low - ValueLow, - ///Proposal does not exist - ProposalMissing, - ///Cannot cancel the same proposal twice - AlreadyCanceled, - ///Proposal already made - DuplicateProposal, - ///Proposal still blacklisted - ProposalBlacklisted, - ///Next external proposal not simple majority - NotSimpleMajority, - ///Invalid hash - InvalidHash, - ///No external proposal - NoProposal, - ///Identity may not veto a proposal twice - AlreadyVetoed, - ///Vote given for invalid referendum - ReferendumInvalid, - ///No proposals waiting - NoneWaiting, - ///The given account did not vote on the referendum. - NotVoter, - ///The actor has no permission to conduct the action. - NoPermission, - ///The account is already delegating. - AlreadyDelegating, - ///Too high a balance was provided that the account cannot afford. - InsufficientFunds, - ///The account is not currently delegating. - NotDelegating, - ///The account currently has votes attached to it and the operation cannot succeed until - ///these are removed, either through `unvote` or `reap_vote`. - VotesExist, - ///The instant referendum origin is currently disallowed. - InstantNotAllowed, - ///Delegation to oneself makes no sense. - Nonsense, - ///Invalid upper bound. - WrongUpperBound, - ///Maximum number of votes reached. - MaxVotesReached, - ///Maximum number of items reached. - TooMany, - ///Voting period too low - VotingPeriodLow, - ///The preimage does not exist. - PreimageNotExist, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A motion has been proposed by a public account. - Proposed { - proposal_index: ::core::primitive::u32, - deposit: ::core::primitive::u128, - }, - ///A public proposal has been tabled for referendum vote. - Tabled { - proposal_index: ::core::primitive::u32, - deposit: ::core::primitive::u128, - }, - ///An external proposal has been tabled. - ExternalTabled, - ///A referendum has begun. - Started { - ref_index: ::core::primitive::u32, - threshold: my_types::pallet_democracy::vote_threshold::VoteThreshold, - }, - ///A proposal has been approved by referendum. - Passed { ref_index: ::core::primitive::u32 }, - ///A proposal has been rejected by referendum. - NotPassed { ref_index: ::core::primitive::u32 }, - ///A referendum has been cancelled. - Cancelled { ref_index: ::core::primitive::u32 }, - ///An account has delegated their vote to another account. - Delegated { - who: my_types::sp_core::crypto::AccountId32, - target: my_types::sp_core::crypto::AccountId32, - }, - ///An account has cancelled a previous delegation operation. - Undelegated { account: my_types::sp_core::crypto::AccountId32 }, - ///An external proposal has been vetoed. - Vetoed { - who: my_types::sp_core::crypto::AccountId32, - proposal_hash: my_types::primitive_types::H256, - until: ::core::primitive::u32, - }, - ///A proposal_hash has been blacklisted permanently. - Blacklisted { proposal_hash: my_types::primitive_types::H256 }, - ///An account has voted in a referendum - Voted { - voter: my_types::sp_core::crypto::AccountId32, - ref_index: ::core::primitive::u32, - vote: my_types::pallet_democracy::vote::AccountVote< - ::core::primitive::u128, - >, - }, - ///An account has secconded a proposal - Seconded { - seconder: my_types::sp_core::crypto::AccountId32, - prop_index: ::core::primitive::u32, - }, - ///A proposal got canceled. - ProposalCanceled { prop_index: ::core::primitive::u32 }, - ///Metadata for a proposal or a referendum has been set. - MetadataSet { - owner: my_types::pallet_democracy::types::MetadataOwner, - hash: my_types::primitive_types::H256, - }, - ///Metadata for a proposal or a referendum has been cleared. - MetadataCleared { - owner: my_types::pallet_democracy::types::MetadataOwner, - hash: my_types::primitive_types::H256, - }, - ///Metadata has been transferred to new owner. - MetadataTransferred { - prev_owner: my_types::pallet_democracy::types::MetadataOwner, - owner: my_types::pallet_democracy::types::MetadataOwner, - hash: my_types::primitive_types::H256, - }, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Delegations<_0> { - pub votes: _0, - pub capital: _0, - } - #[derive(Clone, Debug)] - pub enum MetadataOwner { - External, - Proposal(::core::primitive::u32), - Referendum(::core::primitive::u32), - } - #[derive(Clone, Debug)] - pub enum ReferendumInfo<_0, _1, _2> { - Ongoing(my_types::pallet_democracy::types::ReferendumStatus<_0, _1, _2>), - Finished { approved: ::core::primitive::bool, end: _0 }, - } - #[derive(Clone, Debug)] - pub struct ReferendumStatus<_0, _1, _2> { - pub end: _0, - pub proposal: _1, - pub threshold: my_types::pallet_democracy::vote_threshold::VoteThreshold, - pub delay: _0, - pub tally: my_types::pallet_democracy::types::Tally<_2>, - } - #[derive(Clone, Debug)] - pub struct Tally<_0> { - pub ayes: _0, - pub nays: _0, - pub turnout: _0, - } - } - pub mod vote { - use super::my_types; - #[derive(Clone, Debug)] - pub enum AccountVote<_0> { - Standard { vote: my_types::pallet_democracy::vote::Vote, balance: _0 }, - Split { aye: _0, nay: _0 }, - } - #[derive(Clone, Debug)] - pub struct PriorLock<_0, _1>(pub _0, pub _1); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Vote(pub ::core::primitive::u8); - #[derive(Clone, Debug)] - pub enum Voting<_0, _1, _2> { - Direct { - votes: my_types::bounded_collections::bounded_vec::BoundedVec< - (_2, my_types::pallet_democracy::vote::AccountVote<_0>), - >, - delegations: my_types::pallet_democracy::types::Delegations<_0>, - prior: my_types::pallet_democracy::vote::PriorLock<_2, _0>, - }, - Delegating { - balance: _0, - target: _1, - conviction: my_types::pallet_democracy::conviction::Conviction, - delegations: my_types::pallet_democracy::types::Delegations<_0>, - prior: my_types::pallet_democracy::vote::PriorLock<_2, _0>, - }, - } - } - pub mod vote_threshold { - use super::my_types; - #[derive(Clone, Debug)] - pub enum VoteThreshold { - SuperMajorityApprove, - SuperMajorityAgainst, - SimpleMajority, - } - } - } - pub mod pallet_election_provider_multi_phase { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::submit_unsigned`]. - submit_unsigned { - raw_solution: ::std::boxed::Box< - my_types::pallet_election_provider_multi_phase::RawSolution< - my_types::polkadot_runtime::NposCompactSolution16, - >, - >, - witness: my_types::pallet_election_provider_multi_phase::SolutionOrSnapshotSize, - }, - ///See [`Pallet::set_minimum_untrusted_score`]. - set_minimum_untrusted_score { - maybe_next_score: ::core::option::Option< - my_types::sp_npos_elections::ElectionScore, - >, - }, - ///See [`Pallet::set_emergency_election_result`]. - set_emergency_election_result { - supports: ::std::vec::Vec< - ( - my_types::sp_core::crypto::AccountId32, - my_types::sp_npos_elections::Support< - my_types::sp_core::crypto::AccountId32, - >, - ), - >, - }, - ///See [`Pallet::submit`]. - submit { - raw_solution: ::std::boxed::Box< - my_types::pallet_election_provider_multi_phase::RawSolution< - my_types::polkadot_runtime::NposCompactSolution16, - >, - >, - }, - ///See [`Pallet::governance_fallback`]. - governance_fallback { - maybe_max_voters: ::core::option::Option<::core::primitive::u32>, - maybe_max_targets: ::core::option::Option<::core::primitive::u32>, - }, - } - #[derive(Clone, Debug)] - ///Error of the pallet that can be returned in response to dispatches. - pub enum Error { - ///Submission was too early. - PreDispatchEarlySubmission, - ///Wrong number of winners presented. - PreDispatchWrongWinnerCount, - ///Submission was too weak, score-wise. - PreDispatchWeakSubmission, - ///The queue was full, and the solution was not better than any of the existing ones. - SignedQueueFull, - ///The origin failed to pay the deposit. - SignedCannotPayDeposit, - ///Witness data to dispatchable is invalid. - SignedInvalidWitness, - ///The signed submission consumes too much weight - SignedTooMuchWeight, - ///OCW submitted solution for wrong round - OcwCallWrongEra, - ///Snapshot metadata should exist but didn't. - MissingSnapshotMetadata, - ///`Self::insert_submission` returned an invalid index. - InvalidSubmissionIndex, - ///The call is not allowed at this point. - CallNotAllowed, - ///The fallback failed - FallbackFailed, - ///Some bound not met - BoundNotMet, - ///Submitted solution has too many winners - TooManyWinners, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A solution was stored with the given compute. - /// - ///The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, - ///the stored solution was submited in the signed phase by a miner with the `AccountId`. - ///Otherwise, the solution was stored either during the unsigned phase or by - ///`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make - ///room for this one. - SolutionStored { - compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, - origin: ::core::option::Option< - my_types::sp_core::crypto::AccountId32, - >, - prev_ejected: ::core::primitive::bool, - }, - ///The election has been finalized, with the given computation and score. - ElectionFinalized { - compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, - score: my_types::sp_npos_elections::ElectionScore, - }, - ///An election failed. - /// - ///Not much can be said about which computes failed in the process. - ElectionFailed, - ///An account has been rewarded for their signed submission being finalized. - Rewarded { - account: my_types::sp_core::crypto::AccountId32, - value: ::core::primitive::u128, - }, - ///An account has been slashed for submitting an invalid signed submission. - Slashed { - account: my_types::sp_core::crypto::AccountId32, - value: ::core::primitive::u128, - }, - ///There was a phase transition in a given round. - PhaseTransitioned { - from: my_types::pallet_election_provider_multi_phase::Phase< - ::core::primitive::u32, - >, - to: my_types::pallet_election_provider_multi_phase::Phase< - ::core::primitive::u32, - >, - round: ::core::primitive::u32, - }, - } - } - pub mod signed { - use super::my_types; - #[derive(Clone, Debug)] - pub struct SignedSubmission<_0, _1, _2> { - pub who: _0, - pub deposit: _1, - pub raw_solution: my_types::pallet_election_provider_multi_phase::RawSolution< - _2, - >, - pub call_fee: _1, - } - } - #[derive(Clone, Debug)] - pub enum ElectionCompute { - OnChain, - Signed, - Unsigned, - Fallback, - Emergency, - } - #[derive(Clone, Debug)] - pub enum Phase<_0> { - Off, - Signed, - Unsigned((::core::primitive::bool, _0)), - Emergency, - } - #[derive(Clone, Debug)] - pub struct RawSolution<_0> { - pub solution: _0, - pub score: my_types::sp_npos_elections::ElectionScore, - pub round: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct ReadySolution { - pub supports: my_types::bounded_collections::bounded_vec::BoundedVec< - ( - my_types::sp_core::crypto::AccountId32, - my_types::sp_npos_elections::Support< - my_types::sp_core::crypto::AccountId32, - >, - ), - >, - pub score: my_types::sp_npos_elections::ElectionScore, - pub compute: my_types::pallet_election_provider_multi_phase::ElectionCompute, - } - #[derive(Clone, Debug)] - pub struct RoundSnapshot<_0, _1> { - pub voters: ::std::vec::Vec<_1>, - pub targets: ::std::vec::Vec<_0>, - } - #[derive(Clone, Debug)] - pub struct SolutionOrSnapshotSize { - pub voters: ::core::primitive::u32, - pub targets: ::core::primitive::u32, - } - } - pub mod pallet_elections_phragmen { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::vote`]. - vote { - votes: ::std::vec::Vec, - value: ::core::primitive::u128, - }, - ///See [`Pallet::remove_voter`]. - remove_voter, - ///See [`Pallet::submit_candidacy`]. - submit_candidacy { candidate_count: ::core::primitive::u32 }, - ///See [`Pallet::renounce_candidacy`]. - renounce_candidacy { - renouncing: my_types::pallet_elections_phragmen::Renouncing, - }, - ///See [`Pallet::remove_member`]. - remove_member { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - slash_bond: ::core::primitive::bool, - rerun_election: ::core::primitive::bool, - }, - ///See [`Pallet::clean_defunct_voters`]. - clean_defunct_voters { - num_voters: ::core::primitive::u32, - num_defunct: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Cannot vote when no candidates or members exist. - UnableToVote, - ///Must vote for at least one candidate. - NoVotes, - ///Cannot vote more than candidates. - TooManyVotes, - ///Cannot vote more than maximum allowed. - MaximumVotesExceeded, - ///Cannot vote with stake less than minimum balance. - LowBalance, - ///Voter can not pay voting bond. - UnableToPayBond, - ///Must be a voter. - MustBeVoter, - ///Duplicated candidate submission. - DuplicatedCandidate, - ///Too many candidates have been created. - TooManyCandidates, - ///Member cannot re-submit candidacy. - MemberSubmit, - ///Runner cannot re-submit candidacy. - RunnerUpSubmit, - ///Candidate does not have enough funds. - InsufficientCandidateFunds, - ///Not a member. - NotMember, - ///The provided count of number of candidates is incorrect. - InvalidWitnessData, - ///The provided count of number of votes is incorrect. - InvalidVoteCount, - ///The renouncing origin presented a wrong `Renouncing` parameter. - InvalidRenouncing, - ///Prediction regarding replacement after member removal is wrong. - InvalidReplacement, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///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. - NewTerm { - new_members: ::std::vec::Vec< - (my_types::sp_core::crypto::AccountId32, ::core::primitive::u128), - >, - }, - ///No (or not enough) candidates existed for this round. This is different from - ///`NewTerm(\[\])`. See the description of `NewTerm`. - EmptyTerm, - ///Internal error happened while trying to perform election. - ElectionError, - ///A member has been removed. This should always be followed by either `NewTerm` or - ///`EmptyTerm`. - MemberKicked { member: my_types::sp_core::crypto::AccountId32 }, - ///Someone has renounced their candidacy. - Renounced { candidate: my_types::sp_core::crypto::AccountId32 }, - ///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. - CandidateSlashed { - candidate: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A seat holder was slashed by amount by being forcefully removed from the set. - SeatHolderSlashed { - seat_holder: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - } - } - #[derive(Clone, Debug)] - pub enum Renouncing { - Member, - RunnerUp, - Candidate(::core::primitive::u32), - } - #[derive(Clone, Debug)] - pub struct SeatHolder<_0, _1> { - pub who: _0, - pub stake: _1, - pub deposit: _1, - } - #[derive(Clone, Debug)] - pub struct Voter<_0, _1> { - pub votes: ::std::vec::Vec<_0>, - pub stake: _1, - pub deposit: _1, - } - } - pub mod pallet_fast_unstake { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::register_fast_unstake`]. - register_fast_unstake, - ///See [`Pallet::deregister`]. - deregister, - ///See [`Pallet::control`]. - control { eras_to_check: ::core::primitive::u32 }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The provided Controller account was not found. - /// - ///This means that the given account is not bonded. - NotController, - ///The bonded account has already been queued. - AlreadyQueued, - ///The bonded account has active unlocking chunks. - NotFullyBonded, - ///The provided un-staker is not in the `Queue`. - NotQueued, - ///The provided un-staker is already in Head, and cannot deregister. - AlreadyHead, - ///The call is not allowed at this point because the pallet is not active. - CallNotAllowed, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A staker was unstaked. - Unstaked { - stash: my_types::sp_core::crypto::AccountId32, - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///A staker was slashed for requesting fast-unstake whilst being exposed. - Slashed { - stash: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A batch was partially checked for the given eras, but the process did not finish. - BatchChecked { eras: ::std::vec::Vec<::core::primitive::u32> }, - ///A batch of a given size was terminated. - /// - ///This is always follows by a number of `Unstaked` or `Slashed` events, marking the end - ///of the batch. A new batch will be created upon next block. - BatchFinished { size: ::core::primitive::u32 }, - ///An internal error happened. Operations will be paused now. - InternalError, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct UnstakeRequest { - pub stashes: my_types::bounded_collections::bounded_vec::BoundedVec< - (my_types::sp_core::crypto::AccountId32, ::core::primitive::u128), - >, - pub checked: my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u32, - >, - } - } - } - pub mod pallet_grandpa { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::report_equivocation`]. - report_equivocation { - equivocation_proof: ::std::boxed::Box< - my_types::sp_consensus_grandpa::EquivocationProof< - my_types::primitive_types::H256, - ::core::primitive::u32, - >, - >, - key_owner_proof: my_types::sp_session::MembershipProof, - }, - ///See [`Pallet::report_equivocation_unsigned`]. - report_equivocation_unsigned { - equivocation_proof: ::std::boxed::Box< - my_types::sp_consensus_grandpa::EquivocationProof< - my_types::primitive_types::H256, - ::core::primitive::u32, - >, - >, - key_owner_proof: my_types::sp_session::MembershipProof, - }, - ///See [`Pallet::note_stalled`]. - note_stalled { - delay: ::core::primitive::u32, - best_finalized_block_number: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Attempt to signal GRANDPA pause when the authority set isn't live - ///(either paused or already pending pause). - PauseFailed, - ///Attempt to signal GRANDPA resume when the authority set isn't paused - ///(either live or already pending resume). - ResumeFailed, - ///Attempt to signal GRANDPA change with one already pending. - ChangePending, - ///Cannot signal forced change so soon after last. - TooSoon, - ///A key ownership proof provided as part of an equivocation report is invalid. - InvalidKeyOwnershipProof, - ///An equivocation proof provided as part of an equivocation report is invalid. - InvalidEquivocationProof, - ///A given equivocation report is valid but already previously reported. - DuplicateOffenceReport, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///New authority set has been applied. - NewAuthorities { - authority_set: ::std::vec::Vec< - ( - my_types::sp_consensus_grandpa::app::Public, - ::core::primitive::u64, - ), - >, - }, - ///Current authority set has been paused. - Paused, - ///Current authority set has been resumed. - Resumed, - } - } - #[derive(Clone, Debug)] - pub struct StoredPendingChange<_0> { - pub scheduled_at: _0, - pub delay: _0, - pub next_authorities: my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - (my_types::sp_consensus_grandpa::app::Public, ::core::primitive::u64), - >, - pub forced: ::core::option::Option<_0>, - } - #[derive(Clone, Debug)] - pub enum StoredState<_0> { - Live, - PendingPause { scheduled_at: _0, delay: _0 }, - Paused, - PendingResume { scheduled_at: _0, delay: _0 }, - } - } - pub mod pallet_identity { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Identity pallet declaration. - pub enum Call { - ///See [`Pallet::add_registrar`]. - add_registrar { - account: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::set_identity`]. - set_identity { - info: ::std::boxed::Box< - my_types::pallet_identity::types::IdentityInfo, - >, - }, - ///See [`Pallet::set_subs`]. - set_subs { - subs: ::std::vec::Vec< - ( - my_types::sp_core::crypto::AccountId32, - my_types::pallet_identity::types::Data, - ), - >, - }, - ///See [`Pallet::clear_identity`]. - clear_identity, - ///See [`Pallet::request_judgement`]. - request_judgement { - reg_index: ::core::primitive::u32, - max_fee: ::core::primitive::u128, - }, - ///See [`Pallet::cancel_request`]. - cancel_request { reg_index: ::core::primitive::u32 }, - ///See [`Pallet::set_fee`]. - set_fee { index: ::core::primitive::u32, fee: ::core::primitive::u128 }, - ///See [`Pallet::set_account_id`]. - set_account_id { - index: ::core::primitive::u32, - new: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::set_fields`]. - set_fields { - index: ::core::primitive::u32, - fields: my_types::pallet_identity::types::BitFlags< - my_types::pallet_identity::types::IdentityField, - >, - }, - ///See [`Pallet::provide_judgement`]. - provide_judgement { - reg_index: ::core::primitive::u32, - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - judgement: my_types::pallet_identity::types::Judgement< - ::core::primitive::u128, - >, - identity: my_types::primitive_types::H256, - }, - ///See [`Pallet::kill_identity`]. - kill_identity { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::add_sub`]. - add_sub { - sub: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - data: my_types::pallet_identity::types::Data, - }, - ///See [`Pallet::rename_sub`]. - rename_sub { - sub: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - data: my_types::pallet_identity::types::Data, - }, - ///See [`Pallet::remove_sub`]. - remove_sub { - sub: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::quit_sub`]. - quit_sub, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Too many subs-accounts. - TooManySubAccounts, - ///Account isn't found. - NotFound, - ///Account isn't named. - NotNamed, - ///Empty index. - EmptyIndex, - ///Fee is changed. - FeeChanged, - ///No identity found. - NoIdentity, - ///Sticky judgement. - StickyJudgement, - ///Judgement given. - JudgementGiven, - ///Invalid judgement. - InvalidJudgement, - ///The index is invalid. - InvalidIndex, - ///The target is invalid. - InvalidTarget, - ///Too many additional fields. - TooManyFields, - ///Maximum amount of registrars reached. Cannot add any more. - TooManyRegistrars, - ///Account ID is already named. - AlreadyClaimed, - ///Sender is not a sub-account. - NotSub, - ///Sub-account isn't owned by sender. - NotOwned, - ///The provided judgement was for a different identity. - JudgementForDifferentIdentity, - ///Error that occurs when there is an issue paying for judgement. - JudgementPaymentFailed, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A name was set or reset (which will remove all judgements). - IdentitySet { who: my_types::sp_core::crypto::AccountId32 }, - ///A name was cleared, and the given balance returned. - IdentityCleared { - who: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - ///A name was removed and the given balance slashed. - IdentityKilled { - who: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - ///A judgement was asked from a registrar. - JudgementRequested { - who: my_types::sp_core::crypto::AccountId32, - registrar_index: ::core::primitive::u32, - }, - ///A judgement request was retracted. - JudgementUnrequested { - who: my_types::sp_core::crypto::AccountId32, - registrar_index: ::core::primitive::u32, - }, - ///A judgement was given by a registrar. - JudgementGiven { - target: my_types::sp_core::crypto::AccountId32, - registrar_index: ::core::primitive::u32, - }, - ///A registrar was added. - RegistrarAdded { registrar_index: ::core::primitive::u32 }, - ///A sub-identity was added to an identity and the deposit paid. - SubIdentityAdded { - sub: my_types::sp_core::crypto::AccountId32, - main: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - ///A sub-identity was removed from an identity and the deposit freed. - SubIdentityRemoved { - sub: my_types::sp_core::crypto::AccountId32, - main: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - ///A sub-identity was cleared, and the given deposit repatriated from the - ///main identity account to the sub-identity account. - SubIdentityRevoked { - sub: my_types::sp_core::crypto::AccountId32, - main: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct BitFlags<_0>( - pub ::core::primitive::u64, - pub ::core::marker::PhantomData<_0>, - ); - #[derive(Clone, Debug)] - pub enum Data { - None, - Raw0([::core::primitive::u8; 0usize]), - Raw1([::core::primitive::u8; 1usize]), - Raw2([::core::primitive::u8; 2usize]), - Raw3([::core::primitive::u8; 3usize]), - Raw4([::core::primitive::u8; 4usize]), - Raw5([::core::primitive::u8; 5usize]), - Raw6([::core::primitive::u8; 6usize]), - Raw7([::core::primitive::u8; 7usize]), - Raw8([::core::primitive::u8; 8usize]), - Raw9([::core::primitive::u8; 9usize]), - Raw10([::core::primitive::u8; 10usize]), - Raw11([::core::primitive::u8; 11usize]), - Raw12([::core::primitive::u8; 12usize]), - Raw13([::core::primitive::u8; 13usize]), - Raw14([::core::primitive::u8; 14usize]), - Raw15([::core::primitive::u8; 15usize]), - Raw16([::core::primitive::u8; 16usize]), - Raw17([::core::primitive::u8; 17usize]), - Raw18([::core::primitive::u8; 18usize]), - Raw19([::core::primitive::u8; 19usize]), - Raw20([::core::primitive::u8; 20usize]), - Raw21([::core::primitive::u8; 21usize]), - Raw22([::core::primitive::u8; 22usize]), - Raw23([::core::primitive::u8; 23usize]), - Raw24([::core::primitive::u8; 24usize]), - Raw25([::core::primitive::u8; 25usize]), - Raw26([::core::primitive::u8; 26usize]), - Raw27([::core::primitive::u8; 27usize]), - Raw28([::core::primitive::u8; 28usize]), - Raw29([::core::primitive::u8; 29usize]), - Raw30([::core::primitive::u8; 30usize]), - Raw31([::core::primitive::u8; 31usize]), - Raw32([::core::primitive::u8; 32usize]), - BlakeTwo256([::core::primitive::u8; 32usize]), - Sha256([::core::primitive::u8; 32usize]), - Keccak256([::core::primitive::u8; 32usize]), - ShaThree256([::core::primitive::u8; 32usize]), - } - #[derive(Clone, Debug)] - pub enum IdentityField { - Display, - Legal, - Web, - Riot, - Email, - PgpFingerprint, - Image, - Twitter, - } - #[derive(Clone, Debug)] - pub struct IdentityInfo { - pub additional: my_types::bounded_collections::bounded_vec::BoundedVec< - ( - my_types::pallet_identity::types::Data, - my_types::pallet_identity::types::Data, - ), - >, - pub display: my_types::pallet_identity::types::Data, - pub legal: my_types::pallet_identity::types::Data, - pub web: my_types::pallet_identity::types::Data, - pub riot: my_types::pallet_identity::types::Data, - pub email: my_types::pallet_identity::types::Data, - pub pgp_fingerprint: ::core::option::Option< - [::core::primitive::u8; 20usize], - >, - pub image: my_types::pallet_identity::types::Data, - pub twitter: my_types::pallet_identity::types::Data, - } - #[derive(Clone, Debug)] - pub enum Judgement<_0> { - Unknown, - FeePaid(_0), - Reasonable, - KnownGood, - OutOfDate, - LowQuality, - Erroneous, - } - #[derive(Clone, Debug)] - pub struct RegistrarInfo<_0, _1> { - pub account: _1, - pub fee: _0, - pub fields: my_types::pallet_identity::types::BitFlags< - my_types::pallet_identity::types::IdentityField, - >, - } - #[derive(Clone, Debug)] - pub struct Registration<_0> { - pub judgements: my_types::bounded_collections::bounded_vec::BoundedVec< - ( - ::core::primitive::u32, - my_types::pallet_identity::types::Judgement<_0>, - ), - >, - pub deposit: _0, - pub info: my_types::pallet_identity::types::IdentityInfo, - } - } - } - pub mod pallet_im_online { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::heartbeat`]. - heartbeat { - heartbeat: my_types::pallet_im_online::Heartbeat< - ::core::primitive::u32, - >, - signature: my_types::pallet_im_online::sr25519::app_sr25519::Signature, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Non existent public key. - InvalidKey, - ///Duplicated heartbeat. - DuplicatedHeartbeat, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A new heartbeat was received from `AuthorityId`. - HeartbeatReceived { - authority_id: my_types::pallet_im_online::sr25519::app_sr25519::Public, - }, - ///At the end of the session, no offence was committed. - AllGood, - ///At the end of the session, at least one validator was found to be offline. - SomeOffline { - offline: ::std::vec::Vec< - ( - my_types::sp_core::crypto::AccountId32, - my_types::pallet_staking::Exposure< - my_types::sp_core::crypto::AccountId32, - ::core::primitive::u128, - >, - ), - >, - }, - } - } - pub mod sr25519 { - use super::my_types; - pub mod app_sr25519 { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - #[derive(Clone, Debug)] - pub struct Signature(pub my_types::sp_core::sr25519::Signature); - } - } - #[derive(Clone, Debug)] - pub struct Heartbeat<_0> { - pub block_number: _0, - pub session_index: ::core::primitive::u32, - pub authority_index: ::core::primitive::u32, - pub validators_len: ::core::primitive::u32, - } - } - pub mod pallet_indices { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::claim`]. - claim { index: ::core::primitive::u32 }, - ///See [`Pallet::transfer`]. - transfer { - new: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - index: ::core::primitive::u32, - }, - ///See [`Pallet::free`]. - free { index: ::core::primitive::u32 }, - ///See [`Pallet::force_transfer`]. - force_transfer { - new: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - index: ::core::primitive::u32, - freeze: ::core::primitive::bool, - }, - ///See [`Pallet::freeze`]. - freeze { index: ::core::primitive::u32 }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The index was not already assigned. - NotAssigned, - ///The index is assigned to another account. - NotOwner, - ///The index was not available. - InUse, - ///The source and destination accounts are identical. - NotTransfer, - ///The index is permanent and may not be freed/changed. - Permanent, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A account index was assigned. - IndexAssigned { - who: my_types::sp_core::crypto::AccountId32, - index: ::core::primitive::u32, - }, - ///A account index has been freed up (unassigned). - IndexFreed { index: ::core::primitive::u32 }, - ///A account index has been frozen to its current account ID. - IndexFrozen { - index: ::core::primitive::u32, - who: my_types::sp_core::crypto::AccountId32, - }, - } - } - } - pub mod pallet_membership { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::add_member`]. - add_member { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::remove_member`]. - remove_member { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::swap_member`]. - swap_member { - remove: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - add: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::reset_members`]. - reset_members { - members: ::std::vec::Vec, - }, - ///See [`Pallet::change_key`]. - change_key { - new: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::set_prime`]. - set_prime { - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::clear_prime`]. - clear_prime, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Already a member. - AlreadyMember, - ///Not a member. - NotMember, - ///Too many members. - TooManyMembers, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///The given member was added; see the transaction for who. - MemberAdded, - ///The given member was removed; see the transaction for who. - MemberRemoved, - ///Two members were swapped; see the transaction for who. - MembersSwapped, - ///The membership was reset; see the transaction for who the new set is. - MembersReset, - ///One of the members' keys changed. - KeyChanged, - ///Phantom member, never used. - Dummy, - } - } - } - pub mod pallet_message_queue { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::reap_page`]. - reap_page { - message_origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - page_index: ::core::primitive::u32, - }, - ///See [`Pallet::execute_overweight`]. - execute_overweight { - message_origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - page: ::core::primitive::u32, - index: ::core::primitive::u32, - weight_limit: my_types::sp_weights::weight_v2::Weight, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Page is not reapable because it has items remaining to be processed and is not old - ///enough. - NotReapable, - ///Page to be reaped does not exist. - NoPage, - ///The referenced message could not be found. - NoMessage, - ///The message was already processed and cannot be processed again. - AlreadyProcessed, - ///The message is queued for future execution. - Queued, - ///There is temporarily not enough weight to continue servicing messages. - InsufficientWeight, - ///This message is temporarily unprocessable. - /// - ///Such errors are expected, but not guaranteed, to resolve themselves eventually through - ///retrying. - TemporarilyUnprocessable, - ///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. - QueuePaused, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Message discarded due to an error in the `MessageProcessor` (usually a format error). - ProcessingFailed { - id: [::core::primitive::u8; 32usize], - origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - error: my_types::frame_support::traits::messages::ProcessMessageError, - }, - ///Message is processed. - Processed { - id: [::core::primitive::u8; 32usize], - origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - weight_used: my_types::sp_weights::weight_v2::Weight, - success: ::core::primitive::bool, - }, - ///Message placed in overweight queue. - OverweightEnqueued { - id: [::core::primitive::u8; 32usize], - origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - page_index: ::core::primitive::u32, - message_index: ::core::primitive::u32, - }, - ///This page was reaped. - PageReaped { - origin: my_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin, - index: ::core::primitive::u32, - }, - } - } - #[derive(Clone, Debug)] - pub struct BookState<_0> { - pub begin: ::core::primitive::u32, - pub end: ::core::primitive::u32, - pub count: ::core::primitive::u32, - pub ready_neighbours: ::core::option::Option< - my_types::pallet_message_queue::Neighbours<_0>, - >, - pub message_count: ::core::primitive::u64, - pub size: ::core::primitive::u64, - } - #[derive(Clone, Debug)] - pub struct Neighbours<_0> { - pub prev: _0, - pub next: _0, - } - #[derive(Clone, Debug)] - pub struct Page<_0> { - pub remaining: _0, - pub remaining_size: _0, - pub first_index: _0, - pub first: _0, - pub last: _0, - pub heap: my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - } - } - pub mod pallet_multisig { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::as_multi_threshold_1`]. - as_multi_threshold_1 { - other_signatories: ::std::vec::Vec< - my_types::sp_core::crypto::AccountId32, - >, - call: ::std::boxed::Box, - }, - ///See [`Pallet::as_multi`]. - as_multi { - threshold: ::core::primitive::u16, - other_signatories: ::std::vec::Vec< - my_types::sp_core::crypto::AccountId32, - >, - maybe_timepoint: ::core::option::Option< - my_types::pallet_multisig::Timepoint<::core::primitive::u32>, - >, - call: ::std::boxed::Box, - max_weight: my_types::sp_weights::weight_v2::Weight, - }, - ///See [`Pallet::approve_as_multi`]. - approve_as_multi { - threshold: ::core::primitive::u16, - other_signatories: ::std::vec::Vec< - my_types::sp_core::crypto::AccountId32, - >, - maybe_timepoint: ::core::option::Option< - my_types::pallet_multisig::Timepoint<::core::primitive::u32>, - >, - call_hash: [::core::primitive::u8; 32usize], - max_weight: my_types::sp_weights::weight_v2::Weight, - }, - ///See [`Pallet::cancel_as_multi`]. - cancel_as_multi { - threshold: ::core::primitive::u16, - other_signatories: ::std::vec::Vec< - my_types::sp_core::crypto::AccountId32, - >, - timepoint: my_types::pallet_multisig::Timepoint< - ::core::primitive::u32, - >, - call_hash: [::core::primitive::u8; 32usize], - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Threshold must be 2 or greater. - MinimumThreshold, - ///Call is already approved by this signatory. - AlreadyApproved, - ///Call doesn't need any (more) approvals. - NoApprovalsNeeded, - ///There are too few signatories in the list. - TooFewSignatories, - ///There are too many signatories in the list. - TooManySignatories, - ///The signatories were provided out of order; they should be ordered. - SignatoriesOutOfOrder, - ///The sender was contained in the other signatories; it shouldn't be. - SenderInSignatories, - ///Multisig operation not found when attempting to cancel. - NotFound, - ///Only the account that originally created the multisig is able to cancel it. - NotOwner, - ///No timepoint was given, yet the multisig operation is already underway. - NoTimepoint, - ///A different timepoint was given to the multisig operation that is underway. - WrongTimepoint, - ///A timepoint was given, yet no multisig operation is underway. - UnexpectedTimepoint, - ///The maximum weight information provided was too low. - MaxWeightTooLow, - ///The data to be stored is already stored. - AlreadyStored, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A new multisig operation has begun. - NewMultisig { - approving: my_types::sp_core::crypto::AccountId32, - multisig: my_types::sp_core::crypto::AccountId32, - call_hash: [::core::primitive::u8; 32usize], - }, - ///A multisig operation has been approved by someone. - MultisigApproval { - approving: my_types::sp_core::crypto::AccountId32, - timepoint: my_types::pallet_multisig::Timepoint< - ::core::primitive::u32, - >, - multisig: my_types::sp_core::crypto::AccountId32, - call_hash: [::core::primitive::u8; 32usize], - }, - ///A multisig operation has been executed. - MultisigExecuted { - approving: my_types::sp_core::crypto::AccountId32, - timepoint: my_types::pallet_multisig::Timepoint< - ::core::primitive::u32, - >, - multisig: my_types::sp_core::crypto::AccountId32, - call_hash: [::core::primitive::u8; 32usize], - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///A multisig operation has been cancelled. - MultisigCancelled { - cancelling: my_types::sp_core::crypto::AccountId32, - timepoint: my_types::pallet_multisig::Timepoint< - ::core::primitive::u32, - >, - multisig: my_types::sp_core::crypto::AccountId32, - call_hash: [::core::primitive::u8; 32usize], - }, - } - } - #[derive(Clone, Debug)] - pub struct Multisig<_0, _1, _2> { - pub when: my_types::pallet_multisig::Timepoint<_0>, - pub deposit: _1, - pub depositor: _2, - pub approvals: my_types::bounded_collections::bounded_vec::BoundedVec<_2>, - } - #[derive(Clone, Debug)] - pub struct Timepoint<_0> { - pub height: _0, - pub index: ::core::primitive::u32, - } - } - pub mod pallet_nomination_pools { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::join`]. - join { - amount: ::core::primitive::u128, - pool_id: ::core::primitive::u32, - }, - ///See [`Pallet::bond_extra`]. - bond_extra { - extra: my_types::pallet_nomination_pools::BondExtra< - ::core::primitive::u128, - >, - }, - ///See [`Pallet::claim_payout`]. - claim_payout, - ///See [`Pallet::unbond`]. - unbond { - member_account: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - unbonding_points: ::core::primitive::u128, - }, - ///See [`Pallet::pool_withdraw_unbonded`]. - pool_withdraw_unbonded { - pool_id: ::core::primitive::u32, - num_slashing_spans: ::core::primitive::u32, - }, - ///See [`Pallet::withdraw_unbonded`]. - withdraw_unbonded { - member_account: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - num_slashing_spans: ::core::primitive::u32, - }, - ///See [`Pallet::create`]. - create { - amount: ::core::primitive::u128, - root: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - nominator: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - bouncer: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::create_with_pool_id`]. - create_with_pool_id { - amount: ::core::primitive::u128, - root: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - nominator: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - bouncer: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - pool_id: ::core::primitive::u32, - }, - ///See [`Pallet::nominate`]. - nominate { - pool_id: ::core::primitive::u32, - validators: ::std::vec::Vec, - }, - ///See [`Pallet::set_state`]. - set_state { - pool_id: ::core::primitive::u32, - state: my_types::pallet_nomination_pools::PoolState, - }, - ///See [`Pallet::set_metadata`]. - set_metadata { - pool_id: ::core::primitive::u32, - metadata: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::set_configs`]. - set_configs { - min_join_bond: my_types::pallet_nomination_pools::ConfigOp< - ::core::primitive::u128, - >, - min_create_bond: my_types::pallet_nomination_pools::ConfigOp< - ::core::primitive::u128, - >, - max_pools: my_types::pallet_nomination_pools::ConfigOp< - ::core::primitive::u32, - >, - max_members: my_types::pallet_nomination_pools::ConfigOp< - ::core::primitive::u32, - >, - max_members_per_pool: my_types::pallet_nomination_pools::ConfigOp< - ::core::primitive::u32, - >, - global_max_commission: my_types::pallet_nomination_pools::ConfigOp< - my_types::sp_arithmetic::per_things::Perbill, - >, - }, - ///See [`Pallet::update_roles`]. - update_roles { - pool_id: ::core::primitive::u32, - new_root: my_types::pallet_nomination_pools::ConfigOp< - my_types::sp_core::crypto::AccountId32, - >, - new_nominator: my_types::pallet_nomination_pools::ConfigOp< - my_types::sp_core::crypto::AccountId32, - >, - new_bouncer: my_types::pallet_nomination_pools::ConfigOp< - my_types::sp_core::crypto::AccountId32, - >, - }, - ///See [`Pallet::chill`]. - chill { pool_id: ::core::primitive::u32 }, - ///See [`Pallet::bond_extra_other`]. - bond_extra_other { - member: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - extra: my_types::pallet_nomination_pools::BondExtra< - ::core::primitive::u128, - >, - }, - ///See [`Pallet::set_claim_permission`]. - set_claim_permission { - permission: my_types::pallet_nomination_pools::ClaimPermission, - }, - ///See [`Pallet::claim_payout_other`]. - claim_payout_other { other: my_types::sp_core::crypto::AccountId32 }, - ///See [`Pallet::set_commission`]. - set_commission { - pool_id: ::core::primitive::u32, - new_commission: ::core::option::Option< - ( - my_types::sp_arithmetic::per_things::Perbill, - my_types::sp_core::crypto::AccountId32, - ), - >, - }, - ///See [`Pallet::set_commission_max`]. - set_commission_max { - pool_id: ::core::primitive::u32, - max_commission: my_types::sp_arithmetic::per_things::Perbill, - }, - ///See [`Pallet::set_commission_change_rate`]. - set_commission_change_rate { - pool_id: ::core::primitive::u32, - change_rate: my_types::pallet_nomination_pools::CommissionChangeRate< - ::core::primitive::u32, - >, - }, - ///See [`Pallet::claim_commission`]. - claim_commission { pool_id: ::core::primitive::u32 }, - } - #[derive(Clone, Debug)] - pub enum DefensiveError { - NotEnoughSpaceInUnbondPool, - PoolNotFound, - RewardPoolNotFound, - SubPoolsNotFound, - BondedStashKilledPrematurely, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///A (bonded) pool id does not exist. - PoolNotFound, - ///An account is not a member. - PoolMemberNotFound, - ///A reward pool does not exist. In all cases this is a system logic error. - RewardPoolNotFound, - ///A sub pool does not exist. - SubPoolsNotFound, - ///An account is already delegating in another pool. An account may only belong to one - ///pool at a time. - AccountBelongsToOtherPool, - ///The member is fully unbonded (and thus cannot access the bonded and reward pool - ///anymore to, for example, collect rewards). - FullyUnbonding, - ///The member cannot unbond further chunks due to reaching the limit. - MaxUnbondingLimit, - ///None of the funds can be withdrawn yet because the bonding duration has not passed. - CannotWithdrawAny, - ///The amount does not meet the minimum bond to either join or create a pool. - /// - ///The depositor can never unbond to a value less than - ///`Pallet::depositor_min_bond`. The caller does not have nominating - ///permissions for the pool. Members can never unbond to a value below `MinJoinBond`. - MinimumBondNotMet, - ///The transaction could not be executed due to overflow risk for the pool. - OverflowRisk, - ///A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for - ///other members to be permissionlessly unbonded. - NotDestroying, - ///The caller does not have nominating permissions for the pool. - NotNominator, - ///Either a) the caller cannot make a valid kick or b) the pool is not destroying. - NotKickerOrDestroying, - ///The pool is not open to join - NotOpen, - ///The system is maxed out on pools. - MaxPools, - ///Too many members in the pool or system. - MaxPoolMembers, - ///The pools state cannot be changed. - CanNotChangeState, - ///The caller does not have adequate permissions. - DoesNotHavePermission, - ///Metadata exceeds [`Config::MaxMetadataLen`] - MetadataExceedsMaxLen, - ///Some error occurred that should never happen. This should be reported to the - ///maintainers. - Defensive(my_types::pallet_nomination_pools::pallet::DefensiveError), - ///Partial unbonding now allowed permissionlessly. - PartialUnbondNotAllowedPermissionlessly, - ///The pool's max commission cannot be set higher than the existing value. - MaxCommissionRestricted, - ///The supplied commission exceeds the max allowed commission. - CommissionExceedsMaximum, - ///Not enough blocks have surpassed since the last commission update. - CommissionChangeThrottled, - ///The submitted changes to commission change rate are not allowed. - CommissionChangeRateNotAllowed, - ///There is no pending commission to claim. - NoPendingCommission, - ///No commission current has been set. - NoCommissionCurrentSet, - ///Pool id currently in use. - PoolIdInUse, - ///Pool id provided is not correct/usable. - InvalidPoolId, - ///Bonding extra is restricted to the exact pending reward amount. - BondExtraRestricted, - } - #[derive(Clone, Debug)] - ///Events of this pallet. - pub enum Event { - ///A pool has been created. - Created { - depositor: my_types::sp_core::crypto::AccountId32, - pool_id: ::core::primitive::u32, - }, - ///A member has became bonded in a pool. - Bonded { - member: my_types::sp_core::crypto::AccountId32, - pool_id: ::core::primitive::u32, - bonded: ::core::primitive::u128, - joined: ::core::primitive::bool, - }, - ///A payout has been made to a member. - PaidOut { - member: my_types::sp_core::crypto::AccountId32, - pool_id: ::core::primitive::u32, - payout: ::core::primitive::u128, - }, - ///A member has unbonded from their pool. - /// - ///- `balance` is the corresponding balance of the number of points that has been - /// requested to be unbonded (the argument of the `unbond` transaction) from the bonded - /// pool. - ///- `points` is the number of points that are issued as a result of `balance` being - ///dissolved into the corresponding unbonding pool. - ///- `era` is the era in which the balance will be unbonded. - ///In the absence of slashing, these values will match. In the presence of slashing, the - ///number of points that are issued in the unbonding pool will be less than the amount - ///requested to be unbonded. - Unbonded { - member: my_types::sp_core::crypto::AccountId32, - pool_id: ::core::primitive::u32, - balance: ::core::primitive::u128, - points: ::core::primitive::u128, - era: ::core::primitive::u32, - }, - ///A member has withdrawn from their pool. - /// - ///The given number of `points` have been dissolved in return of `balance`. - /// - ///Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance - ///will be 1. - Withdrawn { - member: my_types::sp_core::crypto::AccountId32, - pool_id: ::core::primitive::u32, - balance: ::core::primitive::u128, - points: ::core::primitive::u128, - }, - ///A pool has been destroyed. - Destroyed { pool_id: ::core::primitive::u32 }, - ///The state of a pool has changed - StateChanged { - pool_id: ::core::primitive::u32, - new_state: my_types::pallet_nomination_pools::PoolState, - }, - ///A member has been removed from a pool. - /// - ///The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). - MemberRemoved { - pool_id: ::core::primitive::u32, - member: my_types::sp_core::crypto::AccountId32, - }, - ///The roles of a pool have been updated to the given new roles. Note that the depositor - ///can never change. - RolesUpdated { - root: ::core::option::Option, - bouncer: ::core::option::Option< - my_types::sp_core::crypto::AccountId32, - >, - nominator: ::core::option::Option< - my_types::sp_core::crypto::AccountId32, - >, - }, - ///The active balance of pool `pool_id` has been slashed to `balance`. - PoolSlashed { - pool_id: ::core::primitive::u32, - balance: ::core::primitive::u128, - }, - ///The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. - UnbondingPoolSlashed { - pool_id: ::core::primitive::u32, - era: ::core::primitive::u32, - balance: ::core::primitive::u128, - }, - ///A pool's commission setting has been changed. - PoolCommissionUpdated { - pool_id: ::core::primitive::u32, - current: ::core::option::Option< - ( - my_types::sp_arithmetic::per_things::Perbill, - my_types::sp_core::crypto::AccountId32, - ), - >, - }, - ///A pool's maximum commission setting has been changed. - PoolMaxCommissionUpdated { - pool_id: ::core::primitive::u32, - max_commission: my_types::sp_arithmetic::per_things::Perbill, - }, - ///A pool's commission `change_rate` has been changed. - PoolCommissionChangeRateUpdated { - pool_id: ::core::primitive::u32, - change_rate: my_types::pallet_nomination_pools::CommissionChangeRate< - ::core::primitive::u32, - >, - }, - ///Pool commission has been claimed. - PoolCommissionClaimed { - pool_id: ::core::primitive::u32, - commission: ::core::primitive::u128, - }, - } - } - #[derive(Clone, Debug)] - pub enum BondExtra<_0> { - FreeBalance(_0), - Rewards, - } - #[derive(Clone, Debug)] - pub struct BondedPoolInner { - pub commission: my_types::pallet_nomination_pools::Commission, - pub member_counter: ::core::primitive::u32, - pub points: ::core::primitive::u128, - pub roles: my_types::pallet_nomination_pools::PoolRoles< - my_types::sp_core::crypto::AccountId32, - >, - pub state: my_types::pallet_nomination_pools::PoolState, - } - #[derive(Clone, Debug)] - pub enum ClaimPermission { - Permissioned, - PermissionlessCompound, - PermissionlessWithdraw, - PermissionlessAll, - } - #[derive(Clone, Debug)] - pub struct Commission { - pub current: ::core::option::Option< - ( - my_types::sp_arithmetic::per_things::Perbill, - my_types::sp_core::crypto::AccountId32, - ), - >, - pub max: ::core::option::Option< - my_types::sp_arithmetic::per_things::Perbill, - >, - pub change_rate: ::core::option::Option< - my_types::pallet_nomination_pools::CommissionChangeRate< - ::core::primitive::u32, - >, - >, - pub throttle_from: ::core::option::Option<::core::primitive::u32>, - } - #[derive(Clone, Debug)] - pub struct CommissionChangeRate<_0> { - pub max_increase: my_types::sp_arithmetic::per_things::Perbill, - pub min_delay: _0, - } - #[derive(Clone, Debug)] - pub enum ConfigOp<_0> { - Noop, - Set(_0), - Remove, - } - #[derive(Clone, Debug)] - pub struct PoolMember { - pub pool_id: ::core::primitive::u32, - pub points: ::core::primitive::u128, - pub last_recorded_reward_counter: my_types::sp_arithmetic::fixed_point::FixedU128, - pub unbonding_eras: my_types::bounded_collections::bounded_btree_map::BoundedBTreeMap< - ::core::primitive::u32, - ::core::primitive::u128, - >, - } - #[derive(Clone, Debug)] - pub struct PoolRoles<_0> { - pub depositor: _0, - pub root: ::core::option::Option<_0>, - pub nominator: ::core::option::Option<_0>, - pub bouncer: ::core::option::Option<_0>, - } - #[derive(Clone, Debug)] - pub enum PoolState { - Open, - Blocked, - Destroying, - } - #[derive(Clone, Debug)] - pub struct RewardPool { - pub last_recorded_reward_counter: my_types::sp_arithmetic::fixed_point::FixedU128, - pub last_recorded_total_payouts: ::core::primitive::u128, - pub total_rewards_claimed: ::core::primitive::u128, - pub total_commission_pending: ::core::primitive::u128, - pub total_commission_claimed: ::core::primitive::u128, - } - #[derive(Clone, Debug)] - pub struct SubPools { - pub no_era: my_types::pallet_nomination_pools::UnbondPool, - pub with_era: my_types::bounded_collections::bounded_btree_map::BoundedBTreeMap< - ::core::primitive::u32, - my_types::pallet_nomination_pools::UnbondPool, - >, - } - #[derive(Clone, Debug)] - pub struct UnbondPool { - pub points: ::core::primitive::u128, - pub balance: ::core::primitive::u128, - } - } - pub mod pallet_offences { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Events type. - pub enum Event { - ///There is an offence reported of the given `kind` happened at the `session_index` and - ///(kind-specific) time slot. This event is not deposited for duplicate slashes. - ///\[kind, timeslot\]. - Offence { - kind: [::core::primitive::u8; 16usize], - timeslot: ::std::vec::Vec<::core::primitive::u8>, - }, - } - } - } - pub mod pallet_preimage { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::note_preimage`]. - note_preimage { bytes: ::std::vec::Vec<::core::primitive::u8> }, - ///See [`Pallet::unnote_preimage`]. - unnote_preimage { hash: my_types::primitive_types::H256 }, - ///See [`Pallet::request_preimage`]. - request_preimage { hash: my_types::primitive_types::H256 }, - ///See [`Pallet::unrequest_preimage`]. - unrequest_preimage { hash: my_types::primitive_types::H256 }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Preimage is too large to store on-chain. - TooBig, - ///Preimage has already been noted on-chain. - AlreadyNoted, - ///The user is not authorized to perform this action. - NotAuthorized, - ///The preimage cannot be removed since it has not yet been noted. - NotNoted, - ///A preimage may not be removed when there are outstanding requests. - Requested, - ///The preimage request cannot be removed since no outstanding requests exist. - NotRequested, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A preimage has been noted. - Noted { hash: my_types::primitive_types::H256 }, - ///A preimage has been requested. - Requested { hash: my_types::primitive_types::H256 }, - ///A preimage has ben cleared. - Cleared { hash: my_types::primitive_types::H256 }, - } - } - #[derive(Clone, Debug)] - pub enum RequestStatus<_0, _1> { - Unrequested { deposit: (_0, _1), len: ::core::primitive::u32 }, - Requested { - deposit: ::core::option::Option<(_0, _1)>, - count: ::core::primitive::u32, - len: ::core::option::Option<::core::primitive::u32>, - }, - } - } - pub mod pallet_proxy { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::proxy`]. - proxy { - real: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - force_proxy_type: ::core::option::Option< - my_types::polkadot_runtime::ProxyType, - >, - call: ::std::boxed::Box, - }, - ///See [`Pallet::add_proxy`]. - add_proxy { - delegate: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - proxy_type: my_types::polkadot_runtime::ProxyType, - delay: ::core::primitive::u32, - }, - ///See [`Pallet::remove_proxy`]. - remove_proxy { - delegate: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - proxy_type: my_types::polkadot_runtime::ProxyType, - delay: ::core::primitive::u32, - }, - ///See [`Pallet::remove_proxies`]. - remove_proxies, - ///See [`Pallet::create_pure`]. - create_pure { - proxy_type: my_types::polkadot_runtime::ProxyType, - delay: ::core::primitive::u32, - index: ::core::primitive::u16, - }, - ///See [`Pallet::kill_pure`]. - kill_pure { - spawner: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - proxy_type: my_types::polkadot_runtime::ProxyType, - index: ::core::primitive::u16, - height: ::core::primitive::u32, - ext_index: ::core::primitive::u32, - }, - ///See [`Pallet::announce`]. - announce { - real: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - call_hash: my_types::primitive_types::H256, - }, - ///See [`Pallet::remove_announcement`]. - remove_announcement { - real: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - call_hash: my_types::primitive_types::H256, - }, - ///See [`Pallet::reject_announcement`]. - reject_announcement { - delegate: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - call_hash: my_types::primitive_types::H256, - }, - ///See [`Pallet::proxy_announced`]. - proxy_announced { - delegate: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - real: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - force_proxy_type: ::core::option::Option< - my_types::polkadot_runtime::ProxyType, - >, - call: ::std::boxed::Box, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///There are too many proxies registered or too many announcements pending. - TooMany, - ///Proxy registration not found. - NotFound, - ///Sender is not a proxy of the account to be proxied. - NotProxy, - ///A call which is incompatible with the proxy type's filter was attempted. - Unproxyable, - ///Account is already a proxy. - Duplicate, - ///Call may not be made by proxy because it may escalate its privileges. - NoPermission, - ///Announcement, if made at all, was made too recently. - Unannounced, - ///Cannot add self as proxy. - NoSelfProxy, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A proxy was executed correctly, with the given. - ProxyExecuted { - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///A pure account has been created by new proxy with given - ///disambiguation index and proxy type. - PureCreated { - pure: my_types::sp_core::crypto::AccountId32, - who: my_types::sp_core::crypto::AccountId32, - proxy_type: my_types::polkadot_runtime::ProxyType, - disambiguation_index: ::core::primitive::u16, - }, - ///An announcement was placed to make a call in the future. - Announced { - real: my_types::sp_core::crypto::AccountId32, - proxy: my_types::sp_core::crypto::AccountId32, - call_hash: my_types::primitive_types::H256, - }, - ///A proxy was added. - ProxyAdded { - delegator: my_types::sp_core::crypto::AccountId32, - delegatee: my_types::sp_core::crypto::AccountId32, - proxy_type: my_types::polkadot_runtime::ProxyType, - delay: ::core::primitive::u32, - }, - ///A proxy was removed. - ProxyRemoved { - delegator: my_types::sp_core::crypto::AccountId32, - delegatee: my_types::sp_core::crypto::AccountId32, - proxy_type: my_types::polkadot_runtime::ProxyType, - delay: ::core::primitive::u32, - }, - } - } - #[derive(Clone, Debug)] - pub struct Announcement<_0, _1, _2> { - pub real: _0, - pub call_hash: _1, - pub height: _2, - } - #[derive(Clone, Debug)] - pub struct ProxyDefinition<_0, _1, _2> { - pub delegate: _0, - pub proxy_type: _1, - pub delay: _2, - } - } - pub mod pallet_referenda { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::submit`]. - submit { - proposal_origin: ::std::boxed::Box< - my_types::polkadot_runtime::OriginCaller, - >, - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - enactment_moment: my_types::frame_support::traits::schedule::DispatchTime< - ::core::primitive::u32, - >, - }, - ///See [`Pallet::place_decision_deposit`]. - place_decision_deposit { index: ::core::primitive::u32 }, - ///See [`Pallet::refund_decision_deposit`]. - refund_decision_deposit { index: ::core::primitive::u32 }, - ///See [`Pallet::cancel`]. - cancel { index: ::core::primitive::u32 }, - ///See [`Pallet::kill`]. - kill { index: ::core::primitive::u32 }, - ///See [`Pallet::nudge_referendum`]. - nudge_referendum { index: ::core::primitive::u32 }, - ///See [`Pallet::one_fewer_deciding`]. - one_fewer_deciding { track: ::core::primitive::u16 }, - ///See [`Pallet::refund_submission_deposit`]. - refund_submission_deposit { index: ::core::primitive::u32 }, - ///See [`Pallet::set_metadata`]. - set_metadata { - index: ::core::primitive::u32, - maybe_hash: ::core::option::Option, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Referendum is not ongoing. - NotOngoing, - ///Referendum's decision deposit is already paid. - HasDeposit, - ///The track identifier given was invalid. - BadTrack, - ///There are already a full complement of referenda in progress for this track. - Full, - ///The queue of the track is empty. - QueueEmpty, - ///The referendum index provided is invalid in this context. - BadReferendum, - ///There was nothing to do in the advancement. - NothingToDo, - ///No track exists for the proposal origin. - NoTrack, - ///Any deposit cannot be refunded until after the decision is over. - Unfinished, - ///The deposit refunder is not the depositor. - NoPermission, - ///The deposit cannot be refunded since none was made. - NoDeposit, - ///The referendum status is invalid for this operation. - BadStatus, - ///The preimage does not exist. - PreimageNotExist, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A referendum has been submitted. - Submitted { - index: ::core::primitive::u32, - track: ::core::primitive::u16, - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - }, - ///The decision deposit has been placed. - DecisionDepositPlaced { - index: ::core::primitive::u32, - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///The decision deposit has been refunded. - DecisionDepositRefunded { - index: ::core::primitive::u32, - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A deposit has been slashaed. - DepositSlashed { - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A referendum has moved into the deciding phase. - DecisionStarted { - index: ::core::primitive::u32, - track: ::core::primitive::u16, - proposal: my_types::frame_support::traits::preimages::Bounded< - my_types::polkadot_runtime::RuntimeCall, - >, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ConfirmStarted { index: ::core::primitive::u32 }, - ConfirmAborted { index: ::core::primitive::u32 }, - ///A referendum has ended its confirmation phase and is ready for approval. - Confirmed { - index: ::core::primitive::u32, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ///A referendum has been approved and its proposal has been scheduled. - Approved { index: ::core::primitive::u32 }, - ///A proposal has been rejected by referendum. - Rejected { - index: ::core::primitive::u32, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ///A referendum has been timed out without being decided. - TimedOut { - index: ::core::primitive::u32, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ///A referendum has been cancelled. - Cancelled { - index: ::core::primitive::u32, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ///A referendum has been killed. - Killed { - index: ::core::primitive::u32, - tally: my_types::pallet_conviction_voting::types::Tally< - ::core::primitive::u128, - >, - }, - ///The submission deposit has been refunded. - SubmissionDepositRefunded { - index: ::core::primitive::u32, - who: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Metadata for a referendum has been set. - MetadataSet { - index: ::core::primitive::u32, - hash: my_types::primitive_types::H256, - }, - ///Metadata for a referendum has been cleared. - MetadataCleared { - index: ::core::primitive::u32, - hash: my_types::primitive_types::H256, - }, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Curve { - LinearDecreasing { - length: my_types::sp_arithmetic::per_things::Perbill, - floor: my_types::sp_arithmetic::per_things::Perbill, - ceil: my_types::sp_arithmetic::per_things::Perbill, - }, - SteppedDecreasing { - begin: my_types::sp_arithmetic::per_things::Perbill, - end: my_types::sp_arithmetic::per_things::Perbill, - step: my_types::sp_arithmetic::per_things::Perbill, - period: my_types::sp_arithmetic::per_things::Perbill, - }, - Reciprocal { - factor: my_types::sp_arithmetic::fixed_point::FixedI64, - x_offset: my_types::sp_arithmetic::fixed_point::FixedI64, - y_offset: my_types::sp_arithmetic::fixed_point::FixedI64, - }, - } - #[derive(Clone, Debug)] - pub struct DecidingStatus<_0> { - pub since: _0, - pub confirming: ::core::option::Option<_0>, - } - #[derive(Clone, Debug)] - pub struct Deposit<_0, _1> { - pub who: _0, - pub amount: _1, - } - #[derive(Clone, Debug)] - pub enum ReferendumInfo<_0, _1, _2, _3, _4, _5, _6, _7> { - Ongoing( - my_types::pallet_referenda::types::ReferendumStatus< - _0, - _1, - _2, - _3, - _4, - _5, - _6, - _7, - >, - ), - Approved( - _2, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - Rejected( - _2, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - Cancelled( - _2, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - TimedOut( - _2, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - Killed(_2), - } - #[derive(Clone, Debug)] - pub struct ReferendumStatus<_0, _1, _2, _3, _4, _5, _6, _7> { - pub track: _0, - pub origin: _1, - pub proposal: _3, - pub enactment: my_types::frame_support::traits::schedule::DispatchTime< - _2, - >, - pub submitted: _2, - pub submission_deposit: my_types::pallet_referenda::types::Deposit< - _6, - _4, - >, - pub decision_deposit: ::core::option::Option< - my_types::pallet_referenda::types::Deposit<_6, _4>, - >, - pub deciding: ::core::option::Option< - my_types::pallet_referenda::types::DecidingStatus<_2>, - >, - pub tally: _5, - pub in_queue: ::core::primitive::bool, - pub alarm: ::core::option::Option<(_2, _7)>, - } - #[derive(Clone, Debug)] - pub struct TrackInfo<_0, _1> { - pub name: ::std::string::String, - pub max_deciding: ::core::primitive::u32, - pub decision_deposit: _0, - pub prepare_period: _1, - pub decision_period: _1, - pub confirm_period: _1, - pub min_enactment_period: _1, - pub min_approval: my_types::pallet_referenda::types::Curve, - pub min_support: my_types::pallet_referenda::types::Curve, - } - } - } - pub mod pallet_scheduler { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::schedule`]. - schedule { - when: ::core::primitive::u32, - maybe_periodic: ::core::option::Option< - (::core::primitive::u32, ::core::primitive::u32), - >, - priority: ::core::primitive::u8, - call: ::std::boxed::Box, - }, - ///See [`Pallet::cancel`]. - cancel { when: ::core::primitive::u32, index: ::core::primitive::u32 }, - ///See [`Pallet::schedule_named`]. - schedule_named { - id: [::core::primitive::u8; 32usize], - when: ::core::primitive::u32, - maybe_periodic: ::core::option::Option< - (::core::primitive::u32, ::core::primitive::u32), - >, - priority: ::core::primitive::u8, - call: ::std::boxed::Box, - }, - ///See [`Pallet::cancel_named`]. - cancel_named { id: [::core::primitive::u8; 32usize] }, - ///See [`Pallet::schedule_after`]. - schedule_after { - after: ::core::primitive::u32, - maybe_periodic: ::core::option::Option< - (::core::primitive::u32, ::core::primitive::u32), - >, - priority: ::core::primitive::u8, - call: ::std::boxed::Box, - }, - ///See [`Pallet::schedule_named_after`]. - schedule_named_after { - id: [::core::primitive::u8; 32usize], - after: ::core::primitive::u32, - maybe_periodic: ::core::option::Option< - (::core::primitive::u32, ::core::primitive::u32), - >, - priority: ::core::primitive::u8, - call: ::std::boxed::Box, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Failed to schedule a call - FailedToSchedule, - ///Cannot find the scheduled call. - NotFound, - ///Given target block number is in the past. - TargetBlockNumberInPast, - ///Reschedule failed because it does not change scheduled time. - RescheduleNoChange, - ///Attempt to use a non-named function on a named task. - Named, - } - #[derive(Clone, Debug)] - ///Events type. - pub enum Event { - ///Scheduled some task. - Scheduled { - when: ::core::primitive::u32, - index: ::core::primitive::u32, - }, - ///Canceled some task. - Canceled { when: ::core::primitive::u32, index: ::core::primitive::u32 }, - ///Dispatched some task. - Dispatched { - task: (::core::primitive::u32, ::core::primitive::u32), - id: ::core::option::Option<[::core::primitive::u8; 32usize]>, - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///The call for the provided hash was not found so the task has been aborted. - CallUnavailable { - task: (::core::primitive::u32, ::core::primitive::u32), - id: ::core::option::Option<[::core::primitive::u8; 32usize]>, - }, - ///The given task was unable to be renewed since the agenda is full at that block. - PeriodicFailed { - task: (::core::primitive::u32, ::core::primitive::u32), - id: ::core::option::Option<[::core::primitive::u8; 32usize]>, - }, - ///The given task can never be executed since it is overweight. - PermanentlyOverweight { - task: (::core::primitive::u32, ::core::primitive::u32), - id: ::core::option::Option<[::core::primitive::u8; 32usize]>, - }, - } - } - #[derive(Clone, Debug)] - pub struct Scheduled<_0, _1, _2, _3, _4> { - pub maybe_id: ::core::option::Option<_0>, - pub priority: ::core::primitive::u8, - pub call: _1, - pub maybe_periodic: ::core::option::Option<(_2, _2)>, - pub origin: _3, - pub __ignore: ::core::marker::PhantomData<_4>, - } - } - pub mod pallet_session { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::set_keys`]. - set_keys { - keys: my_types::polkadot_runtime::SessionKeys, - proof: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::purge_keys`]. - purge_keys, - } - #[derive(Clone, Debug)] - ///Error for the session pallet. - pub enum Error { - ///Invalid ownership proof. - InvalidProof, - ///No associated validator ID for account. - NoAssociatedValidatorId, - ///Registered duplicate key. - DuplicatedKey, - ///No keys are associated with this account. - NoKeys, - ///Key setting account is not live, so it's impossible to associate keys. - NoAccount, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///New session has happened. Note that the argument is the session index, not the - ///block number as the type might suggest. - NewSession { session_index: ::core::primitive::u32 }, - } - } - } - pub mod pallet_staking { - use super::my_types; - pub mod pallet { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::bond`]. - bond { - value: ::core::primitive::u128, - payee: my_types::pallet_staking::RewardDestination< - my_types::sp_core::crypto::AccountId32, - >, - }, - ///See [`Pallet::bond_extra`]. - bond_extra { max_additional: ::core::primitive::u128 }, - ///See [`Pallet::unbond`]. - unbond { value: ::core::primitive::u128 }, - ///See [`Pallet::withdraw_unbonded`]. - withdraw_unbonded { num_slashing_spans: ::core::primitive::u32 }, - ///See [`Pallet::validate`]. - validate { prefs: my_types::pallet_staking::ValidatorPrefs }, - ///See [`Pallet::nominate`]. - nominate { - targets: ::std::vec::Vec< - my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - >, - }, - ///See [`Pallet::chill`]. - chill, - ///See [`Pallet::set_payee`]. - set_payee { - payee: my_types::pallet_staking::RewardDestination< - my_types::sp_core::crypto::AccountId32, - >, - }, - ///See [`Pallet::set_controller`]. - set_controller, - ///See [`Pallet::set_validator_count`]. - set_validator_count { new: ::core::primitive::u32 }, - ///See [`Pallet::increase_validator_count`]. - increase_validator_count { additional: ::core::primitive::u32 }, - ///See [`Pallet::scale_validator_count`]. - scale_validator_count { - factor: my_types::sp_arithmetic::per_things::Percent, - }, - ///See [`Pallet::force_no_eras`]. - force_no_eras, - ///See [`Pallet::force_new_era`]. - force_new_era, - ///See [`Pallet::set_invulnerables`]. - set_invulnerables { - invulnerables: ::std::vec::Vec< - my_types::sp_core::crypto::AccountId32, - >, - }, - ///See [`Pallet::force_unstake`]. - force_unstake { - stash: my_types::sp_core::crypto::AccountId32, - num_slashing_spans: ::core::primitive::u32, - }, - ///See [`Pallet::force_new_era_always`]. - force_new_era_always, - ///See [`Pallet::cancel_deferred_slash`]. - cancel_deferred_slash { - era: ::core::primitive::u32, - slash_indices: ::std::vec::Vec<::core::primitive::u32>, - }, - ///See [`Pallet::payout_stakers`]. - payout_stakers { - validator_stash: my_types::sp_core::crypto::AccountId32, - era: ::core::primitive::u32, - }, - ///See [`Pallet::rebond`]. - rebond { value: ::core::primitive::u128 }, - ///See [`Pallet::reap_stash`]. - reap_stash { - stash: my_types::sp_core::crypto::AccountId32, - num_slashing_spans: ::core::primitive::u32, - }, - ///See [`Pallet::kick`]. - kick { - who: ::std::vec::Vec< - my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - >, - }, - ///See [`Pallet::set_staking_configs`]. - set_staking_configs { - min_nominator_bond: my_types::pallet_staking::pallet::pallet::ConfigOp< - ::core::primitive::u128, - >, - min_validator_bond: my_types::pallet_staking::pallet::pallet::ConfigOp< - ::core::primitive::u128, - >, - max_nominator_count: my_types::pallet_staking::pallet::pallet::ConfigOp< - ::core::primitive::u32, - >, - max_validator_count: my_types::pallet_staking::pallet::pallet::ConfigOp< - ::core::primitive::u32, - >, - chill_threshold: my_types::pallet_staking::pallet::pallet::ConfigOp< - my_types::sp_arithmetic::per_things::Percent, - >, - min_commission: my_types::pallet_staking::pallet::pallet::ConfigOp< - my_types::sp_arithmetic::per_things::Perbill, - >, - }, - ///See [`Pallet::chill_other`]. - chill_other { controller: my_types::sp_core::crypto::AccountId32 }, - ///See [`Pallet::force_apply_min_commission`]. - force_apply_min_commission { - validator_stash: my_types::sp_core::crypto::AccountId32, - }, - ///See [`Pallet::set_min_commission`]. - set_min_commission { - new: my_types::sp_arithmetic::per_things::Perbill, - }, - } - #[derive(Clone, Debug)] - pub enum ConfigOp<_0> { - Noop, - Set(_0), - Remove, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Not a controller account. - NotController, - ///Not a stash account. - NotStash, - ///Stash is already bonded. - AlreadyBonded, - ///Controller is already paired. - AlreadyPaired, - ///Targets cannot be empty. - EmptyTargets, - ///Duplicate index. - DuplicateIndex, - ///Slash record index out of bounds. - InvalidSlashIndex, - ///Cannot have a validator or nominator role, with value less than the minimum defined by - ///governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the - ///intention, `chill` first to remove one's role as validator/nominator. - InsufficientBond, - ///Can not schedule more unlock chunks. - NoMoreChunks, - ///Can not rebond without unlocking chunks. - NoUnlockChunk, - ///Attempting to target a stash that still has funds. - FundedTarget, - ///Invalid era to reward. - InvalidEraToReward, - ///Invalid number of nominations. - InvalidNumberOfNominations, - ///Items are not sorted and unique. - NotSortedAndUnique, - ///Rewards for this era have already been claimed for this validator. - AlreadyClaimed, - ///Incorrect previous history depth input provided. - IncorrectHistoryDepth, - ///Incorrect number of slashing spans provided. - IncorrectSlashingSpans, - ///Internal state has become somehow corrupted and the operation cannot continue. - BadState, - ///Too many nomination targets supplied. - TooManyTargets, - ///A nomination target was supplied that was blocked or otherwise not a validator. - BadTarget, - ///The user has enough bond and thus cannot be chilled forcefully by an external person. - CannotChillOther, - ///There are too many nominators in the system. Governance needs to adjust the staking - ///settings to keep things safe for the runtime. - TooManyNominators, - ///There are too many validator candidates in the system. Governance needs to adjust the - ///staking settings to keep things safe for the runtime. - TooManyValidators, - ///Commission is too low. Must be at least `MinCommission`. - CommissionTooLow, - ///Some bound is not met. - BoundNotMet, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///The era payout has been set; the first balance is the validator-payout; the second is - ///the remainder from the maximum amount of reward. - EraPaid { - era_index: ::core::primitive::u32, - validator_payout: ::core::primitive::u128, - remainder: ::core::primitive::u128, - }, - ///The nominator has been rewarded by this amount. - Rewarded { - stash: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A staker (validator or nominator) has been slashed by the given amount. - Slashed { - staker: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A slash for the given validator, for the given percentage of their stake, at the given - ///era as been reported. - SlashReported { - validator: my_types::sp_core::crypto::AccountId32, - fraction: my_types::sp_arithmetic::per_things::Perbill, - slash_era: ::core::primitive::u32, - }, - ///An old slashing report from a prior era was discarded because it could - ///not be processed. - OldSlashingReportDiscarded { session_index: ::core::primitive::u32 }, - ///A new set of stakers was elected. - StakersElected, - ///An account has bonded this amount. \[stash, amount\] - /// - ///NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, - ///it will not be emitted for staking rewards when they are added to stake. - Bonded { - stash: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///An account has unbonded this amount. - Unbonded { - stash: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` - ///from the unlocking queue. - Withdrawn { - stash: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A nominator has been kicked from a validator. - Kicked { - nominator: my_types::sp_core::crypto::AccountId32, - stash: my_types::sp_core::crypto::AccountId32, - }, - ///The election failed. No new era is planned. - StakingElectionFailed, - ///An account has stopped participating as either a validator or nominator. - Chilled { stash: my_types::sp_core::crypto::AccountId32 }, - ///The stakers' rewards are getting paid. - PayoutStarted { - era_index: ::core::primitive::u32, - validator_stash: my_types::sp_core::crypto::AccountId32, - }, - ///A validator has set their preferences. - ValidatorPrefsSet { - stash: my_types::sp_core::crypto::AccountId32, - prefs: my_types::pallet_staking::ValidatorPrefs, - }, - ///A new force era mode was set. - ForceEra { mode: my_types::pallet_staking::Forcing }, - } - } - } - pub mod slashing { - use super::my_types; - #[derive(Clone, Debug)] - pub struct SlashingSpans { - pub span_index: ::core::primitive::u32, - pub last_start: ::core::primitive::u32, - pub last_nonzero_slash: ::core::primitive::u32, - pub prior: ::std::vec::Vec<::core::primitive::u32>, - } - #[derive(Clone, Debug)] - pub struct SpanRecord<_0> { - pub slashed: _0, - pub paid_out: _0, - } - } - #[derive(Clone, Debug)] - pub struct ActiveEraInfo { - pub index: ::core::primitive::u32, - pub start: ::core::option::Option<::core::primitive::u64>, - } - #[derive(Clone, Debug)] - pub struct EraRewardPoints<_0> { - pub total: ::core::primitive::u32, - pub individual: ::std::collections::BTreeMap<_0, ::core::primitive::u32>, - } - #[derive(Clone, Debug)] - pub struct Exposure<_0, _1> { - pub total: _1, - pub own: _1, - pub others: ::std::vec::Vec< - my_types::pallet_staking::IndividualExposure<_0, _1>, - >, - } - #[derive(Clone, Debug)] - pub enum Forcing { - NotForcing, - ForceNew, - ForceNone, - ForceAlways, - } - #[derive(Clone, Debug)] - pub struct IndividualExposure<_0, _1> { - pub who: _0, - pub value: _1, - } - #[derive(Clone, Debug)] - pub struct Nominations { - pub targets: my_types::bounded_collections::bounded_vec::BoundedVec< - my_types::sp_core::crypto::AccountId32, - >, - pub submitted_in: ::core::primitive::u32, - pub suppressed: ::core::primitive::bool, - } - #[derive(Clone, Debug)] - pub enum RewardDestination<_0> { - Staked, - Stash, - Controller, - Account(_0), - None, - } - #[derive(Clone, Debug)] - pub struct StakingLedger { - pub stash: my_types::sp_core::crypto::AccountId32, - pub total: ::core::primitive::u128, - pub active: ::core::primitive::u128, - pub unlocking: my_types::bounded_collections::bounded_vec::BoundedVec< - my_types::pallet_staking::UnlockChunk<::core::primitive::u128>, - >, - pub claimed_rewards: my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u32, - >, - } - #[derive(Clone, Debug)] - pub struct UnappliedSlash<_0, _1> { - pub validator: _0, - pub own: _1, - pub others: ::std::vec::Vec<(_0, _1)>, - pub reporters: ::std::vec::Vec<_0>, - pub payout: _1, - } - #[derive(Clone, Debug)] - pub struct UnlockChunk<_0> { - pub value: _0, - pub era: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct ValidatorPrefs { - pub commission: my_types::sp_arithmetic::per_things::Perbill, - pub blocked: ::core::primitive::bool, - } - } - pub mod pallet_timestamp { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::set`]. - set { now: ::core::primitive::u64 }, - } - } - } - pub mod pallet_tips { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::report_awesome`]. - report_awesome { - reason: ::std::vec::Vec<::core::primitive::u8>, - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::retract_tip`]. - retract_tip { hash: my_types::primitive_types::H256 }, - ///See [`Pallet::tip_new`]. - tip_new { - reason: ::std::vec::Vec<::core::primitive::u8>, - who: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - tip_value: ::core::primitive::u128, - }, - ///See [`Pallet::tip`]. - tip { - hash: my_types::primitive_types::H256, - tip_value: ::core::primitive::u128, - }, - ///See [`Pallet::close_tip`]. - close_tip { hash: my_types::primitive_types::H256 }, - ///See [`Pallet::slash_tip`]. - slash_tip { hash: my_types::primitive_types::H256 }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The reason given is just too big. - ReasonTooBig, - ///The tip was already found/started. - AlreadyKnown, - ///The tip hash is unknown. - UnknownTip, - ///The account attempting to retract the tip is not the finder of the tip. - NotFinder, - ///The tip cannot be claimed/closed because there are not enough tippers yet. - StillOpen, - ///The tip cannot be claimed/closed because it's still in the countdown period. - Premature, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A new tip suggestion has been opened. - NewTip { tip_hash: my_types::primitive_types::H256 }, - ///A tip suggestion has reached threshold and is closing. - TipClosing { tip_hash: my_types::primitive_types::H256 }, - ///A tip suggestion has been closed. - TipClosed { - tip_hash: my_types::primitive_types::H256, - who: my_types::sp_core::crypto::AccountId32, - payout: ::core::primitive::u128, - }, - ///A tip suggestion has been retracted. - TipRetracted { tip_hash: my_types::primitive_types::H256 }, - ///A tip suggestion has been slashed. - TipSlashed { - tip_hash: my_types::primitive_types::H256, - finder: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - }, - } - } - #[derive(Clone, Debug)] - pub struct OpenTip<_0, _1, _2, _3> { - pub reason: _3, - pub who: _0, - pub finder: _0, - pub deposit: _1, - pub closes: ::core::option::Option<_2>, - pub tips: ::std::vec::Vec<(_0, _1)>, - pub finders_fee: ::core::primitive::bool, - } - } - pub mod pallet_transaction_payment { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - ///has been paid by `who`. - TransactionFeePaid { - who: my_types::sp_core::crypto::AccountId32, - actual_fee: ::core::primitive::u128, - tip: ::core::primitive::u128, - }, - } - } - pub mod types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct FeeDetails<_0> { - pub inclusion_fee: ::core::option::Option< - my_types::pallet_transaction_payment::types::InclusionFee<_0>, - >, - pub tip: _0, - } - #[derive(Clone, Debug)] - pub struct InclusionFee<_0> { - pub base_fee: _0, - pub len_fee: _0, - pub adjusted_weight_fee: _0, - } - #[derive(Clone, Debug)] - pub struct RuntimeDispatchInfo<_0, _1> { - pub weight: _1, - pub class: my_types::frame_support::dispatch::DispatchClass, - pub partial_fee: _0, - } - } - #[derive(Clone, Debug)] - pub struct ChargeTransactionPayment(pub ::core::primitive::u128); - #[derive(Clone, Debug)] - pub enum Releases { - V1Ancient, - V2, - } - } - pub mod pallet_treasury { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::propose_spend`]. - propose_spend { - value: ::core::primitive::u128, - beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::reject_proposal`]. - reject_proposal { proposal_id: ::core::primitive::u32 }, - ///See [`Pallet::approve_proposal`]. - approve_proposal { proposal_id: ::core::primitive::u32 }, - ///See [`Pallet::spend`]. - spend { - amount: ::core::primitive::u128, - beneficiary: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::remove_approval`]. - remove_approval { proposal_id: ::core::primitive::u32 }, - } - #[derive(Clone, Debug)] - ///Error for the treasury pallet. - pub enum Error { - ///Proposer's balance is too low. - InsufficientProposersBalance, - ///No proposal or bounty at that index. - InvalidIndex, - ///Too many approvals in the queue. - TooManyApprovals, - ///The spend origin is valid but the amount it is allowed to spend is lower than the - ///amount to be spent. - InsufficientPermission, - ///Proposal has not been approved. - ProposalNotApproved, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///New proposal. - Proposed { proposal_index: ::core::primitive::u32 }, - ///We have ended a spend period and will now allocate funds. - Spending { budget_remaining: ::core::primitive::u128 }, - ///Some funds have been allocated. - Awarded { - proposal_index: ::core::primitive::u32, - award: ::core::primitive::u128, - account: my_types::sp_core::crypto::AccountId32, - }, - ///A proposal was rejected; funds were slashed. - Rejected { - proposal_index: ::core::primitive::u32, - slashed: ::core::primitive::u128, - }, - ///Some of our funds have been burnt. - Burnt { burnt_funds: ::core::primitive::u128 }, - ///Spending has finished; this is the amount that rolls over until next spend. - Rollover { rollover_balance: ::core::primitive::u128 }, - ///Some funds have been deposited. - Deposit { value: ::core::primitive::u128 }, - ///A new spend proposal has been approved. - SpendApproved { - proposal_index: ::core::primitive::u32, - amount: ::core::primitive::u128, - beneficiary: my_types::sp_core::crypto::AccountId32, - }, - ///The inactive funds of the pallet have been updated. - UpdatedInactive { - reactivated: ::core::primitive::u128, - deactivated: ::core::primitive::u128, - }, - } - } - #[derive(Clone, Debug)] - pub struct Proposal<_0, _1> { - pub proposer: _0, - pub value: _1, - pub beneficiary: _0, - pub bond: _1, - } - } - pub mod pallet_utility { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::batch`]. - batch { - calls: ::std::vec::Vec, - }, - ///See [`Pallet::as_derivative`]. - as_derivative { - index: ::core::primitive::u16, - call: ::std::boxed::Box, - }, - ///See [`Pallet::batch_all`]. - batch_all { - calls: ::std::vec::Vec, - }, - ///See [`Pallet::dispatch_as`]. - dispatch_as { - as_origin: ::std::boxed::Box< - my_types::polkadot_runtime::OriginCaller, - >, - call: ::std::boxed::Box, - }, - ///See [`Pallet::force_batch`]. - force_batch { - calls: ::std::vec::Vec, - }, - ///See [`Pallet::with_weight`]. - with_weight { - call: ::std::boxed::Box, - weight: my_types::sp_weights::weight_v2::Weight, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Too many calls batched. - TooManyCalls, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Batch of dispatches did not complete fully. Index of first failing dispatch given, as - ///well as the error. - BatchInterrupted { - index: ::core::primitive::u32, - error: my_types::sp_runtime::DispatchError, - }, - ///Batch of dispatches completed fully with no error. - BatchCompleted, - ///Batch of dispatches completed but has errors. - BatchCompletedWithErrors, - ///A single item within a Batch of dispatches has completed with no error. - ItemCompleted, - ///A single item within a Batch of dispatches has completed with error. - ItemFailed { error: my_types::sp_runtime::DispatchError }, - ///A call was dispatched. - DispatchedAs { - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - } - } - } - pub mod pallet_vesting { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::vest`]. - vest, - ///See [`Pallet::vest_other`]. - vest_other { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - }, - ///See [`Pallet::vested_transfer`]. - vested_transfer { - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - schedule: my_types::pallet_vesting::vesting_info::VestingInfo< - ::core::primitive::u128, - ::core::primitive::u32, - >, - }, - ///See [`Pallet::force_vested_transfer`]. - force_vested_transfer { - source: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - target: my_types::sp_runtime::multiaddress::MultiAddress< - my_types::sp_core::crypto::AccountId32, - (), - >, - schedule: my_types::pallet_vesting::vesting_info::VestingInfo< - ::core::primitive::u128, - ::core::primitive::u32, - >, - }, - ///See [`Pallet::merge_schedules`]. - merge_schedules { - schedule1_index: ::core::primitive::u32, - schedule2_index: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///Error for the vesting pallet. - pub enum Error { - ///The account given is not vesting. - NotVesting, - ///The account already has `MaxVestingSchedules` count of schedules and thus - ///cannot add another one. Consider merging existing schedules in order to add another. - AtMaxVestingSchedules, - ///Amount being transferred is too low to create a vesting schedule. - AmountLow, - ///An index was out of bounds of the vesting schedules. - ScheduleIndexOutOfBounds, - ///Failed to create a new schedule because some parameter was invalid. - InvalidScheduleParams, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///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). - VestingUpdated { - account: my_types::sp_core::crypto::AccountId32, - unvested: ::core::primitive::u128, - }, - ///An \[account\] has become fully vested. - VestingCompleted { account: my_types::sp_core::crypto::AccountId32 }, - } - } - pub mod vesting_info { - use super::my_types; - #[derive(Clone, Debug)] - pub struct VestingInfo<_0, _1> { - pub locked: _0, - pub per_block: _0, - pub starting_block: _1, - } - } - #[derive(Clone, Debug)] - pub enum Releases { - V0, - V1, - } - } - pub mod pallet_whitelist { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::whitelist_call`]. - whitelist_call { call_hash: my_types::primitive_types::H256 }, - ///See [`Pallet::remove_whitelisted_call`]. - remove_whitelisted_call { call_hash: my_types::primitive_types::H256 }, - ///See [`Pallet::dispatch_whitelisted_call`]. - dispatch_whitelisted_call { - call_hash: my_types::primitive_types::H256, - call_encoded_len: ::core::primitive::u32, - call_weight_witness: my_types::sp_weights::weight_v2::Weight, - }, - ///See [`Pallet::dispatch_whitelisted_call_with_preimage`]. - dispatch_whitelisted_call_with_preimage { - call: ::std::boxed::Box, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The preimage of the call hash could not be loaded. - UnavailablePreImage, - ///The call could not be decoded. - UndecodableCall, - ///The weight of the decoded call was higher than the witness. - InvalidCallWeightWitness, - ///The call was not whitelisted. - CallIsNotWhitelisted, - ///The call was already whitelisted; No-Op. - CallAlreadyWhitelisted, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - CallWhitelisted { call_hash: my_types::primitive_types::H256 }, - WhitelistedCallRemoved { call_hash: my_types::primitive_types::H256 }, - WhitelistedCallDispatched { - call_hash: my_types::primitive_types::H256, - result: ::core::result::Result< - my_types::frame_support::dispatch::PostDispatchInfo, - my_types::sp_runtime::DispatchErrorWithPostInfo< - my_types::frame_support::dispatch::PostDispatchInfo, - >, - >, - }, - } - } - } - pub mod pallet_xcm { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::send`]. - send { - dest: ::std::boxed::Box, - message: ::std::boxed::Box, - }, - ///See [`Pallet::teleport_assets`]. - teleport_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box< - my_types::xcm::VersionedMultiLocation, - >, - assets: ::std::boxed::Box, - fee_asset_item: ::core::primitive::u32, - }, - ///See [`Pallet::reserve_transfer_assets`]. - reserve_transfer_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box< - my_types::xcm::VersionedMultiLocation, - >, - assets: ::std::boxed::Box, - fee_asset_item: ::core::primitive::u32, - }, - ///See [`Pallet::execute`]. - execute { - message: ::std::boxed::Box, - max_weight: my_types::sp_weights::weight_v2::Weight, - }, - ///See [`Pallet::force_xcm_version`]. - force_xcm_version { - location: ::std::boxed::Box< - my_types::xcm::v3::multilocation::MultiLocation, - >, - version: ::core::primitive::u32, - }, - ///See [`Pallet::force_default_xcm_version`]. - force_default_xcm_version { - maybe_xcm_version: ::core::option::Option<::core::primitive::u32>, - }, - ///See [`Pallet::force_subscribe_version_notify`]. - force_subscribe_version_notify { - location: ::std::boxed::Box, - }, - ///See [`Pallet::force_unsubscribe_version_notify`]. - force_unsubscribe_version_notify { - location: ::std::boxed::Box, - }, - ///See [`Pallet::limited_reserve_transfer_assets`]. - limited_reserve_transfer_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box< - my_types::xcm::VersionedMultiLocation, - >, - assets: ::std::boxed::Box, - fee_asset_item: ::core::primitive::u32, - weight_limit: my_types::xcm::v3::WeightLimit, - }, - ///See [`Pallet::limited_teleport_assets`]. - limited_teleport_assets { - dest: ::std::boxed::Box, - beneficiary: ::std::boxed::Box< - my_types::xcm::VersionedMultiLocation, - >, - assets: ::std::boxed::Box, - fee_asset_item: ::core::primitive::u32, - weight_limit: my_types::xcm::v3::WeightLimit, - }, - ///See [`Pallet::force_suspension`]. - force_suspension { suspended: ::core::primitive::bool }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The desired destination was unreachable, generally because there is a no way of routing - ///to it. - Unreachable, - ///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. - SendFailure, - ///The message execution fails the filter. - Filtered, - ///The message's weight could not be determined. - UnweighableMessage, - ///The destination `MultiLocation` provided cannot be inverted. - DestinationNotInvertible, - ///The assets to be sent are empty. - Empty, - ///Could not re-anchor the assets to declare the fees for the destination chain. - CannotReanchor, - ///Too many assets have been attempted for transfer. - TooManyAssets, - ///Origin is invalid for sending. - InvalidOrigin, - ///The version of the `Versioned` value used is not able to be interpreted. - BadVersion, - ///The given location could not be used (e.g. because it cannot be expressed in the - ///desired version of XCM). - BadLocation, - ///The referenced subscription could not be found. - NoSubscription, - ///The location is invalid since it already has a subscription from us. - AlreadySubscribed, - ///Invalid asset for the operation. - InvalidAsset, - ///The owner does not own (all) of the asset that they wish to do the operation on. - LowBalance, - ///The asset owner has too many locks on the asset. - TooManyLocks, - ///The given account is not an identifiable sovereign account for any location. - AccountNotSovereign, - ///The operation required fees to be paid which the initiator could not meet. - FeesNotMet, - ///A remote lock with the corresponding data could not be found. - LockNotFound, - ///The unlock operation cannot succeed because there are still consumers of the lock. - InUse, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Execution of an XCM message was attempted. - Attempted { outcome: my_types::xcm::v3::traits::Outcome }, - ///A XCM message was sent. - Sent { - origin: my_types::xcm::v3::multilocation::MultiLocation, - destination: my_types::xcm::v3::multilocation::MultiLocation, - message: my_types::xcm::v3::Xcm, - message_id: [::core::primitive::u8; 32usize], - }, - ///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. - UnexpectedResponse { - origin: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - }, - ///Query response has been received and is ready for taking with `take_response`. There is - ///no registered notification call. - ResponseReady { - query_id: ::core::primitive::u64, - response: my_types::xcm::v3::Response, - }, - ///Query response has been received and query is removed. The registered notification has - ///been dispatched and executed successfully. - Notified { - query_id: ::core::primitive::u64, - pallet_index: ::core::primitive::u8, - call_index: ::core::primitive::u8, - }, - ///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. - NotifyOverweight { - query_id: ::core::primitive::u64, - pallet_index: ::core::primitive::u8, - call_index: ::core::primitive::u8, - actual_weight: my_types::sp_weights::weight_v2::Weight, - max_budgeted_weight: my_types::sp_weights::weight_v2::Weight, - }, - ///Query response has been received and query is removed. There was a general error with - ///dispatching the notification call. - NotifyDispatchError { - query_id: ::core::primitive::u64, - pallet_index: ::core::primitive::u8, - call_index: ::core::primitive::u8, - }, - ///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)`. - NotifyDecodeFailed { - query_id: ::core::primitive::u64, - pallet_index: ::core::primitive::u8, - call_index: ::core::primitive::u8, - }, - ///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. - InvalidResponder { - origin: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - expected_location: ::core::option::Option< - my_types::xcm::v3::multilocation::MultiLocation, - >, - }, - ///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. - InvalidResponderVersion { - origin: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - }, - ///Received query response has been read and removed. - ResponseTaken { query_id: ::core::primitive::u64 }, - ///Some assets have been placed in an asset trap. - AssetsTrapped { - hash: my_types::primitive_types::H256, - origin: my_types::xcm::v3::multilocation::MultiLocation, - assets: my_types::xcm::VersionedMultiAssets, - }, - ///An XCM version change notification message has been attempted to be sent. - /// - ///The cost of sending it (borne by the chain) is included. - VersionChangeNotified { - destination: my_types::xcm::v3::multilocation::MultiLocation, - result: ::core::primitive::u32, - cost: my_types::xcm::v3::multiasset::MultiAssets, - message_id: [::core::primitive::u8; 32usize], - }, - ///The supported version of a location has been changed. This might be through an - ///automatic notification or a manual intervention. - SupportedVersionChanged { - location: my_types::xcm::v3::multilocation::MultiLocation, - version: ::core::primitive::u32, - }, - ///A given location which had a version change subscription was dropped owing to an error - ///sending the notification to it. - NotifyTargetSendFail { - location: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - error: my_types::xcm::v3::traits::Error, - }, - ///A given location which had a version change subscription was dropped owing to an error - ///migrating the location to our new XCM format. - NotifyTargetMigrationFail { - location: my_types::xcm::VersionedMultiLocation, - query_id: ::core::primitive::u64, - }, - ///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. - InvalidQuerierVersion { - origin: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - }, - ///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. - InvalidQuerier { - origin: my_types::xcm::v3::multilocation::MultiLocation, - query_id: ::core::primitive::u64, - expected_querier: my_types::xcm::v3::multilocation::MultiLocation, - maybe_actual_querier: ::core::option::Option< - my_types::xcm::v3::multilocation::MultiLocation, - >, - }, - ///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. - VersionNotifyStarted { - destination: my_types::xcm::v3::multilocation::MultiLocation, - cost: my_types::xcm::v3::multiasset::MultiAssets, - message_id: [::core::primitive::u8; 32usize], - }, - ///We have requested that a remote chain send us XCM version change notifications. - VersionNotifyRequested { - destination: my_types::xcm::v3::multilocation::MultiLocation, - cost: my_types::xcm::v3::multiasset::MultiAssets, - message_id: [::core::primitive::u8; 32usize], - }, - ///We have requested that a remote chain stops sending us XCM version change notifications. - VersionNotifyUnrequested { - destination: my_types::xcm::v3::multilocation::MultiLocation, - cost: my_types::xcm::v3::multiasset::MultiAssets, - message_id: [::core::primitive::u8; 32usize], - }, - ///Fees were paid from a location for an operation (often for using `SendXcm`). - FeesPaid { - paying: my_types::xcm::v3::multilocation::MultiLocation, - fees: my_types::xcm::v3::multiasset::MultiAssets, - }, - ///Some assets have been claimed from an asset trap - AssetsClaimed { - hash: my_types::primitive_types::H256, - origin: my_types::xcm::v3::multilocation::MultiLocation, - assets: my_types::xcm::VersionedMultiAssets, - }, - } - #[derive(Clone, Debug)] - pub enum Origin { - Xcm(my_types::xcm::v3::multilocation::MultiLocation), - Response(my_types::xcm::v3::multilocation::MultiLocation), - } - #[derive(Clone, Debug)] - pub enum QueryStatus<_0> { - Pending { - responder: my_types::xcm::VersionedMultiLocation, - maybe_match_querier: ::core::option::Option< - my_types::xcm::VersionedMultiLocation, - >, - maybe_notify: ::core::option::Option< - (::core::primitive::u8, ::core::primitive::u8), - >, - timeout: _0, - }, - VersionNotifier { - origin: my_types::xcm::VersionedMultiLocation, - is_active: ::core::primitive::bool, - }, - Ready { response: my_types::xcm::VersionedResponse, at: _0 }, - } - #[derive(Clone, Debug)] - pub struct RemoteLockedFungibleRecord<_0> { - pub amount: ::core::primitive::u128, - pub owner: my_types::xcm::VersionedMultiLocation, - pub locker: my_types::xcm::VersionedMultiLocation, - pub consumers: my_types::bounded_collections::bounded_vec::BoundedVec< - (_0, ::core::primitive::u128), - >, - } - #[derive(Clone, Debug)] - pub enum VersionMigrationStage { - MigrateSupportedVersion, - MigrateVersionNotifiers, - NotifyCurrentTargets( - ::core::option::Option<::std::vec::Vec<::core::primitive::u8>>, - ), - MigrateAndNotifyOldTargets, - } - } - } - pub mod polkadot_core_primitives { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CandidateHash(pub my_types::primitive_types::H256); - #[derive(Clone, Debug)] - pub struct InboundDownwardMessage<_0> { - pub sent_at: _0, - pub msg: ::std::vec::Vec<::core::primitive::u8>, - } - #[derive(Clone, Debug)] - pub struct InboundHrmpMessage<_0> { - pub sent_at: _0, - pub data: ::std::vec::Vec<::core::primitive::u8>, - } - #[derive(Clone, Debug)] - pub struct OutboundHrmpMessage<_0> { - pub recipient: _0, - pub data: ::std::vec::Vec<::core::primitive::u8>, - } - } - pub mod polkadot_parachain { - use super::my_types; - pub mod primitives { - use super::my_types; - #[derive(Clone, Debug)] - pub struct HeadData(pub ::std::vec::Vec<::core::primitive::u8>); - #[derive(Clone, Debug)] - pub struct HrmpChannelId { - pub sender: my_types::polkadot_parachain::primitives::Id, - pub recipient: my_types::polkadot_parachain::primitives::Id, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Id(pub ::core::primitive::u32); - #[derive(Clone, Debug)] - pub struct ValidationCode(pub ::std::vec::Vec<::core::primitive::u8>); - #[derive(Clone, Debug)] - pub struct ValidationCodeHash(pub my_types::primitive_types::H256); - } - } - pub mod polkadot_primitives { - use super::my_types; - pub mod v5 { - use super::my_types; - pub mod assignment_app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - } - pub mod collator_app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - #[derive(Clone, Debug)] - pub struct Signature(pub my_types::sp_core::sr25519::Signature); - } - pub mod executor_params { - use super::my_types; - #[derive(Clone, Debug)] - pub enum ExecutorParam { - MaxMemoryPages(::core::primitive::u32), - StackLogicalMax(::core::primitive::u32), - StackNativeMax(::core::primitive::u32), - PrecheckingMaxMemory(::core::primitive::u64), - PvfPrepTimeout( - my_types::polkadot_primitives::v5::PvfPrepTimeoutKind, - ::core::primitive::u64, - ), - PvfExecTimeout( - my_types::polkadot_primitives::v5::PvfExecTimeoutKind, - ::core::primitive::u64, - ), - WasmExtBulkMemory, - } - #[derive(Clone, Debug)] - pub struct ExecutorParams( - pub ::std::vec::Vec< - my_types::polkadot_primitives::v5::executor_params::ExecutorParam, - >, - ); - } - pub mod signed { - use super::my_types; - #[derive(Clone, Debug)] - pub struct UncheckedSigned<_0, _1> { - pub payload: _0, - pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, - pub signature: my_types::polkadot_primitives::v5::validator_app::Signature, - pub __ignore: ::core::marker::PhantomData<_1>, - } - } - pub mod slashing { - use super::my_types; - #[derive(Clone, Debug)] - pub struct DisputeProof { - pub time_slot: my_types::polkadot_primitives::v5::slashing::DisputesTimeSlot, - pub kind: my_types::polkadot_primitives::v5::slashing::SlashingOffenceKind, - pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, - pub validator_id: my_types::polkadot_primitives::v5::validator_app::Public, - } - #[derive(Clone, Debug)] - pub struct DisputesTimeSlot { - pub session_index: ::core::primitive::u32, - pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, - } - #[derive(Clone, Debug)] - pub struct OpaqueKeyOwnershipProof( - pub ::std::vec::Vec<::core::primitive::u8>, - ); - #[derive(Clone, Debug)] - pub struct PendingSlashes { - pub keys: ::std::collections::BTreeMap< - my_types::polkadot_primitives::v5::ValidatorIndex, - my_types::polkadot_primitives::v5::validator_app::Public, - >, - pub kind: my_types::polkadot_primitives::v5::slashing::SlashingOffenceKind, - } - #[derive(Clone, Debug)] - pub enum SlashingOffenceKind { - ForInvalid, - AgainstValid, - } - } - pub mod validator_app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - #[derive(Clone, Debug)] - pub struct Signature(pub my_types::sp_core::sr25519::Signature); - } - #[derive(Clone, Debug)] - pub struct AvailabilityBitfield( - pub DecodedBits<::core::primitive::u8, my_types::bitvec::order::Lsb0>, - ); - #[derive(Clone, Debug)] - pub struct BackedCandidate<_0> { - pub candidate: my_types::polkadot_primitives::v5::CommittedCandidateReceipt< - _0, - >, - pub validity_votes: ::std::vec::Vec< - my_types::polkadot_primitives::v5::ValidityAttestation, - >, - pub validator_indices: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - } - #[derive(Clone, Debug)] - pub struct CandidateCommitments<_0> { - pub upward_messages: my_types::bounded_collections::bounded_vec::BoundedVec< - ::std::vec::Vec<::core::primitive::u8>, - >, - pub horizontal_messages: my_types::bounded_collections::bounded_vec::BoundedVec< - my_types::polkadot_core_primitives::OutboundHrmpMessage< - my_types::polkadot_parachain::primitives::Id, - >, - >, - pub new_validation_code: ::core::option::Option< - my_types::polkadot_parachain::primitives::ValidationCode, - >, - pub head_data: my_types::polkadot_parachain::primitives::HeadData, - pub processed_downward_messages: ::core::primitive::u32, - pub hrmp_watermark: _0, - } - #[derive(Clone, Debug)] - pub struct CandidateDescriptor<_0> { - pub para_id: my_types::polkadot_parachain::primitives::Id, - pub relay_parent: _0, - pub collator: my_types::polkadot_primitives::v5::collator_app::Public, - pub persisted_validation_data_hash: my_types::primitive_types::H256, - pub pov_hash: my_types::primitive_types::H256, - pub erasure_root: my_types::primitive_types::H256, - pub signature: my_types::polkadot_primitives::v5::collator_app::Signature, - pub para_head: my_types::primitive_types::H256, - pub validation_code_hash: my_types::polkadot_parachain::primitives::ValidationCodeHash, - } - #[derive(Clone, Debug)] - pub enum CandidateEvent<_0> { - CandidateBacked( - my_types::polkadot_primitives::v5::CandidateReceipt<_0>, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - my_types::polkadot_primitives::v5::GroupIndex, - ), - CandidateIncluded( - my_types::polkadot_primitives::v5::CandidateReceipt<_0>, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - my_types::polkadot_primitives::v5::GroupIndex, - ), - CandidateTimedOut( - my_types::polkadot_primitives::v5::CandidateReceipt<_0>, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - ), - } - #[derive(Clone, Debug)] - pub struct CandidateReceipt<_0> { - pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< - _0, - >, - pub commitments_hash: my_types::primitive_types::H256, - } - #[derive(Clone, Debug)] - pub struct CommittedCandidateReceipt<_0> { - pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< - _0, - >, - pub commitments: my_types::polkadot_primitives::v5::CandidateCommitments< - ::core::primitive::u32, - >, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct CoreIndex(pub ::core::primitive::u32); - #[derive(Clone, Debug)] - pub enum CoreOccupied { - Parathread(my_types::polkadot_primitives::v5::ParathreadEntry), - Parachain, - } - #[derive(Clone, Debug)] - pub enum CoreState<_0, _1> { - Occupied(my_types::polkadot_primitives::v5::OccupiedCore<_0, _1>), - Scheduled(my_types::polkadot_primitives::v5::ScheduledCore), - Free, - } - #[derive(Clone, Debug)] - pub struct DisputeState<_0> { - pub validators_for: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub validators_against: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub start: _0, - pub concluded_at: ::core::option::Option<_0>, - } - #[derive(Clone, Debug)] - pub enum DisputeStatement { - Valid(my_types::polkadot_primitives::v5::ValidDisputeStatementKind), - Invalid(my_types::polkadot_primitives::v5::InvalidDisputeStatementKind), - } - #[derive(Clone, Debug)] - pub struct DisputeStatementSet { - pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, - pub session: ::core::primitive::u32, - pub statements: ::std::vec::Vec< - ( - my_types::polkadot_primitives::v5::DisputeStatement, - my_types::polkadot_primitives::v5::ValidatorIndex, - my_types::polkadot_primitives::v5::validator_app::Signature, - ), - >, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct GroupIndex(pub ::core::primitive::u32); - #[derive(Clone, Debug)] - pub struct GroupRotationInfo<_0> { - pub session_start_block: _0, - pub group_rotation_frequency: _0, - pub now: _0, - } - #[derive(Clone, Debug)] - pub struct IndexedVec<_0, _1>( - pub ::std::vec::Vec<_1>, - pub ::core::marker::PhantomData<_0>, - ); - #[derive(Clone, Debug)] - pub struct InherentData<_0> { - pub bitfields: ::std::vec::Vec< - my_types::polkadot_primitives::v5::signed::UncheckedSigned< - my_types::polkadot_primitives::v5::AvailabilityBitfield, - my_types::polkadot_primitives::v5::AvailabilityBitfield, - >, - >, - pub backed_candidates: ::std::vec::Vec< - my_types::polkadot_primitives::v5::BackedCandidate< - my_types::primitive_types::H256, - >, - >, - pub disputes: ::std::vec::Vec< - my_types::polkadot_primitives::v5::DisputeStatementSet, - >, - pub parent_header: _0, - } - #[derive(Clone, Debug)] - pub enum InvalidDisputeStatementKind { - Explicit, - } - #[derive(Clone, Debug)] - pub struct OccupiedCore<_0, _1> { - pub next_up_on_available: ::core::option::Option< - my_types::polkadot_primitives::v5::ScheduledCore, - >, - pub occupied_since: _1, - pub time_out_at: _1, - pub next_up_on_time_out: ::core::option::Option< - my_types::polkadot_primitives::v5::ScheduledCore, - >, - pub availability: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub group_responsible: my_types::polkadot_primitives::v5::GroupIndex, - pub candidate_hash: my_types::polkadot_core_primitives::CandidateHash, - pub candidate_descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< - _0, - >, - } - #[derive(Clone, Debug)] - pub enum OccupiedCoreAssumption { - Included, - TimedOut, - Free, - } - #[derive(Clone, Debug)] - pub struct ParathreadClaim( - pub my_types::polkadot_parachain::primitives::Id, - pub my_types::polkadot_primitives::v5::collator_app::Public, - ); - #[derive(Clone, Debug)] - pub struct ParathreadEntry { - pub claim: my_types::polkadot_primitives::v5::ParathreadClaim, - pub retries: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct PersistedValidationData<_0, _1> { - pub parent_head: my_types::polkadot_parachain::primitives::HeadData, - pub relay_parent_number: _1, - pub relay_parent_storage_root: _0, - pub max_pov_size: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct PvfCheckStatement { - pub accept: ::core::primitive::bool, - pub subject: my_types::polkadot_parachain::primitives::ValidationCodeHash, - pub session_index: ::core::primitive::u32, - pub validator_index: my_types::polkadot_primitives::v5::ValidatorIndex, - } - #[derive(Clone, Debug)] - pub enum PvfExecTimeoutKind { - Backing, - Approval, - } - #[derive(Clone, Debug)] - pub enum PvfPrepTimeoutKind { - Precheck, - Lenient, - } - #[derive(Clone, Debug)] - pub struct ScheduledCore { - pub para_id: my_types::polkadot_parachain::primitives::Id, - pub collator: ::core::option::Option< - my_types::polkadot_primitives::v5::collator_app::Public, - >, - } - #[derive(Clone, Debug)] - pub struct ScrapedOnChainVotes<_0> { - pub session: ::core::primitive::u32, - pub backing_validators_per_candidate: ::std::vec::Vec< - ( - my_types::polkadot_primitives::v5::CandidateReceipt<_0>, - ::std::vec::Vec< - ( - my_types::polkadot_primitives::v5::ValidatorIndex, - my_types::polkadot_primitives::v5::ValidityAttestation, - ), - >, - ), - >, - pub disputes: ::std::vec::Vec< - my_types::polkadot_primitives::v5::DisputeStatementSet, - >, - } - #[derive(Clone, Debug)] - pub struct SessionInfo { - pub active_validator_indices: ::std::vec::Vec< - my_types::polkadot_primitives::v5::ValidatorIndex, - >, - pub random_seed: [::core::primitive::u8; 32usize], - pub dispute_period: ::core::primitive::u32, - pub validators: my_types::polkadot_primitives::v5::IndexedVec< - my_types::polkadot_primitives::v5::ValidatorIndex, - my_types::polkadot_primitives::v5::validator_app::Public, - >, - pub discovery_keys: ::std::vec::Vec< - my_types::sp_authority_discovery::app::Public, - >, - pub assignment_keys: ::std::vec::Vec< - my_types::polkadot_primitives::v5::assignment_app::Public, - >, - pub validator_groups: my_types::polkadot_primitives::v5::IndexedVec< - my_types::polkadot_primitives::v5::GroupIndex, - ::std::vec::Vec, - >, - pub n_cores: ::core::primitive::u32, - pub zeroth_delay_tranche_width: ::core::primitive::u32, - pub relay_vrf_modulo_samples: ::core::primitive::u32, - pub n_delay_tranches: ::core::primitive::u32, - pub no_show_slots: ::core::primitive::u32, - pub needed_approvals: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub enum UpgradeGoAhead { - Abort, - GoAhead, - } - #[derive(Clone, Debug)] - pub enum UpgradeRestriction { - Present, - } - #[derive(Clone, Debug)] - pub enum ValidDisputeStatementKind { - Explicit, - BackingSeconded(my_types::primitive_types::H256), - BackingValid(my_types::primitive_types::H256), - ApprovalChecking, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct ValidatorIndex(pub ::core::primitive::u32); - #[derive(Clone, Debug)] - pub enum ValidityAttestation { - Implicit(my_types::polkadot_primitives::v5::validator_app::Signature), - Explicit(my_types::polkadot_primitives::v5::validator_app::Signature), - } - } - pub mod vstaging { - use super::my_types; - #[derive(Clone, Debug)] - pub struct AsyncBackingParams { - pub max_candidate_depth: ::core::primitive::u32, - pub allowed_ancestry_len: ::core::primitive::u32, - } - } - } - pub mod polkadot_runtime { - use super::my_types; - pub mod governance { - use super::my_types; - pub mod origins { - use super::my_types; - pub mod pallet_custom_origins { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Origin { - StakingAdmin, - Treasurer, - FellowshipAdmin, - GeneralAdmin, - AuctionAdmin, - LeaseAdmin, - ReferendumCanceller, - ReferendumKiller, - SmallTipper, - BigTipper, - SmallSpender, - MediumSpender, - BigSpender, - WhitelistedCaller, - } - } - } - } - #[derive(Clone, Debug)] - pub struct NposCompactSolution16 { - pub votes1: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes2: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - ( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ), - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes3: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 2usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes4: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 3usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes5: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 4usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes6: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 5usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes7: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 6usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes8: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 7usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes9: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 8usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes10: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 9usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes11: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 10usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes12: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 11usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes13: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 12usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes14: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 13usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes15: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 14usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - pub votes16: ::std::vec::Vec< - ( - parity_scale_codec::Compact<::core::primitive::u32>, - [( - parity_scale_codec::Compact<::core::primitive::u16>, - parity_scale_codec::Compact< - my_types::sp_arithmetic::per_things::PerU16, - >, - ); 15usize], - parity_scale_codec::Compact<::core::primitive::u16>, - ), - >, - } - #[derive(Clone, Debug)] - pub enum OriginCaller { - system( - my_types::frame_support::dispatch::RawOrigin< - my_types::sp_core::crypto::AccountId32, - >, - ), - Council( - my_types::pallet_collective::RawOrigin< - my_types::sp_core::crypto::AccountId32, - >, - ), - TechnicalCommittee( - my_types::pallet_collective::RawOrigin< - my_types::sp_core::crypto::AccountId32, - >, - ), - Origins( - my_types::polkadot_runtime::governance::origins::pallet_custom_origins::Origin, - ), - ParachainsOrigin( - my_types::polkadot_runtime_parachains::origin::pallet::Origin, - ), - XcmPallet(my_types::pallet_xcm::pallet::Origin), - Void(my_types::sp_core::Void), - } - #[derive(Clone, Debug)] - pub enum ProxyType { - Any, - NonTransfer, - Governance, - Staking, - IdentityJudgement, - CancelProxy, - Auction, - NominationPools, - } - #[derive(Clone, Debug)] - pub struct Runtime; - #[derive(Clone, Debug)] - pub enum RuntimeCall { - System(my_types::frame_system::pallet::Call), - Scheduler(my_types::pallet_scheduler::pallet::Call), - Preimage(my_types::pallet_preimage::pallet::Call), - Babe(my_types::pallet_babe::pallet::Call), - Timestamp(my_types::pallet_timestamp::pallet::Call), - Indices(my_types::pallet_indices::pallet::Call), - Balances(my_types::pallet_balances::pallet::Call), - Staking(my_types::pallet_staking::pallet::pallet::Call), - Session(my_types::pallet_session::pallet::Call), - Grandpa(my_types::pallet_grandpa::pallet::Call), - ImOnline(my_types::pallet_im_online::pallet::Call), - Democracy(my_types::pallet_democracy::pallet::Call), - Council(my_types::pallet_collective::pallet::Call), - TechnicalCommittee(my_types::pallet_collective::pallet::Call), - PhragmenElection(my_types::pallet_elections_phragmen::pallet::Call), - TechnicalMembership(my_types::pallet_membership::pallet::Call), - Treasury(my_types::pallet_treasury::pallet::Call), - ConvictionVoting(my_types::pallet_conviction_voting::pallet::Call), - Referenda(my_types::pallet_referenda::pallet::Call), - Whitelist(my_types::pallet_whitelist::pallet::Call), - Claims(my_types::polkadot_runtime_common::claims::pallet::Call), - Vesting(my_types::pallet_vesting::pallet::Call), - Utility(my_types::pallet_utility::pallet::Call), - Identity(my_types::pallet_identity::pallet::Call), - Proxy(my_types::pallet_proxy::pallet::Call), - Multisig(my_types::pallet_multisig::pallet::Call), - Bounties(my_types::pallet_bounties::pallet::Call), - ChildBounties(my_types::pallet_child_bounties::pallet::Call), - Tips(my_types::pallet_tips::pallet::Call), - ElectionProviderMultiPhase( - my_types::pallet_election_provider_multi_phase::pallet::Call, - ), - VoterList(my_types::pallet_bags_list::pallet::Call), - NominationPools(my_types::pallet_nomination_pools::pallet::Call), - FastUnstake(my_types::pallet_fast_unstake::pallet::Call), - Configuration( - my_types::polkadot_runtime_parachains::configuration::pallet::Call, - ), - ParasShared(my_types::polkadot_runtime_parachains::shared::pallet::Call), - ParaInclusion( - my_types::polkadot_runtime_parachains::inclusion::pallet::Call, - ), - ParaInherent( - my_types::polkadot_runtime_parachains::paras_inherent::pallet::Call, - ), - Paras(my_types::polkadot_runtime_parachains::paras::pallet::Call), - Initializer( - my_types::polkadot_runtime_parachains::initializer::pallet::Call, - ), - Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Call), - ParasDisputes(my_types::polkadot_runtime_parachains::disputes::pallet::Call), - ParasSlashing( - my_types::polkadot_runtime_parachains::disputes::slashing::pallet::Call, - ), - Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Call), - Slots(my_types::polkadot_runtime_common::slots::pallet::Call), - Auctions(my_types::polkadot_runtime_common::auctions::pallet::Call), - Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Call), - XcmPallet(my_types::pallet_xcm::pallet::Call), - MessageQueue(my_types::pallet_message_queue::pallet::Call), - } - #[derive(Clone, Debug)] - pub enum RuntimeError { - System(my_types::frame_system::pallet::Error), - Scheduler(my_types::pallet_scheduler::pallet::Error), - Preimage(my_types::pallet_preimage::pallet::Error), - Babe(my_types::pallet_babe::pallet::Error), - Indices(my_types::pallet_indices::pallet::Error), - Balances(my_types::pallet_balances::pallet::Error), - Staking(my_types::pallet_staking::pallet::pallet::Error), - Session(my_types::pallet_session::pallet::Error), - Grandpa(my_types::pallet_grandpa::pallet::Error), - ImOnline(my_types::pallet_im_online::pallet::Error), - Democracy(my_types::pallet_democracy::pallet::Error), - Council(my_types::pallet_collective::pallet::Error), - TechnicalCommittee(my_types::pallet_collective::pallet::Error), - PhragmenElection(my_types::pallet_elections_phragmen::pallet::Error), - TechnicalMembership(my_types::pallet_membership::pallet::Error), - Treasury(my_types::pallet_treasury::pallet::Error), - ConvictionVoting(my_types::pallet_conviction_voting::pallet::Error), - Referenda(my_types::pallet_referenda::pallet::Error), - Whitelist(my_types::pallet_whitelist::pallet::Error), - Claims(my_types::polkadot_runtime_common::claims::pallet::Error), - Vesting(my_types::pallet_vesting::pallet::Error), - Utility(my_types::pallet_utility::pallet::Error), - Identity(my_types::pallet_identity::pallet::Error), - Proxy(my_types::pallet_proxy::pallet::Error), - Multisig(my_types::pallet_multisig::pallet::Error), - Bounties(my_types::pallet_bounties::pallet::Error), - ChildBounties(my_types::pallet_child_bounties::pallet::Error), - Tips(my_types::pallet_tips::pallet::Error), - ElectionProviderMultiPhase( - my_types::pallet_election_provider_multi_phase::pallet::Error, - ), - VoterList(my_types::pallet_bags_list::pallet::Error), - NominationPools(my_types::pallet_nomination_pools::pallet::Error), - FastUnstake(my_types::pallet_fast_unstake::pallet::Error), - Configuration( - my_types::polkadot_runtime_parachains::configuration::pallet::Error, - ), - ParaInclusion( - my_types::polkadot_runtime_parachains::inclusion::pallet::Error, - ), - ParaInherent( - my_types::polkadot_runtime_parachains::paras_inherent::pallet::Error, - ), - Paras(my_types::polkadot_runtime_parachains::paras::pallet::Error), - Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Error), - ParasDisputes( - my_types::polkadot_runtime_parachains::disputes::pallet::Error, - ), - ParasSlashing( - my_types::polkadot_runtime_parachains::disputes::slashing::pallet::Error, - ), - Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Error), - Slots(my_types::polkadot_runtime_common::slots::pallet::Error), - Auctions(my_types::polkadot_runtime_common::auctions::pallet::Error), - Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Error), - XcmPallet(my_types::pallet_xcm::pallet::Error), - MessageQueue(my_types::pallet_message_queue::pallet::Error), - } - #[derive(Clone, Debug)] - pub enum RuntimeEvent { - System(my_types::frame_system::pallet::Event), - Scheduler(my_types::pallet_scheduler::pallet::Event), - Preimage(my_types::pallet_preimage::pallet::Event), - Indices(my_types::pallet_indices::pallet::Event), - Balances(my_types::pallet_balances::pallet::Event), - TransactionPayment(my_types::pallet_transaction_payment::pallet::Event), - Staking(my_types::pallet_staking::pallet::pallet::Event), - Offences(my_types::pallet_offences::pallet::Event), - Session(my_types::pallet_session::pallet::Event), - Grandpa(my_types::pallet_grandpa::pallet::Event), - ImOnline(my_types::pallet_im_online::pallet::Event), - Democracy(my_types::pallet_democracy::pallet::Event), - Council(my_types::pallet_collective::pallet::Event), - TechnicalCommittee(my_types::pallet_collective::pallet::Event), - PhragmenElection(my_types::pallet_elections_phragmen::pallet::Event), - TechnicalMembership(my_types::pallet_membership::pallet::Event), - Treasury(my_types::pallet_treasury::pallet::Event), - ConvictionVoting(my_types::pallet_conviction_voting::pallet::Event), - Referenda(my_types::pallet_referenda::pallet::Event), - Whitelist(my_types::pallet_whitelist::pallet::Event), - Claims(my_types::polkadot_runtime_common::claims::pallet::Event), - Vesting(my_types::pallet_vesting::pallet::Event), - Utility(my_types::pallet_utility::pallet::Event), - Identity(my_types::pallet_identity::pallet::Event), - Proxy(my_types::pallet_proxy::pallet::Event), - Multisig(my_types::pallet_multisig::pallet::Event), - Bounties(my_types::pallet_bounties::pallet::Event), - ChildBounties(my_types::pallet_child_bounties::pallet::Event), - Tips(my_types::pallet_tips::pallet::Event), - ElectionProviderMultiPhase( - my_types::pallet_election_provider_multi_phase::pallet::Event, - ), - VoterList(my_types::pallet_bags_list::pallet::Event), - NominationPools(my_types::pallet_nomination_pools::pallet::Event), - FastUnstake(my_types::pallet_fast_unstake::pallet::Event), - ParaInclusion( - my_types::polkadot_runtime_parachains::inclusion::pallet::Event, - ), - Paras(my_types::polkadot_runtime_parachains::paras::pallet::Event), - Hrmp(my_types::polkadot_runtime_parachains::hrmp::pallet::Event), - ParasDisputes( - my_types::polkadot_runtime_parachains::disputes::pallet::Event, - ), - Registrar(my_types::polkadot_runtime_common::paras_registrar::pallet::Event), - Slots(my_types::polkadot_runtime_common::slots::pallet::Event), - Auctions(my_types::polkadot_runtime_common::auctions::pallet::Event), - Crowdloan(my_types::polkadot_runtime_common::crowdloan::pallet::Event), - XcmPallet(my_types::pallet_xcm::pallet::Event), - MessageQueue(my_types::pallet_message_queue::pallet::Event), - } - #[derive(Clone, Debug)] - pub enum RuntimeHoldReason {} - #[derive(Clone, Debug)] - pub struct SessionKeys { - pub grandpa: my_types::sp_consensus_grandpa::app::Public, - pub babe: my_types::sp_consensus_babe::app::Public, - pub im_online: my_types::pallet_im_online::sr25519::app_sr25519::Public, - pub para_validator: my_types::polkadot_primitives::v5::validator_app::Public, - pub para_assignment: my_types::polkadot_primitives::v5::assignment_app::Public, - pub authority_discovery: my_types::sp_authority_discovery::app::Public, - } - } - pub mod polkadot_runtime_common { - use super::my_types; - pub mod auctions { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::new_auction`]. - new_auction { - duration: ::core::primitive::u32, - lease_period_index: ::core::primitive::u32, - }, - ///See [`Pallet::bid`]. - bid { - para: my_types::polkadot_parachain::primitives::Id, - auction_index: ::core::primitive::u32, - first_slot: ::core::primitive::u32, - last_slot: ::core::primitive::u32, - amount: ::core::primitive::u128, - }, - ///See [`Pallet::cancel_auction`]. - cancel_auction, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///This auction is already in progress. - AuctionInProgress, - ///The lease period is in the past. - LeasePeriodInPast, - ///Para is not registered - ParaNotRegistered, - ///Not a current auction. - NotCurrentAuction, - ///Not an auction. - NotAuction, - ///Auction has already ended. - AuctionEnded, - ///The para is already leased out for part of this range. - AlreadyLeasedOut, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///An auction started. Provides its index and the block number where it will begin to - ///close and the first lease period of the quadruplet that is auctioned. - AuctionStarted { - auction_index: ::core::primitive::u32, - lease_period: ::core::primitive::u32, - ending: ::core::primitive::u32, - }, - ///An auction ended. All funds become unreserved. - AuctionClosed { auction_index: ::core::primitive::u32 }, - ///Funds were reserved for a winning bid. First balance is the extra amount reserved. - ///Second is the total. - Reserved { - bidder: my_types::sp_core::crypto::AccountId32, - extra_reserved: ::core::primitive::u128, - total_amount: ::core::primitive::u128, - }, - ///Funds were unreserved since bidder is no longer active. `[bidder, amount]` - Unreserved { - bidder: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///Someone attempted to lease the same slot twice for a parachain. The amount is held in reserve - ///but no parachain slot has been leased. - ReserveConfiscated { - para_id: my_types::polkadot_parachain::primitives::Id, - leaser: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - }, - ///A new bid has been accepted as the current winner. - BidAccepted { - bidder: my_types::sp_core::crypto::AccountId32, - para_id: my_types::polkadot_parachain::primitives::Id, - amount: ::core::primitive::u128, - first_slot: ::core::primitive::u32, - last_slot: ::core::primitive::u32, - }, - ///The winning offset was chosen for an auction. This will map into the `Winning` storage map. - WinningOffset { - auction_index: ::core::primitive::u32, - block_number: ::core::primitive::u32, - }, - } - } - } - pub mod claims { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::claim`]. - claim { - dest: my_types::sp_core::crypto::AccountId32, - ethereum_signature: my_types::polkadot_runtime_common::claims::EcdsaSignature, - }, - ///See [`Pallet::mint_claim`]. - mint_claim { - who: my_types::polkadot_runtime_common::claims::EthereumAddress, - value: ::core::primitive::u128, - vesting_schedule: ::core::option::Option< - ( - ::core::primitive::u128, - ::core::primitive::u128, - ::core::primitive::u32, - ), - >, - statement: ::core::option::Option< - my_types::polkadot_runtime_common::claims::StatementKind, - >, - }, - ///See [`Pallet::claim_attest`]. - claim_attest { - dest: my_types::sp_core::crypto::AccountId32, - ethereum_signature: my_types::polkadot_runtime_common::claims::EcdsaSignature, - statement: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::attest`]. - attest { statement: ::std::vec::Vec<::core::primitive::u8> }, - ///See [`Pallet::move_claim`]. - move_claim { - old: my_types::polkadot_runtime_common::claims::EthereumAddress, - new: my_types::polkadot_runtime_common::claims::EthereumAddress, - maybe_preclaim: ::core::option::Option< - my_types::sp_core::crypto::AccountId32, - >, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Invalid Ethereum signature. - InvalidEthereumSignature, - ///Ethereum address has no claim. - SignerHasNoClaim, - ///Account ID sending transaction has no claim. - SenderHasNoClaim, - ///There's not enough in the pot to pay out some unvested amount. Generally implies a logic - ///error. - PotUnderflow, - ///A needed statement was not included. - InvalidStatement, - ///The account already has a vested balance. - VestedBalanceExists, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Someone claimed some DOTs. - Claimed { - who: my_types::sp_core::crypto::AccountId32, - ethereum_address: my_types::polkadot_runtime_common::claims::EthereumAddress, - amount: ::core::primitive::u128, - }, - } - } - #[derive(Clone, Debug)] - pub struct EcdsaSignature(pub [::core::primitive::u8; 65usize]); - #[derive(Clone, Debug)] - pub struct EthereumAddress(pub [::core::primitive::u8; 20usize]); - #[derive(Clone, Debug)] - pub struct PrevalidateAttests; - #[derive(Clone, Debug)] - pub enum StatementKind { - Regular, - Saft, - } - } - pub mod crowdloan { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::create`]. - create { - index: my_types::polkadot_parachain::primitives::Id, - cap: ::core::primitive::u128, - first_period: ::core::primitive::u32, - last_period: ::core::primitive::u32, - end: ::core::primitive::u32, - verifier: ::core::option::Option< - my_types::sp_runtime::MultiSigner, - >, - }, - ///See [`Pallet::contribute`]. - contribute { - index: my_types::polkadot_parachain::primitives::Id, - value: ::core::primitive::u128, - signature: ::core::option::Option< - my_types::sp_runtime::MultiSignature, - >, - }, - ///See [`Pallet::withdraw`]. - withdraw { - who: my_types::sp_core::crypto::AccountId32, - index: my_types::polkadot_parachain::primitives::Id, - }, - ///See [`Pallet::refund`]. - refund { index: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::dissolve`]. - dissolve { index: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::edit`]. - edit { - index: my_types::polkadot_parachain::primitives::Id, - cap: ::core::primitive::u128, - first_period: ::core::primitive::u32, - last_period: ::core::primitive::u32, - end: ::core::primitive::u32, - verifier: ::core::option::Option< - my_types::sp_runtime::MultiSigner, - >, - }, - ///See [`Pallet::add_memo`]. - add_memo { - index: my_types::polkadot_parachain::primitives::Id, - memo: ::std::vec::Vec<::core::primitive::u8>, - }, - ///See [`Pallet::poke`]. - poke { index: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::contribute_all`]. - contribute_all { - index: my_types::polkadot_parachain::primitives::Id, - signature: ::core::option::Option< - my_types::sp_runtime::MultiSignature, - >, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The current lease period is more than the first lease period. - FirstPeriodInPast, - ///The first lease period needs to at least be less than 3 `max_value`. - FirstPeriodTooFarInFuture, - ///Last lease period must be greater than first lease period. - LastPeriodBeforeFirstPeriod, - ///The last lease period cannot be more than 3 periods after the first period. - LastPeriodTooFarInFuture, - ///The campaign ends before the current block number. The end must be in the future. - CannotEndInPast, - ///The end date for this crowdloan is not sensible. - EndTooFarInFuture, - ///There was an overflow. - Overflow, - ///The contribution was below the minimum, `MinContribution`. - ContributionTooSmall, - ///Invalid fund index. - InvalidParaId, - ///Contributions exceed maximum amount. - CapExceeded, - ///The contribution period has already ended. - ContributionPeriodOver, - ///The origin of this call is invalid. - InvalidOrigin, - ///This crowdloan does not correspond to a parachain. - NotParachain, - ///This parachain lease is still active and retirement cannot yet begin. - LeaseActive, - ///This parachain's bid or lease is still active and withdraw cannot yet begin. - BidOrLeaseActive, - ///The crowdloan has not yet ended. - FundNotEnded, - ///There are no contributions stored in this crowdloan. - NoContributions, - ///The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement period. - NotReadyToDissolve, - ///Invalid signature. - InvalidSignature, - ///The provided memo is too large. - MemoTooLarge, - ///The fund is already in `NewRaise` - AlreadyInNewRaise, - ///No contributions allowed during the VRF delay - VrfDelayInProgress, - ///A lease period has not started yet, due to an offset in the starting block. - NoLeasePeriod, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Create a new crowdloaning campaign. - Created { para_id: my_types::polkadot_parachain::primitives::Id }, - ///Contributed to a crowd sale. - Contributed { - who: my_types::sp_core::crypto::AccountId32, - fund_index: my_types::polkadot_parachain::primitives::Id, - amount: ::core::primitive::u128, - }, - ///Withdrew full balance of a contributor. - Withdrew { - who: my_types::sp_core::crypto::AccountId32, - fund_index: my_types::polkadot_parachain::primitives::Id, - amount: ::core::primitive::u128, - }, - ///The loans in a fund have been partially dissolved, i.e. there are some left - ///over child keys that still need to be killed. - PartiallyRefunded { - para_id: my_types::polkadot_parachain::primitives::Id, - }, - ///All loans in a fund have been refunded. - AllRefunded { - para_id: my_types::polkadot_parachain::primitives::Id, - }, - ///Fund is dissolved. - Dissolved { para_id: my_types::polkadot_parachain::primitives::Id }, - ///The result of trying to submit a new bid to the Slots pallet. - HandleBidResult { - para_id: my_types::polkadot_parachain::primitives::Id, - result: ::core::result::Result< - (), - my_types::sp_runtime::DispatchError, - >, - }, - ///The configuration to a crowdloan has been edited. - Edited { para_id: my_types::polkadot_parachain::primitives::Id }, - ///A memo has been updated. - MemoUpdated { - who: my_types::sp_core::crypto::AccountId32, - para_id: my_types::polkadot_parachain::primitives::Id, - memo: ::std::vec::Vec<::core::primitive::u8>, - }, - ///A parachain has been moved to `NewRaise` - AddedToNewRaise { - para_id: my_types::polkadot_parachain::primitives::Id, - }, - } - } - #[derive(Clone, Debug)] - pub struct FundInfo<_0, _1, _2, _3> { - pub depositor: _0, - pub verifier: ::core::option::Option, - pub deposit: _1, - pub raised: _1, - pub end: _2, - pub cap: _1, - pub last_contribution: my_types::polkadot_runtime_common::crowdloan::LastContribution< - _2, - >, - pub first_period: _3, - pub last_period: _3, - pub fund_index: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub enum LastContribution<_0> { - Never, - PreEnding(::core::primitive::u32), - Ending(_0), - } - } - pub mod paras_registrar { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::register`]. - register { - id: my_types::polkadot_parachain::primitives::Id, - genesis_head: my_types::polkadot_parachain::primitives::HeadData, - validation_code: my_types::polkadot_parachain::primitives::ValidationCode, - }, - ///See [`Pallet::force_register`]. - force_register { - who: my_types::sp_core::crypto::AccountId32, - deposit: ::core::primitive::u128, - id: my_types::polkadot_parachain::primitives::Id, - genesis_head: my_types::polkadot_parachain::primitives::HeadData, - validation_code: my_types::polkadot_parachain::primitives::ValidationCode, - }, - ///See [`Pallet::deregister`]. - deregister { id: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::swap`]. - swap { - id: my_types::polkadot_parachain::primitives::Id, - other: my_types::polkadot_parachain::primitives::Id, - }, - ///See [`Pallet::remove_lock`]. - remove_lock { para: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::reserve`]. - reserve, - ///See [`Pallet::add_lock`]. - add_lock { para: my_types::polkadot_parachain::primitives::Id }, - ///See [`Pallet::schedule_code_upgrade`]. - schedule_code_upgrade { - para: my_types::polkadot_parachain::primitives::Id, - new_code: my_types::polkadot_parachain::primitives::ValidationCode, - }, - ///See [`Pallet::set_current_head`]. - set_current_head { - para: my_types::polkadot_parachain::primitives::Id, - new_head: my_types::polkadot_parachain::primitives::HeadData, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The ID is not registered. - NotRegistered, - ///The ID is already registered. - AlreadyRegistered, - ///The caller is not the owner of this Id. - NotOwner, - ///Invalid para code size. - CodeTooLarge, - ///Invalid para head data size. - HeadDataTooLarge, - ///Para is not a Parachain. - NotParachain, - ///Para is not a Parathread. - NotParathread, - ///Cannot deregister para - CannotDeregister, - ///Cannot schedule downgrade of parachain to parathread - CannotDowngrade, - ///Cannot schedule upgrade of parathread to parachain - CannotUpgrade, - ///Para is locked from manipulation by the manager. Must use parachain or relay chain governance. - ParaLocked, - ///The ID given for registration has not been reserved. - NotReserved, - ///Registering parachain with empty code is not allowed. - EmptyCode, - ///Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras are - ///correct for the swap to work. - CannotSwap, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - Registered { - para_id: my_types::polkadot_parachain::primitives::Id, - manager: my_types::sp_core::crypto::AccountId32, - }, - Deregistered { - para_id: my_types::polkadot_parachain::primitives::Id, - }, - Reserved { - para_id: my_types::polkadot_parachain::primitives::Id, - who: my_types::sp_core::crypto::AccountId32, - }, - Swapped { - para_id: my_types::polkadot_parachain::primitives::Id, - other_id: my_types::polkadot_parachain::primitives::Id, - }, - } - } - #[derive(Clone, Debug)] - pub struct ParaInfo<_0, _1> { - pub manager: _0, - pub deposit: _1, - pub locked: ::core::primitive::bool, - } - } - pub mod slots { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::force_lease`]. - force_lease { - para: my_types::polkadot_parachain::primitives::Id, - leaser: my_types::sp_core::crypto::AccountId32, - amount: ::core::primitive::u128, - period_begin: ::core::primitive::u32, - period_count: ::core::primitive::u32, - }, - ///See [`Pallet::clear_all_leases`]. - clear_all_leases { - para: my_types::polkadot_parachain::primitives::Id, - }, - ///See [`Pallet::trigger_onboard`]. - trigger_onboard { - para: my_types::polkadot_parachain::primitives::Id, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The parachain ID is not onboarding. - ParaNotOnboarding, - ///There was an error with the lease. - LeaseError, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A new `[lease_period]` is beginning. - NewLeasePeriod { lease_period: ::core::primitive::u32 }, - ///A para has won the right to a continuous set of lease periods as a parachain. - ///First balance is any extra amount reserved on top of the para's existing deposit. - ///Second balance is the total amount reserved. - Leased { - para_id: my_types::polkadot_parachain::primitives::Id, - leaser: my_types::sp_core::crypto::AccountId32, - period_begin: ::core::primitive::u32, - period_count: ::core::primitive::u32, - extra_reserved: ::core::primitive::u128, - total_amount: ::core::primitive::u128, - }, - } - } - } - } - pub mod polkadot_runtime_parachains { - use super::my_types; - pub mod configuration { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::set_validation_upgrade_cooldown`]. - set_validation_upgrade_cooldown { new: ::core::primitive::u32 }, - ///See [`Pallet::set_validation_upgrade_delay`]. - set_validation_upgrade_delay { new: ::core::primitive::u32 }, - ///See [`Pallet::set_code_retention_period`]. - set_code_retention_period { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_code_size`]. - set_max_code_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_pov_size`]. - set_max_pov_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_head_data_size`]. - set_max_head_data_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_parathread_cores`]. - set_parathread_cores { new: ::core::primitive::u32 }, - ///See [`Pallet::set_parathread_retries`]. - set_parathread_retries { new: ::core::primitive::u32 }, - ///See [`Pallet::set_group_rotation_frequency`]. - set_group_rotation_frequency { new: ::core::primitive::u32 }, - ///See [`Pallet::set_chain_availability_period`]. - set_chain_availability_period { new: ::core::primitive::u32 }, - ///See [`Pallet::set_thread_availability_period`]. - set_thread_availability_period { new: ::core::primitive::u32 }, - ///See [`Pallet::set_scheduling_lookahead`]. - set_scheduling_lookahead { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_validators_per_core`]. - set_max_validators_per_core { - new: ::core::option::Option<::core::primitive::u32>, - }, - ///See [`Pallet::set_max_validators`]. - set_max_validators { - new: ::core::option::Option<::core::primitive::u32>, - }, - ///See [`Pallet::set_dispute_period`]. - set_dispute_period { new: ::core::primitive::u32 }, - ///See [`Pallet::set_dispute_post_conclusion_acceptance_period`]. - set_dispute_post_conclusion_acceptance_period { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_no_show_slots`]. - set_no_show_slots { new: ::core::primitive::u32 }, - ///See [`Pallet::set_n_delay_tranches`]. - set_n_delay_tranches { new: ::core::primitive::u32 }, - ///See [`Pallet::set_zeroth_delay_tranche_width`]. - set_zeroth_delay_tranche_width { new: ::core::primitive::u32 }, - ///See [`Pallet::set_needed_approvals`]. - set_needed_approvals { new: ::core::primitive::u32 }, - ///See [`Pallet::set_relay_vrf_modulo_samples`]. - set_relay_vrf_modulo_samples { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_upward_queue_count`]. - set_max_upward_queue_count { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_upward_queue_size`]. - set_max_upward_queue_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_downward_message_size`]. - set_max_downward_message_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_upward_message_size`]. - set_max_upward_message_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_max_upward_message_num_per_candidate`]. - set_max_upward_message_num_per_candidate { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_hrmp_open_request_ttl`]. - set_hrmp_open_request_ttl { new: ::core::primitive::u32 }, - ///See [`Pallet::set_hrmp_sender_deposit`]. - set_hrmp_sender_deposit { new: ::core::primitive::u128 }, - ///See [`Pallet::set_hrmp_recipient_deposit`]. - set_hrmp_recipient_deposit { new: ::core::primitive::u128 }, - ///See [`Pallet::set_hrmp_channel_max_capacity`]. - set_hrmp_channel_max_capacity { new: ::core::primitive::u32 }, - ///See [`Pallet::set_hrmp_channel_max_total_size`]. - set_hrmp_channel_max_total_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_hrmp_max_parachain_inbound_channels`]. - set_hrmp_max_parachain_inbound_channels { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_hrmp_max_parathread_inbound_channels`]. - set_hrmp_max_parathread_inbound_channels { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_hrmp_channel_max_message_size`]. - set_hrmp_channel_max_message_size { new: ::core::primitive::u32 }, - ///See [`Pallet::set_hrmp_max_parachain_outbound_channels`]. - set_hrmp_max_parachain_outbound_channels { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_hrmp_max_parathread_outbound_channels`]. - set_hrmp_max_parathread_outbound_channels { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_hrmp_max_message_num_per_candidate`]. - set_hrmp_max_message_num_per_candidate { - new: ::core::primitive::u32, - }, - ///See [`Pallet::set_pvf_checking_enabled`]. - set_pvf_checking_enabled { new: ::core::primitive::bool }, - ///See [`Pallet::set_pvf_voting_ttl`]. - set_pvf_voting_ttl { new: ::core::primitive::u32 }, - ///See [`Pallet::set_minimum_validation_upgrade_delay`]. - set_minimum_validation_upgrade_delay { new: ::core::primitive::u32 }, - ///See [`Pallet::set_bypass_consistency_check`]. - set_bypass_consistency_check { new: ::core::primitive::bool }, - ///See [`Pallet::set_async_backing_params`]. - set_async_backing_params { - new: my_types::polkadot_primitives::vstaging::AsyncBackingParams, - }, - ///See [`Pallet::set_executor_params`]. - set_executor_params { - new: my_types::polkadot_primitives::v5::executor_params::ExecutorParams, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The new value for a configuration parameter is invalid. - InvalidNewValue, - } - } - #[derive(Clone, Debug)] - pub struct HostConfiguration<_0> { - pub max_code_size: ::core::primitive::u32, - pub max_head_data_size: ::core::primitive::u32, - pub max_upward_queue_count: ::core::primitive::u32, - pub max_upward_queue_size: ::core::primitive::u32, - pub max_upward_message_size: ::core::primitive::u32, - pub max_upward_message_num_per_candidate: ::core::primitive::u32, - pub hrmp_max_message_num_per_candidate: ::core::primitive::u32, - pub validation_upgrade_cooldown: _0, - pub validation_upgrade_delay: _0, - pub async_backing_params: my_types::polkadot_primitives::vstaging::AsyncBackingParams, - pub max_pov_size: ::core::primitive::u32, - pub max_downward_message_size: ::core::primitive::u32, - pub hrmp_max_parachain_outbound_channels: ::core::primitive::u32, - pub hrmp_max_parathread_outbound_channels: ::core::primitive::u32, - pub hrmp_sender_deposit: ::core::primitive::u128, - pub hrmp_recipient_deposit: ::core::primitive::u128, - pub hrmp_channel_max_capacity: ::core::primitive::u32, - pub hrmp_channel_max_total_size: ::core::primitive::u32, - pub hrmp_max_parachain_inbound_channels: ::core::primitive::u32, - pub hrmp_max_parathread_inbound_channels: ::core::primitive::u32, - pub hrmp_channel_max_message_size: ::core::primitive::u32, - pub executor_params: my_types::polkadot_primitives::v5::executor_params::ExecutorParams, - pub code_retention_period: _0, - pub parathread_cores: ::core::primitive::u32, - pub parathread_retries: ::core::primitive::u32, - pub group_rotation_frequency: _0, - pub chain_availability_period: _0, - pub thread_availability_period: _0, - pub scheduling_lookahead: ::core::primitive::u32, - pub max_validators_per_core: ::core::option::Option<_0>, - pub max_validators: ::core::option::Option<_0>, - pub dispute_period: ::core::primitive::u32, - pub dispute_post_conclusion_acceptance_period: _0, - pub no_show_slots: ::core::primitive::u32, - pub n_delay_tranches: ::core::primitive::u32, - pub zeroth_delay_tranche_width: ::core::primitive::u32, - pub needed_approvals: ::core::primitive::u32, - pub relay_vrf_modulo_samples: ::core::primitive::u32, - pub pvf_checking_enabled: ::core::primitive::bool, - pub pvf_voting_ttl: ::core::primitive::u32, - pub minimum_validation_upgrade_delay: _0, - } - } - pub mod disputes { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::force_unfreeze`]. - force_unfreeze, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Duplicate dispute statement sets provided. - DuplicateDisputeStatementSets, - ///Ancient dispute statement provided. - AncientDisputeStatement, - ///Validator index on statement is out of bounds for session. - ValidatorIndexOutOfBounds, - ///Invalid signature on statement. - InvalidSignature, - ///Validator vote submitted more than once to dispute. - DuplicateStatement, - ///A dispute where there are only votes on one side. - SingleSidedDispute, - ///A dispute vote from a malicious backer. - MaliciousBacker, - ///No backing votes were provides along dispute statements. - MissingBackingVotes, - ///Unconfirmed dispute statement sets provided. - UnconfirmedDispute, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A dispute has been initiated. \[candidate hash, dispute location\] - DisputeInitiated( - my_types::polkadot_core_primitives::CandidateHash, - my_types::polkadot_runtime_parachains::disputes::DisputeLocation, - ), - ///A dispute has concluded for or against a candidate. - ///`\[para id, candidate hash, dispute result\]` - DisputeConcluded( - my_types::polkadot_core_primitives::CandidateHash, - my_types::polkadot_runtime_parachains::disputes::DisputeResult, - ), - ///A dispute has concluded with supermajority against a candidate. - ///Block authors should no longer build on top of this head and should - ///instead revert the block at the given height. This should be the - ///number of the child of the last known valid block in the chain. - Revert(::core::primitive::u32), - } - } - pub mod slashing { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::report_dispute_lost_unsigned`]. - report_dispute_lost_unsigned { - dispute_proof: ::std::boxed::Box< - my_types::polkadot_primitives::v5::slashing::DisputeProof, - >, - key_owner_proof: my_types::sp_session::MembershipProof, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The key ownership proof is invalid. - InvalidKeyOwnershipProof, - ///The session index is too old or invalid. - InvalidSessionIndex, - ///The candidate hash is invalid. - InvalidCandidateHash, - ///There is no pending slash for the given validator index and time - ///slot. - InvalidValidatorIndex, - ///The validator index does not match the validator id. - ValidatorIndexIdMismatch, - ///The given slashing report is valid but already previously reported. - DuplicateSlashingReport, - } - } - } - #[derive(Clone, Debug)] - pub enum DisputeLocation { - Local, - Remote, - } - #[derive(Clone, Debug)] - pub enum DisputeResult { - Valid, - Invalid, - } - } - pub mod hrmp { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::hrmp_init_open_channel`]. - hrmp_init_open_channel { - recipient: my_types::polkadot_parachain::primitives::Id, - proposed_max_capacity: ::core::primitive::u32, - proposed_max_message_size: ::core::primitive::u32, - }, - ///See [`Pallet::hrmp_accept_open_channel`]. - hrmp_accept_open_channel { - sender: my_types::polkadot_parachain::primitives::Id, - }, - ///See [`Pallet::hrmp_close_channel`]. - hrmp_close_channel { - channel_id: my_types::polkadot_parachain::primitives::HrmpChannelId, - }, - ///See [`Pallet::force_clean_hrmp`]. - force_clean_hrmp { - para: my_types::polkadot_parachain::primitives::Id, - inbound: ::core::primitive::u32, - outbound: ::core::primitive::u32, - }, - ///See [`Pallet::force_process_hrmp_open`]. - force_process_hrmp_open { channels: ::core::primitive::u32 }, - ///See [`Pallet::force_process_hrmp_close`]. - force_process_hrmp_close { channels: ::core::primitive::u32 }, - ///See [`Pallet::hrmp_cancel_open_request`]. - hrmp_cancel_open_request { - channel_id: my_types::polkadot_parachain::primitives::HrmpChannelId, - open_requests: ::core::primitive::u32, - }, - ///See [`Pallet::force_open_hrmp_channel`]. - force_open_hrmp_channel { - sender: my_types::polkadot_parachain::primitives::Id, - recipient: my_types::polkadot_parachain::primitives::Id, - max_capacity: ::core::primitive::u32, - max_message_size: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///The sender tried to open a channel to themselves. - OpenHrmpChannelToSelf, - ///The recipient is not a valid para. - OpenHrmpChannelInvalidRecipient, - ///The requested capacity is zero. - OpenHrmpChannelZeroCapacity, - ///The requested capacity exceeds the global limit. - OpenHrmpChannelCapacityExceedsLimit, - ///The requested maximum message size is 0. - OpenHrmpChannelZeroMessageSize, - ///The open request requested the message size that exceeds the global limit. - OpenHrmpChannelMessageSizeExceedsLimit, - ///The channel already exists - OpenHrmpChannelAlreadyExists, - ///There is already a request to open the same channel. - OpenHrmpChannelAlreadyRequested, - ///The sender already has the maximum number of allowed outbound channels. - OpenHrmpChannelLimitExceeded, - ///The channel from the sender to the origin doesn't exist. - AcceptHrmpChannelDoesntExist, - ///The channel is already confirmed. - AcceptHrmpChannelAlreadyConfirmed, - ///The recipient already has the maximum number of allowed inbound channels. - AcceptHrmpChannelLimitExceeded, - ///The origin tries to close a channel where it is neither the sender nor the recipient. - CloseHrmpChannelUnauthorized, - ///The channel to be closed doesn't exist. - CloseHrmpChannelDoesntExist, - ///The channel close request is already requested. - CloseHrmpChannelAlreadyUnderway, - ///Canceling is requested by neither the sender nor recipient of the open channel request. - CancelHrmpOpenChannelUnauthorized, - ///The open request doesn't exist. - OpenHrmpChannelDoesntExist, - ///Cannot cancel an HRMP open channel request because it is already confirmed. - OpenHrmpChannelAlreadyConfirmed, - ///The provided witness data is wrong. - WrongWitness, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Open HRMP channel requested. - ///`[sender, recipient, proposed_max_capacity, proposed_max_message_size]` - OpenChannelRequested( - my_types::polkadot_parachain::primitives::Id, - my_types::polkadot_parachain::primitives::Id, - ::core::primitive::u32, - ::core::primitive::u32, - ), - ///An HRMP channel request sent by the receiver was canceled by either party. - ///`[by_parachain, channel_id]` - OpenChannelCanceled( - my_types::polkadot_parachain::primitives::Id, - my_types::polkadot_parachain::primitives::HrmpChannelId, - ), - ///Open HRMP channel accepted. `[sender, recipient]` - OpenChannelAccepted( - my_types::polkadot_parachain::primitives::Id, - my_types::polkadot_parachain::primitives::Id, - ), - ///HRMP channel closed. `[by_parachain, channel_id]` - ChannelClosed( - my_types::polkadot_parachain::primitives::Id, - my_types::polkadot_parachain::primitives::HrmpChannelId, - ), - ///An HRMP channel was opened via Root origin. - ///`[sender, recipient, proposed_max_capacity, proposed_max_message_size]` - HrmpChannelForceOpened( - my_types::polkadot_parachain::primitives::Id, - my_types::polkadot_parachain::primitives::Id, - ::core::primitive::u32, - ::core::primitive::u32, - ), - } - } - #[derive(Clone, Debug)] - pub struct HrmpChannel { - pub max_capacity: ::core::primitive::u32, - pub max_total_size: ::core::primitive::u32, - pub max_message_size: ::core::primitive::u32, - pub msg_count: ::core::primitive::u32, - pub total_size: ::core::primitive::u32, - pub mqc_head: ::core::option::Option, - pub sender_deposit: ::core::primitive::u128, - pub recipient_deposit: ::core::primitive::u128, - } - #[derive(Clone, Debug)] - pub struct HrmpOpenChannelRequest { - pub confirmed: ::core::primitive::bool, - pub _age: ::core::primitive::u32, - pub sender_deposit: ::core::primitive::u128, - pub max_message_size: ::core::primitive::u32, - pub max_capacity: ::core::primitive::u32, - pub max_total_size: ::core::primitive::u32, - } - } - pub mod inclusion { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call {} - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Validator indices are out of order or contains duplicates. - UnsortedOrDuplicateValidatorIndices, - ///Dispute statement sets are out of order or contain duplicates. - UnsortedOrDuplicateDisputeStatementSet, - ///Backed candidates are out of order (core index) or contain duplicates. - UnsortedOrDuplicateBackedCandidates, - ///A different relay parent was provided compared to the on-chain stored one. - UnexpectedRelayParent, - ///Availability bitfield has unexpected size. - WrongBitfieldSize, - ///Bitfield consists of zeros only. - BitfieldAllZeros, - ///Multiple bitfields submitted by same validator or validators out of order by index. - BitfieldDuplicateOrUnordered, - ///Validator index out of bounds. - ValidatorIndexOutOfBounds, - ///Invalid signature - InvalidBitfieldSignature, - ///Candidate submitted but para not scheduled. - UnscheduledCandidate, - ///Candidate scheduled despite pending candidate already existing for the para. - CandidateScheduledBeforeParaFree, - ///Candidate included with the wrong collator. - WrongCollator, - ///Scheduled cores out of order. - ScheduledOutOfOrder, - ///Head data exceeds the configured maximum. - HeadDataTooLarge, - ///Code upgrade prematurely. - PrematureCodeUpgrade, - ///Output code is too large - NewCodeTooLarge, - ///Candidate not in parent context. - CandidateNotInParentContext, - ///Invalid group index in core assignment. - InvalidGroupIndex, - ///Insufficient (non-majority) backing. - InsufficientBacking, - ///Invalid (bad signature, unknown validator, etc.) backing. - InvalidBacking, - ///Collator did not sign PoV. - NotCollatorSigned, - ///The validation data hash does not match expected. - ValidationDataHashMismatch, - ///The downward message queue is not processed correctly. - IncorrectDownwardMessageHandling, - ///At least one upward message sent does not pass the acceptance criteria. - InvalidUpwardMessages, - ///The candidate didn't follow the rules of HRMP watermark advancement. - HrmpWatermarkMishandling, - ///The HRMP messages sent by the candidate is not valid. - InvalidOutboundHrmp, - ///The validation code hash of the candidate is not valid. - InvalidValidationCodeHash, - ///The `para_head` hash in the candidate descriptor doesn't match the hash of the actual para head in the - ///commitments. - ParaHeadMismatch, - ///A bitfield that references a freed core, - ///either intentionally or as part of a concluded - ///invalid dispute. - BitfieldReferencesFreedCore, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///A candidate was backed. `[candidate, head_data]` - CandidateBacked( - my_types::polkadot_primitives::v5::CandidateReceipt< - my_types::primitive_types::H256, - >, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - my_types::polkadot_primitives::v5::GroupIndex, - ), - ///A candidate was included. `[candidate, head_data]` - CandidateIncluded( - my_types::polkadot_primitives::v5::CandidateReceipt< - my_types::primitive_types::H256, - >, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - my_types::polkadot_primitives::v5::GroupIndex, - ), - ///A candidate timed out. `[candidate, head_data]` - CandidateTimedOut( - my_types::polkadot_primitives::v5::CandidateReceipt< - my_types::primitive_types::H256, - >, - my_types::polkadot_parachain::primitives::HeadData, - my_types::polkadot_primitives::v5::CoreIndex, - ), - ///Some upward messages have been received and will be processed. - UpwardMessagesReceived { - from: my_types::polkadot_parachain::primitives::Id, - count: ::core::primitive::u32, - }, - } - } - #[derive(Clone, Debug)] - pub enum AggregateMessageOrigin { - Ump(my_types::polkadot_runtime_parachains::inclusion::UmpQueueId), - } - #[derive(Clone, Debug)] - pub struct AvailabilityBitfieldRecord<_0> { - pub bitfield: my_types::polkadot_primitives::v5::AvailabilityBitfield, - pub submitted_at: _0, - } - #[derive(Clone, Debug)] - pub struct CandidatePendingAvailability<_0, _1> { - pub core: my_types::polkadot_primitives::v5::CoreIndex, - pub hash: my_types::polkadot_core_primitives::CandidateHash, - pub descriptor: my_types::polkadot_primitives::v5::CandidateDescriptor< - _0, - >, - pub availability_votes: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub backers: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub relay_parent_number: _1, - pub backed_in_number: _1, - pub backing_group: my_types::polkadot_primitives::v5::GroupIndex, - } - #[derive(Clone, Debug)] - pub enum UmpQueueId { - Para(my_types::polkadot_parachain::primitives::Id), - } - } - pub mod initializer { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::force_approve`]. - force_approve { up_to: ::core::primitive::u32 }, - } - } - #[derive(Clone, Debug)] - pub struct BufferedSessionChange { - pub validators: ::std::vec::Vec< - my_types::polkadot_primitives::v5::validator_app::Public, - >, - pub queued: ::std::vec::Vec< - my_types::polkadot_primitives::v5::validator_app::Public, - >, - pub session_index: ::core::primitive::u32, - } - } - pub mod origin { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Origin { - Parachain(my_types::polkadot_parachain::primitives::Id), - } - } - } - pub mod paras { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::force_set_current_code`]. - force_set_current_code { - para: my_types::polkadot_parachain::primitives::Id, - new_code: my_types::polkadot_parachain::primitives::ValidationCode, - }, - ///See [`Pallet::force_set_current_head`]. - force_set_current_head { - para: my_types::polkadot_parachain::primitives::Id, - new_head: my_types::polkadot_parachain::primitives::HeadData, - }, - ///See [`Pallet::force_schedule_code_upgrade`]. - force_schedule_code_upgrade { - para: my_types::polkadot_parachain::primitives::Id, - new_code: my_types::polkadot_parachain::primitives::ValidationCode, - relay_parent_number: ::core::primitive::u32, - }, - ///See [`Pallet::force_note_new_head`]. - force_note_new_head { - para: my_types::polkadot_parachain::primitives::Id, - new_head: my_types::polkadot_parachain::primitives::HeadData, - }, - ///See [`Pallet::force_queue_action`]. - force_queue_action { - para: my_types::polkadot_parachain::primitives::Id, - }, - ///See [`Pallet::add_trusted_validation_code`]. - add_trusted_validation_code { - validation_code: my_types::polkadot_parachain::primitives::ValidationCode, - }, - ///See [`Pallet::poke_unused_validation_code`]. - poke_unused_validation_code { - validation_code_hash: my_types::polkadot_parachain::primitives::ValidationCodeHash, - }, - ///See [`Pallet::include_pvf_check_statement`]. - include_pvf_check_statement { - stmt: my_types::polkadot_primitives::v5::PvfCheckStatement, - signature: my_types::polkadot_primitives::v5::validator_app::Signature, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Para is not registered in our system. - NotRegistered, - ///Para cannot be onboarded because it is already tracked by our system. - CannotOnboard, - ///Para cannot be offboarded at this time. - CannotOffboard, - ///Para cannot be upgraded to a parachain. - CannotUpgrade, - ///Para cannot be downgraded to a parathread. - CannotDowngrade, - ///The statement for PVF pre-checking is stale. - PvfCheckStatementStale, - ///The statement for PVF pre-checking is for a future session. - PvfCheckStatementFuture, - ///Claimed validator index is out of bounds. - PvfCheckValidatorIndexOutOfBounds, - ///The signature for the PVF pre-checking is invalid. - PvfCheckInvalidSignature, - ///The given validator already has cast a vote. - PvfCheckDoubleVote, - ///The given PVF does not exist at the moment of process a vote. - PvfCheckSubjectInvalid, - ///Parachain cannot currently schedule a code upgrade. - CannotUpgradeCode, - } - #[derive(Clone, Debug)] - ///The `Event` enum of this pallet - pub enum Event { - ///Current code has been updated for a Para. `para_id` - CurrentCodeUpdated(my_types::polkadot_parachain::primitives::Id), - ///Current head has been updated for a Para. `para_id` - CurrentHeadUpdated(my_types::polkadot_parachain::primitives::Id), - ///A code upgrade has been scheduled for a Para. `para_id` - CodeUpgradeScheduled(my_types::polkadot_parachain::primitives::Id), - ///A new head has been noted for a Para. `para_id` - NewHeadNoted(my_types::polkadot_parachain::primitives::Id), - ///A para has been queued to execute pending actions. `para_id` - ActionQueued( - my_types::polkadot_parachain::primitives::Id, - ::core::primitive::u32, - ), - ///The given para either initiated or subscribed to a PVF check for the given validation - ///code. `code_hash` `para_id` - PvfCheckStarted( - my_types::polkadot_parachain::primitives::ValidationCodeHash, - my_types::polkadot_parachain::primitives::Id, - ), - ///The given validation code was accepted by the PVF pre-checking vote. - ///`code_hash` `para_id` - PvfCheckAccepted( - my_types::polkadot_parachain::primitives::ValidationCodeHash, - my_types::polkadot_parachain::primitives::Id, - ), - ///The given validation code was rejected by the PVF pre-checking vote. - ///`code_hash` `para_id` - PvfCheckRejected( - my_types::polkadot_parachain::primitives::ValidationCodeHash, - my_types::polkadot_parachain::primitives::Id, - ), - } - } - #[derive(Clone, Debug)] - pub struct ParaGenesisArgs { - pub genesis_head: my_types::polkadot_parachain::primitives::HeadData, - pub validation_code: my_types::polkadot_parachain::primitives::ValidationCode, - pub para_kind: ::core::primitive::bool, - } - #[derive(Clone, Debug)] - pub enum ParaLifecycle { - Onboarding, - Parathread, - Parachain, - UpgradingParathread, - DowngradingParachain, - OffboardingParathread, - OffboardingParachain, - } - #[derive(Clone, Debug)] - pub struct ParaPastCodeMeta<_0> { - pub upgrade_times: ::std::vec::Vec< - my_types::polkadot_runtime_parachains::paras::ReplacementTimes<_0>, - >, - pub last_pruned: ::core::option::Option<_0>, - } - #[derive(Clone, Debug)] - pub struct PvfCheckActiveVoteState<_0> { - pub votes_accept: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub votes_reject: DecodedBits< - ::core::primitive::u8, - my_types::bitvec::order::Lsb0, - >, - pub age: ::core::primitive::u32, - pub created_at: _0, - pub causes: ::std::vec::Vec< - my_types::polkadot_runtime_parachains::paras::PvfCheckCause<_0>, - >, - } - #[derive(Clone, Debug)] - pub enum PvfCheckCause<_0> { - Onboarding(my_types::polkadot_parachain::primitives::Id), - Upgrade { - id: my_types::polkadot_parachain::primitives::Id, - relay_parent_number: _0, - }, - } - #[derive(Clone, Debug)] - pub struct ReplacementTimes<_0> { - pub expected_at: _0, - pub activated_at: _0, - } - } - pub mod paras_inherent { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call { - ///See [`Pallet::enter`]. - enter { - data: my_types::polkadot_primitives::v5::InherentData< - my_types::sp_runtime::generic::header::Header< - ::core::primitive::u32, - my_types::sp_runtime::traits::BlakeTwo256, - >, - >, - }, - } - #[derive(Clone, Debug)] - ///The `Error` enum of this pallet. - pub enum Error { - ///Inclusion inherent called more than once per block. - TooManyInclusionInherents, - ///The hash of the submitted parent header doesn't correspond to the saved block hash of - ///the parent. - InvalidParentHeader, - ///Disputed candidate that was concluded invalid. - CandidateConcludedInvalid, - ///The data given to the inherent will result in an overweight block. - InherentOverweight, - ///The ordering of dispute statements was invalid. - DisputeStatementsUnsortedOrDuplicates, - ///A dispute statement was invalid. - DisputeInvalid, - } - } - } - pub mod scheduler { - use super::my_types; - #[derive(Clone, Debug)] - pub enum AssignmentKind { - Parachain, - Parathread( - my_types::polkadot_primitives::v5::collator_app::Public, - ::core::primitive::u32, - ), - } - #[derive(Clone, Debug)] - pub struct CoreAssignment { - pub core: my_types::polkadot_primitives::v5::CoreIndex, - pub para_id: my_types::polkadot_parachain::primitives::Id, - pub kind: my_types::polkadot_runtime_parachains::scheduler::AssignmentKind, - pub group_idx: my_types::polkadot_primitives::v5::GroupIndex, - } - #[derive(Clone, Debug)] - pub struct ParathreadClaimQueue { - pub queue: ::std::vec::Vec< - my_types::polkadot_runtime_parachains::scheduler::QueuedParathread, - >, - pub next_core_offset: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct QueuedParathread { - pub claim: my_types::polkadot_primitives::v5::ParathreadEntry, - pub core_offset: ::core::primitive::u32, - } - } - pub mod shared { - use super::my_types; - pub mod pallet { - use super::my_types; - #[derive(Clone, Debug)] - ///Contains a variant per dispatchable extrinsic that this pallet has. - pub enum Call {} - } - } - } - pub mod primitive_types { - use super::my_types; - #[derive(Clone, Debug)] - pub struct H256(pub [::core::primitive::u8; 32usize]); - } - pub mod sp_arithmetic { - use super::my_types; - pub mod fixed_point { - use super::my_types; - #[derive(Clone, Debug)] - pub struct FixedI64(pub ::core::primitive::i64); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct FixedU128(pub ::core::primitive::u128); - } - pub mod per_things { - use super::my_types; - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct PerU16(pub ::core::primitive::u16); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Perbill(pub ::core::primitive::u32); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Percent(pub ::core::primitive::u8); - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Permill(pub ::core::primitive::u32); - } - #[derive(Clone, Debug)] - pub enum ArithmeticError { - Underflow, - Overflow, - DivisionByZero, - } - } - pub mod sp_authority_discovery { - use super::my_types; - pub mod app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - } - } - pub mod sp_consensus_babe { - use super::my_types; - pub mod app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::sr25519::Public); - } - pub mod digests { - use super::my_types; - #[derive(Clone, Debug)] - pub enum NextConfigDescriptor { - V1 { - c: (::core::primitive::u64, ::core::primitive::u64), - allowed_slots: my_types::sp_consensus_babe::AllowedSlots, - }, - } - #[derive(Clone, Debug)] - pub enum PreDigest { - Primary(my_types::sp_consensus_babe::digests::PrimaryPreDigest), - SecondaryPlain( - my_types::sp_consensus_babe::digests::SecondaryPlainPreDigest, - ), - SecondaryVRF( - my_types::sp_consensus_babe::digests::SecondaryVRFPreDigest, - ), - } - #[derive(Clone, Debug)] - pub struct PrimaryPreDigest { - pub authority_index: ::core::primitive::u32, - pub slot: my_types::sp_consensus_slots::Slot, - pub vrf_signature: my_types::sp_core::sr25519::vrf::VrfSignature, - } - #[derive(Clone, Debug)] - pub struct SecondaryPlainPreDigest { - pub authority_index: ::core::primitive::u32, - pub slot: my_types::sp_consensus_slots::Slot, - } - #[derive(Clone, Debug)] - pub struct SecondaryVRFPreDigest { - pub authority_index: ::core::primitive::u32, - pub slot: my_types::sp_consensus_slots::Slot, - pub vrf_signature: my_types::sp_core::sr25519::vrf::VrfSignature, - } - } - #[derive(Clone, Debug)] - pub enum AllowedSlots { - PrimarySlots, - PrimaryAndSecondaryPlainSlots, - PrimaryAndSecondaryVRFSlots, - } - #[derive(Clone, Debug)] - pub struct BabeConfiguration { - pub slot_duration: ::core::primitive::u64, - pub epoch_length: ::core::primitive::u64, - pub c: (::core::primitive::u64, ::core::primitive::u64), - pub authorities: ::std::vec::Vec< - (my_types::sp_consensus_babe::app::Public, ::core::primitive::u64), - >, - pub randomness: [::core::primitive::u8; 32usize], - pub allowed_slots: my_types::sp_consensus_babe::AllowedSlots, - } - #[derive(Clone, Debug)] - pub struct BabeEpochConfiguration { - pub c: (::core::primitive::u64, ::core::primitive::u64), - pub allowed_slots: my_types::sp_consensus_babe::AllowedSlots, - } - #[derive(Clone, Debug)] - pub struct Epoch { - pub epoch_index: ::core::primitive::u64, - pub start_slot: my_types::sp_consensus_slots::Slot, - pub duration: ::core::primitive::u64, - pub authorities: ::std::vec::Vec< - (my_types::sp_consensus_babe::app::Public, ::core::primitive::u64), - >, - pub randomness: [::core::primitive::u8; 32usize], - pub config: my_types::sp_consensus_babe::BabeEpochConfiguration, - } - #[derive(Clone, Debug)] - pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); - } - pub mod sp_consensus_beefy { - use super::my_types; - pub mod commitment { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Commitment<_0> { - pub payload: my_types::sp_consensus_beefy::payload::Payload, - pub block_number: _0, - pub validator_set_id: ::core::primitive::u64, - } - } - pub mod crypto { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::ecdsa::Public); - #[derive(Clone, Debug)] - pub struct Signature(pub my_types::sp_core::ecdsa::Signature); - } - pub mod payload { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Payload( - pub ::std::vec::Vec< - ( - [::core::primitive::u8; 2usize], - ::std::vec::Vec<::core::primitive::u8>, - ), - >, - ); - } - #[derive(Clone, Debug)] - pub struct EquivocationProof<_0, _1, _2> { - pub first: my_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, - pub second: my_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, - } - #[derive(Clone, Debug)] - pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); - #[derive(Clone, Debug)] - pub struct ValidatorSet<_0> { - pub validators: ::std::vec::Vec<_0>, - pub id: ::core::primitive::u64, - } - #[derive(Clone, Debug)] - pub struct VoteMessage<_0, _1, _2> { - pub commitment: my_types::sp_consensus_beefy::commitment::Commitment<_0>, - pub id: _1, - pub signature: _2, - } - } - pub mod sp_consensus_grandpa { - use super::my_types; - pub mod app { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub my_types::sp_core::ed25519::Public); - #[derive(Clone, Debug)] - pub struct Signature(pub my_types::sp_core::ed25519::Signature); - } - #[derive(Clone, Debug)] - pub enum Equivocation<_0, _1> { - Prevote( - my_types::finality_grandpa::Equivocation< - my_types::sp_consensus_grandpa::app::Public, - my_types::finality_grandpa::Prevote<_0, _1>, - my_types::sp_consensus_grandpa::app::Signature, - >, - ), - Precommit( - my_types::finality_grandpa::Equivocation< - my_types::sp_consensus_grandpa::app::Public, - my_types::finality_grandpa::Precommit<_0, _1>, - my_types::sp_consensus_grandpa::app::Signature, - >, - ), - } - #[derive(Clone, Debug)] - pub struct EquivocationProof<_0, _1> { - pub set_id: ::core::primitive::u64, - pub equivocation: my_types::sp_consensus_grandpa::Equivocation<_0, _1>, - } - #[derive(Clone, Debug)] - pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>); - } - pub mod sp_consensus_slots { - use super::my_types; - #[derive(Clone, Debug)] - pub struct EquivocationProof<_0, _1> { - pub offender: _1, - pub slot: my_types::sp_consensus_slots::Slot, - pub first_header: _0, - pub second_header: _0, - } - #[derive(Clone, Debug, parity_scale_codec::CompactAs)] - pub struct Slot(pub ::core::primitive::u64); - } - pub mod sp_core { - use super::my_types; - pub mod crypto { - use super::my_types; - #[derive(Clone, Debug)] - pub struct AccountId32(pub [::core::primitive::u8; 32usize]); - #[derive(Clone, Debug)] - pub struct KeyTypeId(pub [::core::primitive::u8; 4usize]); - } - pub mod ecdsa { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub [::core::primitive::u8; 33usize]); - #[derive(Clone, Debug)] - pub struct Signature(pub [::core::primitive::u8; 65usize]); - } - pub mod ed25519 { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive(Clone, Debug)] - pub struct Signature(pub [::core::primitive::u8; 64usize]); - } - pub mod sr25519 { - use super::my_types; - pub mod vrf { - use super::my_types; - #[derive(Clone, Debug)] - pub struct VrfSignature { - pub output: [::core::primitive::u8; 32usize], - pub proof: [::core::primitive::u8; 64usize], - } - } - #[derive(Clone, Debug)] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive(Clone, Debug)] - pub struct Signature(pub [::core::primitive::u8; 64usize]); - } - #[derive(Clone, Debug)] - pub struct OpaqueMetadata(pub ::std::vec::Vec<::core::primitive::u8>); - #[derive(Clone, Debug)] - pub enum Void {} - } - pub mod sp_inherents { - use super::my_types; - #[derive(Clone, Debug)] - pub struct CheckInherentsResult { - pub okay: ::core::primitive::bool, - pub fatal_error: ::core::primitive::bool, - pub errors: my_types::sp_inherents::InherentData, - } - #[derive(Clone, Debug)] - pub struct InherentData { - pub data: ::std::collections::BTreeMap< - [::core::primitive::u8; 8usize], - ::std::vec::Vec<::core::primitive::u8>, - >, - } - } - pub mod sp_mmr_primitives { - use super::my_types; - #[derive(Clone, Debug)] - pub struct EncodableOpaqueLeaf(pub ::std::vec::Vec<::core::primitive::u8>); - #[derive(Clone, Debug)] - pub enum Error { - InvalidNumericOp, - Push, - GetRoot, - Commit, - GenerateProof, - Verify, - LeafNotFound, - PalletNotIncluded, - InvalidLeafIndex, - InvalidBestKnownBlock, - } - #[derive(Clone, Debug)] - pub struct Proof<_0> { - pub leaf_indices: ::std::vec::Vec<::core::primitive::u64>, - pub leaf_count: ::core::primitive::u64, - pub items: ::std::vec::Vec<_0>, - } - } - pub mod sp_npos_elections { - use super::my_types; - #[derive(Clone, Debug)] - pub struct ElectionScore { - pub minimal_stake: ::core::primitive::u128, - pub sum_stake: ::core::primitive::u128, - pub sum_stake_squared: ::core::primitive::u128, - } - #[derive(Clone, Debug)] - pub struct Support<_0> { - pub total: ::core::primitive::u128, - pub voters: ::std::vec::Vec<(_0, ::core::primitive::u128)>, - } - } - pub mod sp_runtime { - use super::my_types; - pub mod generic { - use super::my_types; - pub mod block { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Block<_0, _1> { - pub header: _0, - pub extrinsics: ::std::vec::Vec<_1>, - } - } - pub mod digest { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Digest { - pub logs: ::std::vec::Vec< - my_types::sp_runtime::generic::digest::DigestItem, - >, - } - #[derive(Clone, Debug)] - pub enum DigestItem { - PreRuntime( - [::core::primitive::u8; 4usize], - ::std::vec::Vec<::core::primitive::u8>, - ), - Consensus( - [::core::primitive::u8; 4usize], - ::std::vec::Vec<::core::primitive::u8>, - ), - Seal( - [::core::primitive::u8; 4usize], - ::std::vec::Vec<::core::primitive::u8>, - ), - Other(::std::vec::Vec<::core::primitive::u8>), - RuntimeEnvironmentUpdated, - } - } - pub mod era { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Era { - Immortal, - Mortal1(::core::primitive::u8), - Mortal2(::core::primitive::u8), - Mortal3(::core::primitive::u8), - Mortal4(::core::primitive::u8), - Mortal5(::core::primitive::u8), - Mortal6(::core::primitive::u8), - Mortal7(::core::primitive::u8), - Mortal8(::core::primitive::u8), - Mortal9(::core::primitive::u8), - Mortal10(::core::primitive::u8), - Mortal11(::core::primitive::u8), - Mortal12(::core::primitive::u8), - Mortal13(::core::primitive::u8), - Mortal14(::core::primitive::u8), - Mortal15(::core::primitive::u8), - Mortal16(::core::primitive::u8), - Mortal17(::core::primitive::u8), - Mortal18(::core::primitive::u8), - Mortal19(::core::primitive::u8), - Mortal20(::core::primitive::u8), - Mortal21(::core::primitive::u8), - Mortal22(::core::primitive::u8), - Mortal23(::core::primitive::u8), - Mortal24(::core::primitive::u8), - Mortal25(::core::primitive::u8), - Mortal26(::core::primitive::u8), - Mortal27(::core::primitive::u8), - Mortal28(::core::primitive::u8), - Mortal29(::core::primitive::u8), - Mortal30(::core::primitive::u8), - Mortal31(::core::primitive::u8), - Mortal32(::core::primitive::u8), - Mortal33(::core::primitive::u8), - Mortal34(::core::primitive::u8), - Mortal35(::core::primitive::u8), - Mortal36(::core::primitive::u8), - Mortal37(::core::primitive::u8), - Mortal38(::core::primitive::u8), - Mortal39(::core::primitive::u8), - Mortal40(::core::primitive::u8), - Mortal41(::core::primitive::u8), - Mortal42(::core::primitive::u8), - Mortal43(::core::primitive::u8), - Mortal44(::core::primitive::u8), - Mortal45(::core::primitive::u8), - Mortal46(::core::primitive::u8), - Mortal47(::core::primitive::u8), - Mortal48(::core::primitive::u8), - Mortal49(::core::primitive::u8), - Mortal50(::core::primitive::u8), - Mortal51(::core::primitive::u8), - Mortal52(::core::primitive::u8), - Mortal53(::core::primitive::u8), - Mortal54(::core::primitive::u8), - Mortal55(::core::primitive::u8), - Mortal56(::core::primitive::u8), - Mortal57(::core::primitive::u8), - Mortal58(::core::primitive::u8), - Mortal59(::core::primitive::u8), - Mortal60(::core::primitive::u8), - Mortal61(::core::primitive::u8), - Mortal62(::core::primitive::u8), - Mortal63(::core::primitive::u8), - Mortal64(::core::primitive::u8), - Mortal65(::core::primitive::u8), - Mortal66(::core::primitive::u8), - Mortal67(::core::primitive::u8), - Mortal68(::core::primitive::u8), - Mortal69(::core::primitive::u8), - Mortal70(::core::primitive::u8), - Mortal71(::core::primitive::u8), - Mortal72(::core::primitive::u8), - Mortal73(::core::primitive::u8), - Mortal74(::core::primitive::u8), - Mortal75(::core::primitive::u8), - Mortal76(::core::primitive::u8), - Mortal77(::core::primitive::u8), - Mortal78(::core::primitive::u8), - Mortal79(::core::primitive::u8), - Mortal80(::core::primitive::u8), - Mortal81(::core::primitive::u8), - Mortal82(::core::primitive::u8), - Mortal83(::core::primitive::u8), - Mortal84(::core::primitive::u8), - Mortal85(::core::primitive::u8), - Mortal86(::core::primitive::u8), - Mortal87(::core::primitive::u8), - Mortal88(::core::primitive::u8), - Mortal89(::core::primitive::u8), - Mortal90(::core::primitive::u8), - Mortal91(::core::primitive::u8), - Mortal92(::core::primitive::u8), - Mortal93(::core::primitive::u8), - Mortal94(::core::primitive::u8), - Mortal95(::core::primitive::u8), - Mortal96(::core::primitive::u8), - Mortal97(::core::primitive::u8), - Mortal98(::core::primitive::u8), - Mortal99(::core::primitive::u8), - Mortal100(::core::primitive::u8), - Mortal101(::core::primitive::u8), - Mortal102(::core::primitive::u8), - Mortal103(::core::primitive::u8), - Mortal104(::core::primitive::u8), - Mortal105(::core::primitive::u8), - Mortal106(::core::primitive::u8), - Mortal107(::core::primitive::u8), - Mortal108(::core::primitive::u8), - Mortal109(::core::primitive::u8), - Mortal110(::core::primitive::u8), - Mortal111(::core::primitive::u8), - Mortal112(::core::primitive::u8), - Mortal113(::core::primitive::u8), - Mortal114(::core::primitive::u8), - Mortal115(::core::primitive::u8), - Mortal116(::core::primitive::u8), - Mortal117(::core::primitive::u8), - Mortal118(::core::primitive::u8), - Mortal119(::core::primitive::u8), - Mortal120(::core::primitive::u8), - Mortal121(::core::primitive::u8), - Mortal122(::core::primitive::u8), - Mortal123(::core::primitive::u8), - Mortal124(::core::primitive::u8), - Mortal125(::core::primitive::u8), - Mortal126(::core::primitive::u8), - Mortal127(::core::primitive::u8), - Mortal128(::core::primitive::u8), - Mortal129(::core::primitive::u8), - Mortal130(::core::primitive::u8), - Mortal131(::core::primitive::u8), - Mortal132(::core::primitive::u8), - Mortal133(::core::primitive::u8), - Mortal134(::core::primitive::u8), - Mortal135(::core::primitive::u8), - Mortal136(::core::primitive::u8), - Mortal137(::core::primitive::u8), - Mortal138(::core::primitive::u8), - Mortal139(::core::primitive::u8), - Mortal140(::core::primitive::u8), - Mortal141(::core::primitive::u8), - Mortal142(::core::primitive::u8), - Mortal143(::core::primitive::u8), - Mortal144(::core::primitive::u8), - Mortal145(::core::primitive::u8), - Mortal146(::core::primitive::u8), - Mortal147(::core::primitive::u8), - Mortal148(::core::primitive::u8), - Mortal149(::core::primitive::u8), - Mortal150(::core::primitive::u8), - Mortal151(::core::primitive::u8), - Mortal152(::core::primitive::u8), - Mortal153(::core::primitive::u8), - Mortal154(::core::primitive::u8), - Mortal155(::core::primitive::u8), - Mortal156(::core::primitive::u8), - Mortal157(::core::primitive::u8), - Mortal158(::core::primitive::u8), - Mortal159(::core::primitive::u8), - Mortal160(::core::primitive::u8), - Mortal161(::core::primitive::u8), - Mortal162(::core::primitive::u8), - Mortal163(::core::primitive::u8), - Mortal164(::core::primitive::u8), - Mortal165(::core::primitive::u8), - Mortal166(::core::primitive::u8), - Mortal167(::core::primitive::u8), - Mortal168(::core::primitive::u8), - Mortal169(::core::primitive::u8), - Mortal170(::core::primitive::u8), - Mortal171(::core::primitive::u8), - Mortal172(::core::primitive::u8), - Mortal173(::core::primitive::u8), - Mortal174(::core::primitive::u8), - Mortal175(::core::primitive::u8), - Mortal176(::core::primitive::u8), - Mortal177(::core::primitive::u8), - Mortal178(::core::primitive::u8), - Mortal179(::core::primitive::u8), - Mortal180(::core::primitive::u8), - Mortal181(::core::primitive::u8), - Mortal182(::core::primitive::u8), - Mortal183(::core::primitive::u8), - Mortal184(::core::primitive::u8), - Mortal185(::core::primitive::u8), - Mortal186(::core::primitive::u8), - Mortal187(::core::primitive::u8), - Mortal188(::core::primitive::u8), - Mortal189(::core::primitive::u8), - Mortal190(::core::primitive::u8), - Mortal191(::core::primitive::u8), - Mortal192(::core::primitive::u8), - Mortal193(::core::primitive::u8), - Mortal194(::core::primitive::u8), - Mortal195(::core::primitive::u8), - Mortal196(::core::primitive::u8), - Mortal197(::core::primitive::u8), - Mortal198(::core::primitive::u8), - Mortal199(::core::primitive::u8), - Mortal200(::core::primitive::u8), - Mortal201(::core::primitive::u8), - Mortal202(::core::primitive::u8), - Mortal203(::core::primitive::u8), - Mortal204(::core::primitive::u8), - Mortal205(::core::primitive::u8), - Mortal206(::core::primitive::u8), - Mortal207(::core::primitive::u8), - Mortal208(::core::primitive::u8), - Mortal209(::core::primitive::u8), - Mortal210(::core::primitive::u8), - Mortal211(::core::primitive::u8), - Mortal212(::core::primitive::u8), - Mortal213(::core::primitive::u8), - Mortal214(::core::primitive::u8), - Mortal215(::core::primitive::u8), - Mortal216(::core::primitive::u8), - Mortal217(::core::primitive::u8), - Mortal218(::core::primitive::u8), - Mortal219(::core::primitive::u8), - Mortal220(::core::primitive::u8), - Mortal221(::core::primitive::u8), - Mortal222(::core::primitive::u8), - Mortal223(::core::primitive::u8), - Mortal224(::core::primitive::u8), - Mortal225(::core::primitive::u8), - Mortal226(::core::primitive::u8), - Mortal227(::core::primitive::u8), - Mortal228(::core::primitive::u8), - Mortal229(::core::primitive::u8), - Mortal230(::core::primitive::u8), - Mortal231(::core::primitive::u8), - Mortal232(::core::primitive::u8), - Mortal233(::core::primitive::u8), - Mortal234(::core::primitive::u8), - Mortal235(::core::primitive::u8), - Mortal236(::core::primitive::u8), - Mortal237(::core::primitive::u8), - Mortal238(::core::primitive::u8), - Mortal239(::core::primitive::u8), - Mortal240(::core::primitive::u8), - Mortal241(::core::primitive::u8), - Mortal242(::core::primitive::u8), - Mortal243(::core::primitive::u8), - Mortal244(::core::primitive::u8), - Mortal245(::core::primitive::u8), - Mortal246(::core::primitive::u8), - Mortal247(::core::primitive::u8), - Mortal248(::core::primitive::u8), - Mortal249(::core::primitive::u8), - Mortal250(::core::primitive::u8), - Mortal251(::core::primitive::u8), - Mortal252(::core::primitive::u8), - Mortal253(::core::primitive::u8), - Mortal254(::core::primitive::u8), - Mortal255(::core::primitive::u8), - } - } - pub mod header { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Header<_0, _1> { - pub parent_hash: my_types::primitive_types::H256, - pub number: _0, - pub state_root: my_types::primitive_types::H256, - pub extrinsics_root: my_types::primitive_types::H256, - pub digest: my_types::sp_runtime::generic::digest::Digest, - pub __ignore: ::core::marker::PhantomData<_1>, - } - } - pub mod unchecked_extrinsic { - use super::my_types; - #[derive(Clone, Debug)] - pub struct UncheckedExtrinsic<_0, _1, _2, _3>( - pub ::std::vec::Vec<::core::primitive::u8>, - pub ::core::marker::PhantomData<(_1, _0, _2, _3)>, - ); - } - } - pub mod multiaddress { - use super::my_types; - #[derive(Clone, Debug)] - pub enum MultiAddress<_0, _1> { - Id(_0), - Index(_1), - Raw(::std::vec::Vec<::core::primitive::u8>), - Address32([::core::primitive::u8; 32usize]), - Address20([::core::primitive::u8; 20usize]), - } - } - pub mod traits { - use super::my_types; - #[derive(Clone, Debug)] - pub struct BlakeTwo256; - } - pub mod transaction_validity { - use super::my_types; - #[derive(Clone, Debug)] - pub enum InvalidTransaction { - Call, - Payment, - Future, - Stale, - BadProof, - AncientBirthBlock, - ExhaustsResources, - Custom(::core::primitive::u8), - BadMandatory, - MandatoryValidation, - BadSigner, - } - #[derive(Clone, Debug)] - pub enum TransactionSource { - InBlock, - Local, - External, - } - #[derive(Clone, Debug)] - pub enum TransactionValidityError { - Invalid(my_types::sp_runtime::transaction_validity::InvalidTransaction), - Unknown(my_types::sp_runtime::transaction_validity::UnknownTransaction), - } - #[derive(Clone, Debug)] - pub enum UnknownTransaction { - CannotLookup, - NoUnsignedValidator, - Custom(::core::primitive::u8), - } - #[derive(Clone, Debug)] - pub struct ValidTransaction { - pub priority: ::core::primitive::u64, - pub requires: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, - pub provides: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, - pub longevity: ::core::primitive::u64, - pub propagate: ::core::primitive::bool, - } - } - #[derive(Clone, Debug)] - pub enum DispatchError { - Other, - CannotLookup, - BadOrigin, - Module(my_types::sp_runtime::ModuleError), - ConsumerRemaining, - NoProviders, - TooManyConsumers, - Token(my_types::sp_runtime::TokenError), - Arithmetic(my_types::sp_arithmetic::ArithmeticError), - Transactional(my_types::sp_runtime::TransactionalError), - Exhausted, - Corruption, - Unavailable, - RootNotAllowed, - } - #[derive(Clone, Debug)] - pub struct DispatchErrorWithPostInfo<_0> { - pub post_info: _0, - pub error: my_types::sp_runtime::DispatchError, - } - #[derive(Clone, Debug)] - pub struct ModuleError { - pub index: ::core::primitive::u8, - pub error: [::core::primitive::u8; 4usize], - } - #[derive(Clone, Debug)] - pub enum MultiSignature { - Ed25519(my_types::sp_core::ed25519::Signature), - Sr25519(my_types::sp_core::sr25519::Signature), - Ecdsa(my_types::sp_core::ecdsa::Signature), - } - #[derive(Clone, Debug)] - pub enum MultiSigner { - Ed25519(my_types::sp_core::ed25519::Public), - Sr25519(my_types::sp_core::sr25519::Public), - Ecdsa(my_types::sp_core::ecdsa::Public), - } - #[derive(Clone, Debug)] - pub enum TokenError { - FundsUnavailable, - OnlyProvider, - BelowMinimum, - CannotCreate, - UnknownAsset, - Frozen, - Unsupported, - CannotCreateHold, - NotExpendable, - Blocked, - } - #[derive(Clone, Debug)] - pub enum TransactionalError { - LimitReached, - NoLayer, - } - } - pub mod sp_session { - use super::my_types; - #[derive(Clone, Debug)] - pub struct MembershipProof { - pub session: ::core::primitive::u32, - pub trie_nodes: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, - pub validator_count: ::core::primitive::u32, - } - } - pub mod sp_staking { - use super::my_types; - pub mod offence { - use super::my_types; - #[derive(Clone, Debug)] - pub struct OffenceDetails<_0, _1> { - pub offender: _1, - pub reporters: ::std::vec::Vec<_0>, - } - } - } - pub mod sp_version { - use super::my_types; - #[derive(Clone, Debug)] - pub struct RuntimeVersion { - pub spec_name: ::std::string::String, - pub impl_name: ::std::string::String, - pub authoring_version: ::core::primitive::u32, - pub spec_version: ::core::primitive::u32, - pub impl_version: ::core::primitive::u32, - pub apis: ::std::vec::Vec< - ([::core::primitive::u8; 8usize], ::core::primitive::u32), - >, - pub transaction_version: ::core::primitive::u32, - pub state_version: ::core::primitive::u8, - } - } - pub mod sp_weights { - use super::my_types; - pub mod weight_v2 { - use super::my_types; - #[derive(Clone, Debug)] - pub struct Weight { - pub ref_time: ::core::primitive::u64, - pub proof_size: ::core::primitive::u64, - } - } - #[derive(Clone, Debug)] - pub struct RuntimeDbWeight { - pub read: ::core::primitive::u64, - pub write: ::core::primitive::u64, - } - } - pub mod xcm { - use super::my_types; - pub mod double_encoded { - use super::my_types; - #[derive(Clone, Debug)] - pub struct DoubleEncoded { - pub encoded: ::std::vec::Vec<::core::primitive::u8>, - } - } - pub mod v2 { - use super::my_types; - pub mod junction { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Junction { - Parachain(::core::primitive::u32), - AccountId32 { - network: my_types::xcm::v2::NetworkId, - id: [::core::primitive::u8; 32usize], - }, - AccountIndex64 { - network: my_types::xcm::v2::NetworkId, - index: ::core::primitive::u64, - }, - AccountKey20 { - network: my_types::xcm::v2::NetworkId, - key: [::core::primitive::u8; 20usize], - }, - PalletInstance(::core::primitive::u8), - GeneralIndex(::core::primitive::u128), - GeneralKey( - my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - OnlyChild, - Plurality { - id: my_types::xcm::v2::BodyId, - part: my_types::xcm::v2::BodyPart, - }, - } - } - pub mod multiasset { - use super::my_types; - #[derive(Clone, Debug)] - pub enum AssetId { - Concrete(my_types::xcm::v2::multilocation::MultiLocation), - Abstract(::std::vec::Vec<::core::primitive::u8>), - } - #[derive(Clone, Debug)] - pub enum AssetInstance { - Undefined, - Index(::core::primitive::u128), - Array4([::core::primitive::u8; 4usize]), - Array8([::core::primitive::u8; 8usize]), - Array16([::core::primitive::u8; 16usize]), - Array32([::core::primitive::u8; 32usize]), - Blob(::std::vec::Vec<::core::primitive::u8>), - } - #[derive(Clone, Debug)] - pub enum Fungibility { - Fungible(::core::primitive::u128), - NonFungible(my_types::xcm::v2::multiasset::AssetInstance), - } - #[derive(Clone, Debug)] - pub struct MultiAsset { - pub id: my_types::xcm::v2::multiasset::AssetId, - pub fun: my_types::xcm::v2::multiasset::Fungibility, - } - #[derive(Clone, Debug)] - pub enum MultiAssetFilter { - Definite(my_types::xcm::v2::multiasset::MultiAssets), - Wild(my_types::xcm::v2::multiasset::WildMultiAsset), - } - #[derive(Clone, Debug)] - pub struct MultiAssets( - pub ::std::vec::Vec, - ); - #[derive(Clone, Debug)] - pub enum WildFungibility { - Fungible, - NonFungible, - } - #[derive(Clone, Debug)] - pub enum WildMultiAsset { - All, - AllOf { - id: my_types::xcm::v2::multiasset::AssetId, - fun: my_types::xcm::v2::multiasset::WildFungibility, - }, - } - } - pub mod multilocation { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Junctions { - Here, - X1(my_types::xcm::v2::junction::Junction), - X2( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X3( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X4( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X5( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X6( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X7( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - X8( - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - my_types::xcm::v2::junction::Junction, - ), - } - #[derive(Clone, Debug)] - pub struct MultiLocation { - pub parents: ::core::primitive::u8, - pub interior: my_types::xcm::v2::multilocation::Junctions, - } - } - pub mod traits { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Error { - Overflow, - Unimplemented, - UntrustedReserveLocation, - UntrustedTeleportLocation, - MultiLocationFull, - MultiLocationNotInvertible, - BadOrigin, - InvalidLocation, - AssetNotFound, - FailedToTransactAsset, - NotWithdrawable, - LocationCannotHold, - ExceedsMaxMessageSize, - DestinationUnsupported, - Transport, - Unroutable, - UnknownClaim, - FailedToDecode, - MaxWeightInvalid, - NotHoldingFees, - TooExpensive, - Trap(::core::primitive::u64), - UnhandledXcmVersion, - WeightLimitReached(::core::primitive::u64), - Barrier, - WeightNotComputable, - } - } - #[derive(Clone, Debug)] - pub enum BodyId { - Unit, - Named( - my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - Index(::core::primitive::u32), - Executive, - Technical, - Legislative, - Judicial, - Defense, - Administration, - Treasury, - } - #[derive(Clone, Debug)] - pub enum BodyPart { - Voice, - Members { count: ::core::primitive::u32 }, - Fraction { nom: ::core::primitive::u32, denom: ::core::primitive::u32 }, - AtLeastProportion { - nom: ::core::primitive::u32, - denom: ::core::primitive::u32, - }, - MoreThanProportion { - nom: ::core::primitive::u32, - denom: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - pub enum Instruction { - WithdrawAsset(my_types::xcm::v2::multiasset::MultiAssets), - ReserveAssetDeposited(my_types::xcm::v2::multiasset::MultiAssets), - ReceiveTeleportedAsset(my_types::xcm::v2::multiasset::MultiAssets), - QueryResponse { - query_id: ::core::primitive::u64, - response: my_types::xcm::v2::Response, - max_weight: ::core::primitive::u64, - }, - TransferAsset { - assets: my_types::xcm::v2::multiasset::MultiAssets, - beneficiary: my_types::xcm::v2::multilocation::MultiLocation, - }, - TransferReserveAsset { - assets: my_types::xcm::v2::multiasset::MultiAssets, - dest: my_types::xcm::v2::multilocation::MultiLocation, - xcm: my_types::xcm::v2::Xcm, - }, - Transact { - origin_type: my_types::xcm::v2::OriginKind, - require_weight_at_most: ::core::primitive::u64, - call: my_types::xcm::double_encoded::DoubleEncoded, - }, - HrmpNewChannelOpenRequest { - sender: ::core::primitive::u32, - max_message_size: ::core::primitive::u32, - max_capacity: ::core::primitive::u32, - }, - HrmpChannelAccepted { recipient: ::core::primitive::u32 }, - HrmpChannelClosing { - initiator: ::core::primitive::u32, - sender: ::core::primitive::u32, - recipient: ::core::primitive::u32, - }, - ClearOrigin, - DescendOrigin(my_types::xcm::v2::multilocation::Junctions), - ReportError { - query_id: ::core::primitive::u64, - dest: my_types::xcm::v2::multilocation::MultiLocation, - max_response_weight: ::core::primitive::u64, - }, - DepositAsset { - assets: my_types::xcm::v2::multiasset::MultiAssetFilter, - max_assets: ::core::primitive::u32, - beneficiary: my_types::xcm::v2::multilocation::MultiLocation, - }, - DepositReserveAsset { - assets: my_types::xcm::v2::multiasset::MultiAssetFilter, - max_assets: ::core::primitive::u32, - dest: my_types::xcm::v2::multilocation::MultiLocation, - xcm: my_types::xcm::v2::Xcm, - }, - ExchangeAsset { - give: my_types::xcm::v2::multiasset::MultiAssetFilter, - receive: my_types::xcm::v2::multiasset::MultiAssets, - }, - InitiateReserveWithdraw { - assets: my_types::xcm::v2::multiasset::MultiAssetFilter, - reserve: my_types::xcm::v2::multilocation::MultiLocation, - xcm: my_types::xcm::v2::Xcm, - }, - InitiateTeleport { - assets: my_types::xcm::v2::multiasset::MultiAssetFilter, - dest: my_types::xcm::v2::multilocation::MultiLocation, - xcm: my_types::xcm::v2::Xcm, - }, - QueryHolding { - query_id: ::core::primitive::u64, - dest: my_types::xcm::v2::multilocation::MultiLocation, - assets: my_types::xcm::v2::multiasset::MultiAssetFilter, - max_response_weight: ::core::primitive::u64, - }, - BuyExecution { - fees: my_types::xcm::v2::multiasset::MultiAsset, - weight_limit: my_types::xcm::v2::WeightLimit, - }, - RefundSurplus, - SetErrorHandler(my_types::xcm::v2::Xcm), - SetAppendix(my_types::xcm::v2::Xcm), - ClearError, - ClaimAsset { - assets: my_types::xcm::v2::multiasset::MultiAssets, - ticket: my_types::xcm::v2::multilocation::MultiLocation, - }, - Trap(::core::primitive::u64), - SubscribeVersion { - query_id: ::core::primitive::u64, - max_response_weight: ::core::primitive::u64, - }, - UnsubscribeVersion, - } - #[derive(Clone, Debug)] - pub enum NetworkId { - Any, - Named( - my_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - Polkadot, - Kusama, - } - #[derive(Clone, Debug)] - pub enum OriginKind { - Native, - SovereignAccount, - Superuser, - Xcm, - } - #[derive(Clone, Debug)] - pub enum Response { - Null, - Assets(my_types::xcm::v2::multiasset::MultiAssets), - ExecutionResult( - ::core::option::Option< - (::core::primitive::u32, my_types::xcm::v2::traits::Error), - >, - ), - Version(::core::primitive::u32), - } - #[derive(Clone, Debug)] - pub enum WeightLimit { - Unlimited, - Limited(::core::primitive::u64), - } - #[derive(Clone, Debug)] - pub struct Xcm(pub ::std::vec::Vec); - } - pub mod v3 { - use super::my_types; - pub mod junction { - use super::my_types; - #[derive(Clone, Debug)] - pub enum BodyId { - Unit, - Moniker([::core::primitive::u8; 4usize]), - Index(::core::primitive::u32), - Executive, - Technical, - Legislative, - Judicial, - Defense, - Administration, - Treasury, - } - #[derive(Clone, Debug)] - pub enum BodyPart { - Voice, - Members { count: ::core::primitive::u32 }, - Fraction { - nom: ::core::primitive::u32, - denom: ::core::primitive::u32, - }, - AtLeastProportion { - nom: ::core::primitive::u32, - denom: ::core::primitive::u32, - }, - MoreThanProportion { - nom: ::core::primitive::u32, - denom: ::core::primitive::u32, - }, - } - #[derive(Clone, Debug)] - pub enum Junction { - Parachain(::core::primitive::u32), - AccountId32 { - network: ::core::option::Option< - my_types::xcm::v3::junction::NetworkId, - >, - id: [::core::primitive::u8; 32usize], - }, - AccountIndex64 { - network: ::core::option::Option< - my_types::xcm::v3::junction::NetworkId, - >, - index: ::core::primitive::u64, - }, - AccountKey20 { - network: ::core::option::Option< - my_types::xcm::v3::junction::NetworkId, - >, - key: [::core::primitive::u8; 20usize], - }, - PalletInstance(::core::primitive::u8), - GeneralIndex(::core::primitive::u128), - GeneralKey { - length: ::core::primitive::u8, - data: [::core::primitive::u8; 32usize], - }, - OnlyChild, - Plurality { - id: my_types::xcm::v3::junction::BodyId, - part: my_types::xcm::v3::junction::BodyPart, - }, - GlobalConsensus(my_types::xcm::v3::junction::NetworkId), - } - #[derive(Clone, Debug)] - pub enum NetworkId { - ByGenesis([::core::primitive::u8; 32usize]), - ByFork { - block_number: ::core::primitive::u64, - block_hash: [::core::primitive::u8; 32usize], - }, - Polkadot, - Kusama, - Westend, - Rococo, - Wococo, - Ethereum { chain_id: ::core::primitive::u64 }, - BitcoinCore, - BitcoinCash, - } - } - pub mod junctions { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Junctions { - Here, - X1(my_types::xcm::v3::junction::Junction), - X2( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X3( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X4( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X5( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X6( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X7( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - X8( - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - my_types::xcm::v3::junction::Junction, - ), - } - } - pub mod multiasset { - use super::my_types; - #[derive(Clone, Debug)] - pub enum AssetId { - Concrete(my_types::xcm::v3::multilocation::MultiLocation), - Abstract([::core::primitive::u8; 32usize]), - } - #[derive(Clone, Debug)] - pub enum AssetInstance { - Undefined, - Index(::core::primitive::u128), - Array4([::core::primitive::u8; 4usize]), - Array8([::core::primitive::u8; 8usize]), - Array16([::core::primitive::u8; 16usize]), - Array32([::core::primitive::u8; 32usize]), - } - #[derive(Clone, Debug)] - pub enum Fungibility { - Fungible(::core::primitive::u128), - NonFungible(my_types::xcm::v3::multiasset::AssetInstance), - } - #[derive(Clone, Debug)] - pub struct MultiAsset { - pub id: my_types::xcm::v3::multiasset::AssetId, - pub fun: my_types::xcm::v3::multiasset::Fungibility, - } - #[derive(Clone, Debug)] - pub enum MultiAssetFilter { - Definite(my_types::xcm::v3::multiasset::MultiAssets), - Wild(my_types::xcm::v3::multiasset::WildMultiAsset), - } - #[derive(Clone, Debug)] - pub struct MultiAssets( - pub ::std::vec::Vec, - ); - #[derive(Clone, Debug)] - pub enum WildFungibility { - Fungible, - NonFungible, - } - #[derive(Clone, Debug)] - pub enum WildMultiAsset { - All, - AllOf { - id: my_types::xcm::v3::multiasset::AssetId, - fun: my_types::xcm::v3::multiasset::WildFungibility, - }, - AllCounted(::core::primitive::u32), - AllOfCounted { - id: my_types::xcm::v3::multiasset::AssetId, - fun: my_types::xcm::v3::multiasset::WildFungibility, - count: ::core::primitive::u32, - }, - } - } - pub mod multilocation { - use super::my_types; - #[derive(Clone, Debug)] - pub struct MultiLocation { - pub parents: ::core::primitive::u8, - pub interior: my_types::xcm::v3::junctions::Junctions, - } - } - pub mod traits { - use super::my_types; - #[derive(Clone, Debug)] - pub enum Error { - Overflow, - Unimplemented, - UntrustedReserveLocation, - UntrustedTeleportLocation, - LocationFull, - LocationNotInvertible, - BadOrigin, - InvalidLocation, - AssetNotFound, - FailedToTransactAsset, - NotWithdrawable, - LocationCannotHold, - ExceedsMaxMessageSize, - DestinationUnsupported, - Transport, - Unroutable, - UnknownClaim, - FailedToDecode, - MaxWeightInvalid, - NotHoldingFees, - TooExpensive, - Trap(::core::primitive::u64), - ExpectationFalse, - PalletNotFound, - NameMismatch, - VersionIncompatible, - HoldingWouldOverflow, - ExportError, - ReanchorFailed, - NoDeal, - FeesNotMet, - LockError, - NoPermission, - Unanchored, - NotDepositable, - UnhandledXcmVersion, - WeightLimitReached(my_types::sp_weights::weight_v2::Weight), - Barrier, - WeightNotComputable, - ExceedsStackLimit, - } - #[derive(Clone, Debug)] - pub enum Outcome { - Complete(my_types::sp_weights::weight_v2::Weight), - Incomplete( - my_types::sp_weights::weight_v2::Weight, - my_types::xcm::v3::traits::Error, - ), - Error(my_types::xcm::v3::traits::Error), - } - } - #[derive(Clone, Debug)] - pub enum Instruction { - WithdrawAsset(my_types::xcm::v3::multiasset::MultiAssets), - ReserveAssetDeposited(my_types::xcm::v3::multiasset::MultiAssets), - ReceiveTeleportedAsset(my_types::xcm::v3::multiasset::MultiAssets), - QueryResponse { - query_id: ::core::primitive::u64, - response: my_types::xcm::v3::Response, - max_weight: my_types::sp_weights::weight_v2::Weight, - querier: ::core::option::Option< - my_types::xcm::v3::multilocation::MultiLocation, - >, - }, - TransferAsset { - assets: my_types::xcm::v3::multiasset::MultiAssets, - beneficiary: my_types::xcm::v3::multilocation::MultiLocation, - }, - TransferReserveAsset { - assets: my_types::xcm::v3::multiasset::MultiAssets, - dest: my_types::xcm::v3::multilocation::MultiLocation, - xcm: my_types::xcm::v3::Xcm, - }, - Transact { - origin_kind: my_types::xcm::v2::OriginKind, - require_weight_at_most: my_types::sp_weights::weight_v2::Weight, - call: my_types::xcm::double_encoded::DoubleEncoded, - }, - HrmpNewChannelOpenRequest { - sender: ::core::primitive::u32, - max_message_size: ::core::primitive::u32, - max_capacity: ::core::primitive::u32, - }, - HrmpChannelAccepted { recipient: ::core::primitive::u32 }, - HrmpChannelClosing { - initiator: ::core::primitive::u32, - sender: ::core::primitive::u32, - recipient: ::core::primitive::u32, - }, - ClearOrigin, - DescendOrigin(my_types::xcm::v3::junctions::Junctions), - ReportError(my_types::xcm::v3::QueryResponseInfo), - DepositAsset { - assets: my_types::xcm::v3::multiasset::MultiAssetFilter, - beneficiary: my_types::xcm::v3::multilocation::MultiLocation, - }, - DepositReserveAsset { - assets: my_types::xcm::v3::multiasset::MultiAssetFilter, - dest: my_types::xcm::v3::multilocation::MultiLocation, - xcm: my_types::xcm::v3::Xcm, - }, - ExchangeAsset { - give: my_types::xcm::v3::multiasset::MultiAssetFilter, - want: my_types::xcm::v3::multiasset::MultiAssets, - maximal: ::core::primitive::bool, - }, - InitiateReserveWithdraw { - assets: my_types::xcm::v3::multiasset::MultiAssetFilter, - reserve: my_types::xcm::v3::multilocation::MultiLocation, - xcm: my_types::xcm::v3::Xcm, - }, - InitiateTeleport { - assets: my_types::xcm::v3::multiasset::MultiAssetFilter, - dest: my_types::xcm::v3::multilocation::MultiLocation, - xcm: my_types::xcm::v3::Xcm, - }, - ReportHolding { - response_info: my_types::xcm::v3::QueryResponseInfo, - assets: my_types::xcm::v3::multiasset::MultiAssetFilter, - }, - BuyExecution { - fees: my_types::xcm::v3::multiasset::MultiAsset, - weight_limit: my_types::xcm::v3::WeightLimit, - }, - RefundSurplus, - SetErrorHandler(my_types::xcm::v3::Xcm), - SetAppendix(my_types::xcm::v3::Xcm), - ClearError, - ClaimAsset { - assets: my_types::xcm::v3::multiasset::MultiAssets, - ticket: my_types::xcm::v3::multilocation::MultiLocation, - }, - Trap(::core::primitive::u64), - SubscribeVersion { - query_id: ::core::primitive::u64, - max_response_weight: my_types::sp_weights::weight_v2::Weight, - }, - UnsubscribeVersion, - BurnAsset(my_types::xcm::v3::multiasset::MultiAssets), - ExpectAsset(my_types::xcm::v3::multiasset::MultiAssets), - ExpectOrigin( - ::core::option::Option< - my_types::xcm::v3::multilocation::MultiLocation, - >, - ), - ExpectError( - ::core::option::Option< - (::core::primitive::u32, my_types::xcm::v3::traits::Error), - >, - ), - ExpectTransactStatus(my_types::xcm::v3::MaybeErrorCode), - QueryPallet { - module_name: ::std::vec::Vec<::core::primitive::u8>, - response_info: my_types::xcm::v3::QueryResponseInfo, - }, - ExpectPallet { - index: ::core::primitive::u32, - name: ::std::vec::Vec<::core::primitive::u8>, - module_name: ::std::vec::Vec<::core::primitive::u8>, - crate_major: ::core::primitive::u32, - min_crate_minor: ::core::primitive::u32, - }, - ReportTransactStatus(my_types::xcm::v3::QueryResponseInfo), - ClearTransactStatus, - UniversalOrigin(my_types::xcm::v3::junction::Junction), - ExportMessage { - network: my_types::xcm::v3::junction::NetworkId, - destination: my_types::xcm::v3::junctions::Junctions, - xcm: my_types::xcm::v3::Xcm, - }, - LockAsset { - asset: my_types::xcm::v3::multiasset::MultiAsset, - unlocker: my_types::xcm::v3::multilocation::MultiLocation, - }, - UnlockAsset { - asset: my_types::xcm::v3::multiasset::MultiAsset, - target: my_types::xcm::v3::multilocation::MultiLocation, - }, - NoteUnlockable { - asset: my_types::xcm::v3::multiasset::MultiAsset, - owner: my_types::xcm::v3::multilocation::MultiLocation, - }, - RequestUnlock { - asset: my_types::xcm::v3::multiasset::MultiAsset, - locker: my_types::xcm::v3::multilocation::MultiLocation, - }, - SetFeesMode { jit_withdraw: ::core::primitive::bool }, - SetTopic([::core::primitive::u8; 32usize]), - ClearTopic, - AliasOrigin(my_types::xcm::v3::multilocation::MultiLocation), - UnpaidExecution { - weight_limit: my_types::xcm::v3::WeightLimit, - check_origin: ::core::option::Option< - my_types::xcm::v3::multilocation::MultiLocation, - >, - }, - } - #[derive(Clone, Debug)] - pub enum MaybeErrorCode { - Success, - Error( - my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - ), - TruncatedError( - my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - ), - } - #[derive(Clone, Debug)] - pub struct PalletInfo { - pub index: ::core::primitive::u32, - pub name: my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - pub module_name: my_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - pub major: ::core::primitive::u32, - pub minor: ::core::primitive::u32, - pub patch: ::core::primitive::u32, - } - #[derive(Clone, Debug)] - pub struct QueryResponseInfo { - pub destination: my_types::xcm::v3::multilocation::MultiLocation, - pub query_id: ::core::primitive::u64, - pub max_weight: my_types::sp_weights::weight_v2::Weight, - } - #[derive(Clone, Debug)] - pub enum Response { - Null, - Assets(my_types::xcm::v3::multiasset::MultiAssets), - ExecutionResult( - ::core::option::Option< - (::core::primitive::u32, my_types::xcm::v3::traits::Error), - >, - ), - Version(::core::primitive::u32), - PalletsInfo( - my_types::bounded_collections::bounded_vec::BoundedVec< - my_types::xcm::v3::PalletInfo, - >, - ), - DispatchResult(my_types::xcm::v3::MaybeErrorCode), - } - #[derive(Clone, Debug)] - pub enum WeightLimit { - Unlimited, - Limited(my_types::sp_weights::weight_v2::Weight), - } - #[derive(Clone, Debug)] - pub struct Xcm(pub ::std::vec::Vec); - } - #[derive(Clone, Debug)] - pub enum VersionedAssetId { - V3(my_types::xcm::v3::multiasset::AssetId), - } - #[derive(Clone, Debug)] - pub enum VersionedMultiAssets { - V2(my_types::xcm::v2::multiasset::MultiAssets), - V3(my_types::xcm::v3::multiasset::MultiAssets), - } - #[derive(Clone, Debug)] - pub enum VersionedMultiLocation { - V2(my_types::xcm::v2::multilocation::MultiLocation), - V3(my_types::xcm::v3::multilocation::MultiLocation), - } - #[derive(Clone, Debug)] - pub enum VersionedResponse { - V2(my_types::xcm::v2::Response), - V3(my_types::xcm::v3::Response), - } - #[derive(Clone, Debug)] - pub enum VersionedXcm { - V2(my_types::xcm::v2::Xcm), - V3(my_types::xcm::v3::Xcm), - } - } -} From 1be27b34003a5139c7ddaa5b6867e1dbccf3f73d Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 29 Nov 2023 11:11:38 +0100 Subject: [PATCH 12/27] make scale_typegen directly accessible --- description/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/description/src/lib.rs b/description/src/lib.rs index 47b538d..1f2145f 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -28,6 +28,7 @@ use parity_scale_codec as _; mod description; mod formatting; mod transformer; +pub use scale_typegen; /// Create type examples for a type registry. #[cfg(feature = "type-example")] From 7ff03ad05c057b7bb84546e8cf3669b0cc3e88b9 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 29 Nov 2023 14:06:13 +0100 Subject: [PATCH 13/27] Debug and Clone derives on relevant structs --- typegen/src/typegen/mod.rs | 1 + typegen/src/typegen/settings/mod.rs | 1 + typegen/src/typegen/settings/substitutes.rs | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/typegen/src/typegen/mod.rs b/typegen/src/typegen/mod.rs index 801cad2..2e02c81 100644 --- a/typegen/src/typegen/mod.rs +++ b/typegen/src/typegen/mod.rs @@ -27,6 +27,7 @@ pub mod type_params; pub mod type_path; /// An interface for generating a types module. +#[derive(Debug, Clone, Copy)] pub struct TypeGenerator<'a> { type_registry: &'a PortableRegistry, settings: &'a TypeGeneratorSettings, diff --git a/typegen/src/typegen/settings/mod.rs b/typegen/src/typegen/settings/mod.rs index 65457cb..0a6b052 100644 --- a/typegen/src/typegen/settings/mod.rs +++ b/typegen/src/typegen/settings/mod.rs @@ -11,6 +11,7 @@ pub mod derives; pub mod substitutes; /// A struct containing all the settings for generating rust types from a type registry. +#[derive(Debug, Clone)] pub struct TypeGeneratorSettings { /// The name of the module which will contain the generated types. pub types_mod_ident: Ident, diff --git a/typegen/src/typegen/settings/substitutes.rs b/typegen/src/typegen/settings/substitutes.rs index b1eefe0..8ac1ac0 100644 --- a/typegen/src/typegen/settings/substitutes.rs +++ b/typegen/src/typegen/settings/substitutes.rs @@ -15,19 +15,19 @@ fn error(span: Span, kind: TypeSubstitutionErrorKind) -> TypeSubstitutionError { /// A map of type substitutes. We match on the paths to generated types in order /// to figure out when to swap said type with some provided substitute. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct TypeSubstitutes { substitutes: HashMap, } /// A type that substitutes another type. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Substitute { path: syn::Path, param_mapping: TypeParamMapping, } -#[derive(Debug)] +#[derive(Debug, Clone)] enum TypeParamMapping { // Pass any generics from source to target type PassThrough, @@ -254,7 +254,7 @@ macro_rules! path_segments { /// /// We use this as a common denominator, since we need a consistent keys for both /// `syn::TypePath` and `scale_info::ty::path::Path` types. -#[derive(Debug, Hash, PartialEq, Eq)] +#[derive(Debug, Clone, Hash, PartialEq, Eq)] pub struct PathSegments(pub Vec); impl From<&syn::Path> for PathSegments { From dcdeef5769d721e4f7aa4dbdf34e6507919cc8c7 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 29 Nov 2023 18:51:27 +0100 Subject: [PATCH 14/27] fix comments in code --- .gitignore | 2 +- description/src/description.rs | 9 ++++++--- description/src/lib.rs | 1 - description/src/transformer.rs | 10 ++++++---- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 5107373..5a76e8f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ Cargo.lock -/artifacts/*.rs \ No newline at end of file +/artifacts/*.rs diff --git a/description/src/description.rs b/description/src/description.rs index 5d64245..8b1c65d 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -8,7 +8,12 @@ use crate::transformer::Transformer; use super::formatting::format_type_description; -/// if format is enabled, `format_type_description` is applied to the end result. +/// Describes the type that is registered under the given `type_id`. This type description +/// is supposed to be very close to actual rust types, with some minar differences: +/// - The `struct` keyword is omitted. So the description of `struct Human { age: u8 }` is just `Human { age: u8 }`. +/// - Types are presented in a nested fashion, similar to how structures can be defined in e.g. the C programming language. +/// +/// If the `format` flag is enabled, the end result is formatted across multiple lines. Otherwise the description will be one single line string. pub fn type_description( type_id: u32, type_registry: &PortableRegistry, @@ -19,8 +24,6 @@ pub fn type_description( ty: &Type, _transformer: &Transformer, ) -> anyhow::Result { - dbg!(_type_id); - dbg!(ty); if let Some(type_name) = ty.path.ident() { return Ok(type_name); } diff --git a/description/src/lib.rs b/description/src/lib.rs index 1f2145f..730ea67 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -113,7 +113,6 @@ mod tests { } let (type_id, type_registry) = make_type::>(); - dbg!(&type_registry); assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 1d56a8a..35887e3 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -58,8 +58,7 @@ where match self.cache.borrow().get(&type_id) { Some(Cached::Recursive) => { - dbg!(self.cache.borrow()); - if !recursion_should_fall_through(&ty.type_def) { + if !recursion_should_continue(&ty.type_def) { return (self.recurse_policy)(type_id, ty, self); } } @@ -76,6 +75,7 @@ where } } +/// Returns true for types where recursion should continue, instead of being stopped when recursion in being detected. /// /// ## Background: /// @@ -104,9 +104,11 @@ where /// This is because Vec needs to be mapped to different strings, so the simple cache lookup is not viable. /// The solution to this is, to just let some container types like Vec do recursion while others can't. /// +/// # Warning +/// /// The safety of the following logic relies on the assumption that ultimately everything resolves down to a primitive or a struct/enum that is in the cache. -/// It basically just returns true o generic wrapper types. -fn recursion_should_fall_through(def: &TypeDef) -> bool { +/// It basically just returns true for generic wrapper types. +fn recursion_should_continue(def: &TypeDef) -> bool { match def { scale_info::TypeDef::Sequence(_) => true, scale_info::TypeDef::Array(_) => true, From 4cf3e7b4c74c6097c74bae69371a63a442b782e3 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Wed, 29 Nov 2023 19:31:47 +0100 Subject: [PATCH 15/27] add compact encoding differentiation --- Cargo.lock | 1 + description/Cargo.toml | 1 + description/src/description.rs | 14 ++---- description/src/lib.rs | 56 +++++++++++++++++++++- description/src/type_example/rust_value.rs | 55 ++++++++++----------- 5 files changed, 86 insertions(+), 41 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4de20e9..b6579ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -433,6 +433,7 @@ dependencies = [ "scale-typegen", "scale-value", "smallvec", + "syn 2.0.39", ] [[package]] diff --git a/description/Cargo.toml b/description/Cargo.toml index bfbee7a..1e7abe5 100644 --- a/description/Cargo.toml +++ b/description/Cargo.toml @@ -30,3 +30,4 @@ quote = { workspace = true, optional = true } indoc = "2" pretty_assertions = { workspace = true } parity-scale-codec = { workspace = true } +syn = { workspace = true } diff --git a/description/src/description.rs b/description/src/description.rs index 8b1c65d..c9bb45b 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -49,19 +49,15 @@ fn ty_description( transformer: &Transformer, ) -> anyhow::Result { let ident = ty.path.ident().unwrap_or_default(); - let prefix = type_def_prefix(&ty.type_def); + let prefix = if let TypeDef::Variant(_) = ty.type_def { + "enum " + } else { + "" + }; let type_def_description = type_def_type_description(&ty.type_def, transformer)?; Ok(format!("{prefix}{ident}{type_def_description}")) } -/// todo: clean this up -fn type_def_prefix(type_def: &TypeDef) -> &str { - match type_def { - TypeDef::Variant(_) => "enum ", - _ => "", - } -} - fn type_def_type_description( type_def: &TypeDef, transformer: &Transformer, diff --git a/description/src/lib.rs b/description/src/lib.rs index 730ea67..8427b30 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -48,10 +48,13 @@ mod tests { // Note: indoc is used to make it easier to represent multi-line strings. use indoc::indoc; + use parity_scale_codec::Compact; use pretty_assertions::assert_eq; + use proc_macro2::TokenStream; use scale_info::{PortableRegistry, TypeInfo}; + use scale_typegen::TypeGeneratorSettings; - use crate::type_description; + use crate::{type_description, type_example::rust_value}; fn make_type() -> (u32, PortableRegistry) { let mut registry = scale_info::Registry::new(); @@ -217,4 +220,55 @@ mod tests { }"} ); } + + #[test] + fn rust_value_compact() { + #[allow(unused)] + #[derive(TypeInfo)] + struct S0 { + #[codec(compact)] + n: u8, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct S1 { + n: Compact, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct T0(#[codec(compact)] u8); + + #[allow(unused)] + #[derive(TypeInfo)] + struct T1(Compact); + + use quote::quote; + use syn::parse_quote; + + fn get_example() -> TokenStream { + let (type_id, type_registry) = make_type::(); + let settings = TypeGeneratorSettings::new().compact_type_path(parse_quote!(Compact)); + rust_value::example(type_id, &type_registry, &settings).unwrap() + } + + // Note: The 161 is pretty random and depends on the default seed of the RNG. + assert_eq!( + get_example::().to_string(), + quote! {types::scale_typegen_description::tests::S0{ n: 161u8, }}.to_string() + ); + assert_eq!( + get_example::().to_string(), + quote! {types::scale_typegen_description::tests::S1{ n: Compact(161u8), }}.to_string() + ); + assert_eq!( + get_example::().to_string(), + quote! {types::scale_typegen_description::tests::T0( 161u8, )}.to_string() + ); + assert_eq!( + get_example::().to_string(), + quote! {types::scale_typegen_description::tests::T1( Compact(161u8), )}.to_string() + ); + } } diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 42071cd..6afcc8d 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -104,7 +104,7 @@ impl<'a> CodeTransformer<'a> { pub fn example( type_id: u32, types: &PortableRegistry, - settings_for_path_resolver: TypeGeneratorSettings, + settings_for_path_resolver: &TypeGeneratorSettings, ) -> anyhow::Result { example_from_seed(type_id, types, settings_for_path_resolver, 42, None, None) } @@ -116,7 +116,7 @@ pub fn example( pub fn example_from_seed( type_id: u32, types: &PortableRegistry, - settings_for_path_resolver: TypeGeneratorSettings, + settings_for_path_resolver: &TypeGeneratorSettings, seed: u64, ty_middleware: Option, ty_path_middleware: Option, @@ -133,7 +133,7 @@ pub fn example_from_seed( let state = CodeTransformerState { rng: RefCell::new(rand_chacha::ChaCha8Rng::seed_from_u64(seed)), - type_generator: TypeGenerator::new(types, &settings_for_path_resolver), + type_generator: TypeGenerator::new(types, settings_for_path_resolver), ty_middleware, ty_path_middleware, }; @@ -184,13 +184,13 @@ fn ty_example( scale_info::TypeDef::Sequence(def) => { // return a Vec with 2 elements: let inner_ty = transformer.resolve_type(def.type_param.id)?; - let item_code = ty_example(def.type_param.id, inner_ty, transformer)?; // todo!("Might need CompactMode::Expl") + let item_code = ty_example(def.type_param.id, inner_ty, transformer)?; let vec_code = quote!(vec![#item_code, #item_code, #item_code]); Ok(vec_code) } scale_info::TypeDef::Array(def) => { let inner_ty = transformer.resolve_type(def.type_param.id)?; - let item_code = ty_example(def.type_param.id, inner_ty, transformer)?; //todo!("Might need CompactMode::Expl") + let item_code = ty_example(def.type_param.id, inner_ty, transformer)?; let inner_is_copy = transformer.type_def_is_copy(&inner_ty.type_def)?; let len = def.len as usize; let arr_code = if inner_is_copy { @@ -206,7 +206,7 @@ fn ty_example( scale_info::TypeDef::Tuple(def) => { let mut fields: Vec = vec![]; for f in &def.fields { - let value = transformer.resolve(f.id)?; //todo!("Might need CompactMode::Expl") + let value = transformer.resolve(f.id)?; fields.push(value) } Ok(quote!(( #(#fields),* ))) @@ -216,29 +216,7 @@ fn ty_example( &mut *transformer.state.rng.borrow_mut(), )), scale_info::TypeDef::Compact(def) => { - // there are actually two possibilities here: - // 1. the value is not actually compact but just tagged with { #[codec(compact)] number: u8 } in the type definition. - // --> give a normal primitive as a type example, e.g. 8 - // 2. the value is actually like (Compact, String) in the type definition. - // --> give compact type example, e.g. Compact(8) - - // How to find out? In structs, we are gonna be in case 1, otherwise (inside a tuple, array or vec) where the #[codec(compact)] is not possible, we are in case 2. - // `explicit_compact` flag is used to indicate we are in case 2. - - let inner_code = transformer.resolve(def.type_param.id)?; //todo!("Might need CompactMode::Expl") - - // I used this originally, but it turns out the compact part should be omitted: - - // todo!("Revisit this code and figure out a better way to handle compact types") - // let code = match compact_mode { - // CompactMode::Expl => { - // let compact_path = resolve_type_path_omit_generics(type_gen, id); - // quote!(#compact_path(#inner_code)) - // } - // CompactMode::Attr => inner_code, - // }; - let code = inner_code; - + let code = transformer.resolve(def.type_param.id)?; Ok(code) } scale_info::TypeDef::BitSequence(_def) => { @@ -256,6 +234,15 @@ fn fields_example( ) -> anyhow::Result { let all_named = fields.iter().all(|f| f.name.is_some()); let all_unnamed = fields.iter().all(|f| f.name.is_none()); + + /// Field does not only have a `codec(compact)` attirbute but is actually Compact. + fn field_is_explicit_compact(f: &Field) -> bool { + f.type_name + .as_ref() + .map(|e| e.starts_with("Compact<")) + .unwrap_or(false) + } + match (all_named, all_unnamed) { (true, false) => { // all fields named @@ -263,7 +250,10 @@ fn fields_example( for f in fields { let name = f.name.as_ref().expect("safe because of check above; qed"); let ident = format_ident!("{name}"); - let value_code = transformer.resolve(f.ty.id)?; // todo!("Check if Compact attribute needed") + let mut value_code = transformer.resolve(f.ty.id)?; + if field_is_explicit_compact(f) { + value_code = quote!(Compact(#value_code)) + } field_idents_and_values.push(quote!(#ident : #value_code)); } // maybe add phantom data to struct / named composite enum @@ -278,7 +268,10 @@ fn fields_example( // all fields unnamed let mut field_values: Vec = vec![]; for f in fields { - let value_code = transformer.resolve(f.ty.id)?; // todo!("Check if Compact attribute needed") + let mut value_code = transformer.resolve(f.ty.id)?; + if field_is_explicit_compact(f) { + value_code = quote!(Compact(#value_code)) + } field_values.push(value_code); } // maybe add phantom data to struct / named composite enum From 361fa5b6cb65904cdd7d6c85dfbd9e19aeae2e2e Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 30 Nov 2023 14:50:07 +0100 Subject: [PATCH 16/27] fix pipeline error by hiding scale-typegen in description behind flag --- description/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/description/src/lib.rs b/description/src/lib.rs index 8427b30..fdde2ae 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -28,6 +28,8 @@ use parity_scale_codec as _; mod description; mod formatting; mod transformer; + +#[cfg(feature = "type-example")] pub use scale_typegen; /// Create type examples for a type registry. From ddda6e0c0db3fba7105e0846f1b9adacd3e5cd66 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 30 Nov 2023 18:20:50 +0100 Subject: [PATCH 17/27] add access to type registry --- typegen/src/typegen/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/typegen/src/typegen/mod.rs b/typegen/src/typegen/mod.rs index 2e02c81..201cf7f 100644 --- a/typegen/src/typegen/mod.rs +++ b/typegen/src/typegen/mod.rs @@ -52,6 +52,11 @@ impl<'a> TypeGenerator<'a> { self.settings } + /// The type registry backing this type generator. + pub fn types(&self) -> &PortableRegistry { + self.type_registry + } + /// Generate a module containing all types defined in the supplied type registry. pub fn generate_types_mod(&self) -> Result { let flat_derives_registry = self From 91636588de88c18a230747c765600b3171ac204b Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Mon, 4 Dec 2023 10:35:23 +0100 Subject: [PATCH 18/27] give middleware access to transformer to resolve types --- Cargo.toml | 2 +- description/src/type_example/rust_value.rs | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f6344ef..0f6fee9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ proc-macro2 = "1.0.69" quote = "1.0.33" scale-bits = "0.4.0" scale-info = { version = "2.10.0", features = ["derive", "bitvec", "decode", "docs", "serde"] } -smallvec = "1.11.2" +smallvec = "1.10.0" syn = { version = "2.0.38", features = ["full", "extra-traits"] } thiserror = "1.0.50" prettyplease = "0.2.15" diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 6afcc8d..152234a 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -7,9 +7,12 @@ use scale_info::{form::PortableForm, Field, PortableRegistry, Type, TypeDef, Typ use scale_typegen::{TypeGenerator, TypeGeneratorSettings}; use std::cell::RefCell; -type CodeTransformer<'a> = Transformer<'a, TokenStream, CodeTransformerState<'a>>; +/// A transformer capable of converting a [`scale_info::Type`] from a type registry into +/// a rust expression. +pub type CodeTransformer<'a> = Transformer<'a, TokenStream, CodeTransformerState<'a>>; -struct CodeTransformerState<'a> { +/// Inner state of a `CodeTransformer` +pub struct CodeTransformerState<'a> { rng: RefCell, type_generator: TypeGenerator<'a>, /// `ty_middleware` allows you to return a different value on a case by case basis. @@ -20,9 +23,12 @@ struct CodeTransformerState<'a> { ty_path_middleware: Option, } -type TyMiddleware = Box) -> Option>>; +/// Middleware for a `CodeTransformer` to return a different type when a certain type is encountered. +pub type TyMiddleware = + Box, &CodeTransformer) -> Option>>; -type TyPathMiddleware = Box TokenStream>; +/// Middleware for a `CodeTransformer` to convert a type path encountered into a different type path. +pub type TyPathMiddleware = Box TokenStream>; impl<'a> CodeTransformer<'a> { /// resolves a type path, removes the generic bits, e.g. `Foo` becomes `Foo`, @@ -149,7 +155,7 @@ fn ty_example( ) -> anyhow::Result { // if middleware wants to intersect and return something else, it can: if let Some(middleware) = &transformer.state.ty_middleware { - if let Some(intersected) = middleware(ty) { + if let Some(intersected) = middleware(ty, transformer) { return intersected; } } From 619529c2f6495b5520b9412c317021daee0e34a5 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Mon, 4 Dec 2023 16:06:34 +0100 Subject: [PATCH 19/27] nit: fix docs on recurse_policy --- description/src/transformer.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 35887e3..6e07278 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -14,11 +14,9 @@ pub struct Transformer<'a, R, S = ()> { pub state: S, /// The `policy` defines, how to transform a type. If the type is unrepresentable, return an Err. policy: fn(u32, &Type, &Self) -> anyhow::Result, - /// The `recurse_policy` defines, how to handle cases, - /// where a type has been visited before, and is visited again BEFORE a representation of this type could be computed. - /// If it returns Some(..) we avoid infinite recursion by returning a concrete value. - /// If it returns None, nothing is done in the case of detected recursion and the type falls through. - /// It is transformed with the `policy` in this case. This can be dangerous, but may be necessary for some container types. + /// The `recurse_policy` defines, how to handle cases, where a type has been + /// visited before, and is visited *again*, before a representation of this type could be computed. + /// It is up the implementation to return an error in these cases, or some other value. recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, registry: &'a PortableRegistry, } From 89e4de08c57368b4785e2c36accba968aec8223e Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 5 Dec 2023 15:58:27 +0100 Subject: [PATCH 20/27] add struct prefix, fix variant space bug --- description/src/description.rs | 12 +- description/src/lib.rs | 18 +-- typegen/src/typegen/settings/derives.rs | 154 ++++++++++++------------ 3 files changed, 90 insertions(+), 94 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index c9bb45b..281216c 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -49,10 +49,10 @@ fn ty_description( transformer: &Transformer, ) -> anyhow::Result { let ident = ty.path.ident().unwrap_or_default(); - let prefix = if let TypeDef::Variant(_) = ty.type_def { - "enum " - } else { - "" + let prefix = match &ty.type_def { + TypeDef::Variant(_) => "enum ", + TypeDef::Composite(_) => "struct ", + _ => "", }; let type_def_description = type_def_type_description(&ty.type_def, transformer)?; Ok(format!("{prefix}{ident}{type_def_description}")) @@ -175,10 +175,8 @@ fn variant_type_description( let fields_string = fields_type_description(&variant.fields, transformer)?; let output = if fields_string == "()" { variant.name.to_string() - } else if fields_string.starts_with('(') { - format!("{}{}", &variant.name, fields_string) } else { - format!("{} {}", &variant.name, fields_string) + format!("{}{}", &variant.name, fields_string) }; Ok(output) } diff --git a/description/src/lib.rs b/description/src/lib.rs index fdde2ae..89c3fe4 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -80,7 +80,7 @@ mod tests { assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { - "Human { + "struct Human { name: String, age: u32, male: bool @@ -125,21 +125,21 @@ mod tests { Inivisible, Circle(u64), Rect(Compact, Compact), - Polygon { + Polygon { corners: u8, radius: u64 }, - MultiShape { + MultiShape { shapes: Vec< enum Shape { Inivisible, Circle(u64), Rect(Compact, Compact), - Polygon { + Polygon { corners: u8, radius: u64 }, - MultiShape { + MultiShape { shapes: Vec, t: u64, operation: enum Operation { @@ -183,11 +183,11 @@ mod tests { assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { - "Human { + "struct Human { name: String, friends: Vec, dad: Box, - home: House { + home: struct House { inhabitants: Vec } }"} @@ -214,8 +214,8 @@ mod tests { assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { - "Container { - shapes: Vec }> diff --git a/typegen/src/typegen/settings/derives.rs b/typegen/src/typegen/settings/derives.rs index 1f60b13..f6b7675 100644 --- a/typegen/src/typegen/settings/derives.rs +++ b/typegen/src/typegen/settings/derives.rs @@ -55,6 +55,82 @@ impl DerivesRegistry { pub fn default_derives(&self) -> &Derives { &self.default_derives } + + /// Flattens out the recursive derives into specific derives. + /// For this it needs to have a PortableRegistry that it can traverse recursively. + pub fn flatten_recursive_derives( + self, + types: &PortableRegistry, + ) -> Result { + let DerivesRegistry { + default_derives, + mut specific_type_derives, + mut recursive_type_derives, + } = self; + + if recursive_type_derives.is_empty() { + return Ok(FlatDerivesRegistry { + default_derives, + specific_type_derives, + }); + } + + // Build a mapping of type ids to syn paths for all types in the registry: + let mut syn_path_for_id: HashMap = types + .types + .iter() + .filter_map(|t| { + if t.ty.path.is_empty() { + None + } else { + match syn_type_path(&t.ty) { + Ok(path) => Some(Ok((t.id, path))), + Err(err) => Some(Err(err)), + } + } + }) + .collect::>()?; + + // Create an empty map of derives that we are about to fill: + let mut add_derives_for_id: HashMap = HashMap::new(); + + // Check for each type in the registry if it is the top level of + for ty in types.types.iter() { + let Some(path) = syn_path_for_id.get(&ty.id) else { + // this is only the case for types with empty path (i.e. builtin types). + continue; + }; + let Some(recursive_derives) = recursive_type_derives.remove(path) else { + continue; + }; + // The collected_type_ids contain the id of the type itself and all ids of its fields: + let mut collected_type_ids: HashSet = HashSet::new(); + collect_type_ids(ty.id, types, &mut collected_type_ids); + + // We collect the derives for each type id in the add_derives_for_id HashMap. + for id in collected_type_ids { + add_derives_for_id + .entry(id) + .or_default() + .extend_from(recursive_derives.clone()); + } + } + + // Merge all the recursively obtained derives with the existing derives for the types. + for (id, derived_to_add) in add_derives_for_id { + if let Some(path) = syn_path_for_id.remove(&id) { + specific_type_derives + .entry(path) + .or_default() + .extend_from(derived_to_add); + } + } + + Ok(FlatDerivesRegistry { + default_derives, + specific_type_derives, + }) + } } /// A struct storing the set of derives and derive attributes that we'll apply @@ -165,84 +241,6 @@ impl FlatDerivesRegistry { } } -impl DerivesRegistry { - /// Flattens out the recursive derives into specific derives. - /// For this it needs to have a PortableRegistry that it can traverse recursively. - pub fn flatten_recursive_derives( - self, - types: &PortableRegistry, - ) -> Result { - let DerivesRegistry { - default_derives, - mut specific_type_derives, - mut recursive_type_derives, - } = self; - - if recursive_type_derives.is_empty() { - return Ok(FlatDerivesRegistry { - default_derives, - specific_type_derives, - }); - } - - // Build a mapping of type ids to syn paths for all types in the registry: - let mut syn_path_for_id: HashMap = types - .types - .iter() - .filter_map(|t| { - if t.ty.path.is_empty() { - None - } else { - match syn_type_path(&t.ty) { - Ok(path) => Some(Ok((t.id, path))), - Err(err) => Some(Err(err)), - } - } - }) - .collect::>()?; - - // Create an empty map of derives that we are about to fill: - let mut add_derives_for_id: HashMap = HashMap::new(); - - // Check for each type in the registry if it is the top level of - for ty in types.types.iter() { - let Some(path) = syn_path_for_id.get(&ty.id) else { - // this is only the case for types with empty path (i.e. builtin types). - continue; - }; - let Some(recursive_derives) = recursive_type_derives.remove(path) else { - continue; - }; - // The collected_type_ids contain the id of the type itself and all ids of its fields: - let mut collected_type_ids: HashSet = HashSet::new(); - collect_type_ids(ty.id, types, &mut collected_type_ids); - - // We collect the derives for each type id in the add_derives_for_id HashMap. - for id in collected_type_ids { - add_derives_for_id - .entry(id) - .or_default() - .extend_from(recursive_derives.clone()); - } - } - - // Merge all the recursively obtained derives with the existing derives for the types. - for (id, derived_to_add) in add_derives_for_id { - if let Some(path) = syn_path_for_id.remove(&id) { - specific_type_derives - .entry(path) - .or_default() - .extend_from(derived_to_add); - } - } - - Ok(FlatDerivesRegistry { - default_derives, - specific_type_derives, - }) - } -} - fn collect_type_ids(id: u32, types: &PortableRegistry, collected_types: &mut HashSet) { // Recursion protection: if collected_types.contains(&id) { From 1798db50216c52b791ebae94f77db3375abad471 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 5 Dec 2023 16:04:41 +0100 Subject: [PATCH 21/27] add cargo machete in CI/CD --- .github/workflows/rust.yml | 6 +++++- typegen/src/lib.rs | 9 --------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 90cdfa2..7ac4fcf 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -11,7 +11,8 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout + uses: actions/checkout@v3 - name: setup uses: actions-rs/toolchain@v1 @@ -32,6 +33,9 @@ jobs: cargo clippy --version cargo clippy --all-targets -- -D warnings + - name: machete + uses: bnjbvr/cargo-machete@main + - name: check run: | cargo check diff --git a/typegen/src/lib.rs b/typegen/src/lib.rs index fccb7bd..02d7845 100644 --- a/typegen/src/lib.rs +++ b/typegen/src/lib.rs @@ -13,17 +13,8 @@ // limitations under the License. //! A library based on [scale-info](https://github.com/paritytech/scale-info) to transpile portable registries of types into rust type definitions. -#![deny(unused_crate_dependencies)] #![deny(missing_docs)] -// The #![deny(unused_crate_dependencies)] requires us to do these for the example to work: -#[cfg(test)] -use frame_metadata as _; -#[cfg(test)] -use prettyplease as _; -#[cfg(test)] -use scale_bits as _; - /// Type Generation Settings and Logic pub mod typegen; /// Utilities for handling Type Registries From 68cbc09a9a0e16951942fba31be7607adeda754c Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Tue, 5 Dec 2023 16:05:38 +0100 Subject: [PATCH 22/27] remove #![deny(unused_crate_dependencies)] in description crate --- description/src/lib.rs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/description/src/lib.rs b/description/src/lib.rs index 89c3fe4..c6b4aaa 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -18,13 +18,6 @@ //! - An exemplary rust value of the type via [`crate::rust_value`]. //! - An exemplary scale value of the type via [`crate::scale_value`]. -#![deny(unused_crate_dependencies)] -#![deny(missing_docs)] - -// Because of `unused_crate_dependencies` flag: -#[cfg(test)] -use parity_scale_codec as _; - mod description; mod formatting; mod transformer; From 89046693ee79d815bc2395a283461d865b149fcb Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 7 Dec 2023 17:07:45 +0100 Subject: [PATCH 23/27] introduce cache hit policy --- description/src/description.rs | 8 +- description/src/formatting.rs | 5 + description/src/lib.rs | 127 ++++++++++++++++++-- description/src/transformer.rs | 59 ++++++++- description/src/type_example/rust_value.rs | 37 +++--- description/src/type_example/scale_value.rs | 16 ++- typegen/examples/polkadot.rs | 2 +- typegen/src/lib.rs | 6 +- typegen/src/tests/mod.rs | 56 ++++++--- typegen/src/tests/utils.rs | 4 +- typegen/src/typegen/mod.rs | 12 +- typegen/src/typegen/settings/derives.rs | 32 +++-- typegen/src/typegen/settings/mod.rs | 7 +- typegen/src/utils.rs | 84 ++++++------- 14 files changed, 331 insertions(+), 124 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index 281216c..1837e51 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -4,7 +4,7 @@ use scale_info::{ TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, }; -use crate::transformer::Transformer; +use crate::transformer::{CacheHitPolicy, Transformer}; use super::formatting::format_type_description; @@ -33,6 +33,7 @@ pub fn type_description( let transformer = Transformer::new( ty_description, return_type_name_on_recurse, + CacheHitPolicy::ExecuteRecursePolicy, // returns the type name in this case... (), type_registry, ); @@ -64,7 +65,6 @@ fn type_def_type_description( ) -> anyhow::Result { match type_def { TypeDef::Composite(composite) => fields_type_description(&composite.fields, transformer), - TypeDef::Variant(variant) => variant_type_def_type_description(variant, transformer), TypeDef::Sequence(sequence) => sequence_type_description(sequence, transformer), TypeDef::Array(array) => array_type_description(array, transformer), @@ -83,10 +83,11 @@ fn tuple_type_description( ) -> anyhow::Result { let mut output = "(".to_string(); let mut iter = tuple.fields.iter().peekable(); + let field_count = tuple.fields.len(); while let Some(ty) = iter.next() { let type_description = transformer.resolve(ty.id)?; output.push_str(&type_description); - if iter.peek().is_some() { + if iter.peek().is_some() || field_count == 1 { output.push(',') } } @@ -221,7 +222,6 @@ fn field_type_description( transformer: &Transformer, ) -> anyhow::Result { let mut type_description = transformer.resolve(field.ty.id)?; - let is_boxed = field .type_name .as_ref() diff --git a/description/src/formatting.rs b/description/src/formatting.rs index acab723..c385617 100644 --- a/description/src/formatting.rs +++ b/description/src/formatting.rs @@ -15,6 +15,8 @@ pub fn format_type_description(input: &str) -> String { const SMALL_SCOPE_MAX_TOKENS: usize = 32; /// should be called on the chars iterator shortly after open_token was encountered. + /// + /// scope should never be considered small if any curly braces are encountered inbetween. fn scope_is_small( chars: &mut PeekMoreIterator, open_token: char, @@ -35,6 +37,9 @@ pub fn format_type_description(input: &str) -> String { return true; } } + if *ch == '{' { + return false; + } } false } diff --git a/description/src/lib.rs b/description/src/lib.rs index c6b4aaa..8f4642e 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -191,27 +191,132 @@ mod tests { fn recursive_containers() { #[allow(unused)] #[derive(TypeInfo)] - struct Container { - shapes: Vec, + struct A { + bees: Vec, } #[allow(unused)] #[derive(TypeInfo)] - struct S { - u: u8, - others: Vec, + struct B { + id: u8, + others: Vec, } - let (type_id, type_registry) = make_type::(); + let (type_id, type_registry) = make_type::(); assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { - "struct Container { - shapes: Vec - }> + "struct A { + bees: Vec< + struct B { + id: u8, + others: Vec + } + > + }"} + ); + } + + #[test] + fn recursive_generics() { + #[allow(unused)] + #[derive(TypeInfo)] + struct Vec2 { + x: Box, + y: Box, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct A { + bees: Vec2, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct B { + id: u8, + others: Vec2, + } + + let (type_id, type_registry) = make_type::(); + + assert_eq!( + type_description(type_id, &type_registry, true).unwrap(), + indoc! { + "struct A { + bees: struct Vec2 { + x: Box< + struct B { + id: u8, + others: Vec2 + } + >, + y: Box + } + }"} + ); + } + + #[test] + fn multiple_fields_with_same_type() { + #[allow(unused)] + #[derive(TypeInfo)] + struct A { + x: B, + y: B, + z: B, + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct B { + id: u8, + } + + let (type_id, type_registry) = make_type::(); + + assert_eq!( + type_description(type_id, &type_registry, true).unwrap(), + indoc! { + "struct A { + x: struct B { + id: u8 + }, + y: B, + z: B + }"} + ); + } + + #[test] + fn tuple_fields_with_same_type() { + #[allow(unused)] + #[derive(TypeInfo)] + struct A { + tup: (B, B, B), + } + + #[allow(unused)] + #[derive(TypeInfo)] + struct B { + id: u8, + } + + let (type_id, type_registry) = make_type::(); + + assert_eq!( + type_description(type_id, &type_registry, true).unwrap(), + indoc! { + "struct A { + tup: ( + struct B { + id: u8 + }, + B, + B + ) }"} ); } diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 6e07278..13a4d3d 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -3,24 +3,52 @@ use std::{cell::RefCell, collections::HashMap}; use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef}; /// The transformer provides an abstraction for traversing a type registry -/// given a type_id as a starting point, and **transforming** it into a tree-like structure. -/// It provides a cache that shields users from infinite recursion. +/// given a type_id as a starting point, and **transforming** it into a tree-like structure (type parameter `R`). +/// For example, `R` might be a TokenStream, a String or a Scale Value. +/// The transformer internally keeps a cache that shields users from infinite recursion. +/// It can also contain a mutable state (type parameter `S`), that can be used to store additional information. +/// This is useful for side effects, e.g. a random number generator for random type examples. /// -/// In this way, we can have easy recursion protection mechanisms for type descirptions, rust type examples and scale value type examples. +/// In this way, we can have easy recursion protection mechanisms for type descriptions, rust type examples and scale value type examples. pub struct Transformer<'a, R, S = ()> { - /// keep this private such that the cache is sealed and connot be accessed from outside of the Transformer::transform function + /// keep this private such that the cache is sealed and cannot be accessed from outside of the [`Transformer::transform`] function cache: RefCell>>, /// state can be used for example for an Rng - pub state: S, + state: S, /// The `policy` defines, how to transform a type. If the type is unrepresentable, return an Err. policy: fn(u32, &Type, &Self) -> anyhow::Result, /// The `recurse_policy` defines, how to handle cases, where a type has been /// visited before, and is visited *again*, before a representation of this type could be computed. /// It is up the implementation to return an error in these cases, or some other value. recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, + /// Describe the policy to apply when encountering a cache hit. + /// A cache hit is, when the representation of a type has already been computed. + /// + /// In this case there are 2 options: + /// - ReturnCached => return the cached value + /// - ExecuteRecursePolicy => execute the recurse policy + cache_hit_policy: CacheHitPolicy, registry: &'a PortableRegistry, } +/// The transformer stores computed representations of types in a cache. +/// Sometimes we encounter types, where this representation is already computed. +/// +/// The `CacheHitPolicy` defines, how to handle these cases. +#[derive(Debug, Clone, Copy)] +pub enum CacheHitPolicy { + /// Returns the computed value from the cache. + ReturnCached, + /// Ignore the cached value and just compute the representation of the type again. + /// + /// Note: This is safe from a recursion standpoint. + /// It is useful for generating multiple different type examples for one type instead of just returning the same one every time. + ComputeAgain, + /// Act like we were dealing with a recursive type. This will lead to the recurse policy being executed. + /// It can for example be used to return a placeholder value, e.g. the type name, when a type is encountered for the second time. + ExecuteRecursePolicy, +} + #[derive(Clone, Debug)] enum Cached { /// not known yet, but computation has already started @@ -36,6 +64,7 @@ where pub fn new( policy: fn(u32, &Type, &Self) -> anyhow::Result, recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, + cache_hit_policy: CacheHitPolicy, state: S, registry: &'a PortableRegistry, ) -> Self { @@ -45,9 +74,15 @@ where policy, recurse_policy, registry, + cache_hit_policy, } } + /// The custom user defined state of the transformer. + pub fn state(&self) -> &S { + &self.state + } + pub fn resolve(&self, type_id: u32) -> anyhow::Result { let ty = self.registry.resolve(type_id).ok_or(anyhow::anyhow!( "Type with id {} not found in registry", @@ -60,7 +95,19 @@ where return (self.recurse_policy)(type_id, ty, self); } } - Some(Cached::Computed(r)) => return Ok(r.clone()), + Some(Cached::Computed(repr)) => { + match self.cache_hit_policy { + CacheHitPolicy::ReturnCached => return Ok(repr.clone()), + CacheHitPolicy::ExecuteRecursePolicy => { + if !recursion_should_continue(&ty.type_def) { + return (self.recurse_policy)(type_id, ty, self); + } + } + CacheHitPolicy::ComputeAgain => { + // ..continue with the computation + } + }; + } _ => {} }; diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 152234a..227ec0f 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -1,4 +1,4 @@ -use crate::transformer::Transformer; +use crate::transformer::{CacheHitPolicy, Transformer}; use anyhow::anyhow; use proc_macro2::{TokenStream, TokenTree}; use quote::{format_ident, quote, ToTokens}; @@ -35,14 +35,14 @@ impl<'a> CodeTransformer<'a> { /// and, if the correct ty_path_middleware is set, prunes the resulting type path. fn resolve_type_path_omit_generics(&self, type_id: u32) -> anyhow::Result { let mut type_path = self - .state + .state() .type_generator .resolve_type_path(type_id) .map_err(|e| anyhow!("{e}"))? .to_token_stream(); // apply ty path middleware pruning/replacing paths: - if let Some(ty_path_middleware) = &self.state.ty_path_middleware { + if let Some(ty_path_middleware) = &self.state().ty_path_middleware { type_path = ty_path_middleware(type_path); }; @@ -62,7 +62,7 @@ impl<'a> CodeTransformer<'a> { fn has_unused_type_params(&self, ty: &Type) -> anyhow::Result { let has_unused_type_params = self - .state + .state() .type_generator .create_type_ir(ty, &Default::default()) // Note: derives not important here. .map_err(|e| anyhow!("{e}"))? @@ -72,7 +72,7 @@ impl<'a> CodeTransformer<'a> { } fn resolve_type(&self, type_id: u32) -> anyhow::Result<&Type> { - self.state + self.state() .type_generator .resolve_type(type_id) .map_err(|e| anyhow!("{e}")) @@ -144,7 +144,13 @@ pub fn example_from_seed( ty_path_middleware, }; - let transformer = CodeTransformer::new(ty_example, error_on_recurse, state, types); + let transformer = CodeTransformer::new( + ty_example, + error_on_recurse, + CacheHitPolicy::ComputeAgain, + state, + types, + ); transformer.resolve(type_id) } @@ -154,7 +160,7 @@ fn ty_example( transformer: &CodeTransformer, ) -> anyhow::Result { // if middleware wants to intersect and return something else, it can: - if let Some(middleware) = &transformer.state.ty_middleware { + if let Some(middleware) = &transformer.state().ty_middleware { if let Some(intersected) = middleware(ty, transformer) { return intersected; } @@ -174,10 +180,10 @@ fn ty_example( let enum_path = transformer.resolve_type_path_omit_generics(type_id)?; let random_variant = variant .variants - .choose(&mut *transformer.state.rng.borrow_mut()) + .choose(&mut *transformer.state().rng.borrow_mut()) .ok_or_else(|| anyhow!("Variant type should have at least one variant"))?; let variant_ident = format_ident!("{}", &random_variant.name); - // never needs phantom data, because phantom data is generated as a separate variant. + // Never needs phantom data, because phantom data is generated as a separate variant. let fields = fields_example(&random_variant.fields, false, transformer)?; let mut example = quote!(#enum_path::#variant_ident #fields); @@ -188,10 +194,11 @@ fn ty_example( Ok(example) } scale_info::TypeDef::Sequence(def) => { - // return a Vec with 2 elements: + // Return a Vec with 2 random example elements: let inner_ty = transformer.resolve_type(def.type_param.id)?; - let item_code = ty_example(def.type_param.id, inner_ty, transformer)?; - let vec_code = quote!(vec![#item_code, #item_code, #item_code]); + let item1 = ty_example(def.type_param.id, inner_ty, transformer)?; + let item2 = ty_example(def.type_param.id, inner_ty, transformer)?; + let vec_code = quote!(vec![#item1, #item2]); Ok(vec_code) } scale_info::TypeDef::Array(def) => { @@ -200,10 +207,10 @@ fn ty_example( let inner_is_copy = transformer.type_def_is_copy(&inner_ty.type_def)?; let len = def.len as usize; let arr_code = if inner_is_copy { - // if the item_code is an expression that is `Copy` we can use short init syntax: + // If the item_code is an expression that is `Copy` we can use short init syntax: quote!([#item_code;#len]) } else { - // otherwise we need to duplicate the item_code `len` times: + // Otherwise we need to duplicate the item_code `len` times: let item_iter = (0..len).map(|_| &item_code); quote!([#(#item_iter),*]) }; @@ -219,7 +226,7 @@ fn ty_example( } scale_info::TypeDef::Primitive(def) => Ok(primitive_example( def, - &mut *transformer.state.rng.borrow_mut(), + &mut *transformer.state().rng.borrow_mut(), )), scale_info::TypeDef::Compact(def) => { let code = transformer.resolve(def.type_param.id)?; diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index de9c124..cb1d388 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -7,7 +7,7 @@ use rand::{seq::SliceRandom, Rng}; use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef, TypeDefPrimitive}; use scale_value::{BitSequence, Composite, Primitive, Value, ValueDef, Variant}; -use crate::transformer::Transformer; +use crate::transformer::{CacheHitPolicy, Transformer}; type ValueTransformer<'a> = Transformer<'a, Value, RefCell>; @@ -29,7 +29,13 @@ pub fn example_from_seed(id: u32, types: &PortableRegistry, seed: u64) -> anyhow )) } let state = RefCell::new(rand_chacha::ChaCha8Rng::seed_from_u64(seed)); - let transformer = ValueTransformer::new(ty_example, error_on_recurse, state, types); + let transformer = ValueTransformer::new( + ty_example, + error_on_recurse, + CacheHitPolicy::ComputeAgain, + state, + types, + ); transformer.resolve(id) } @@ -50,7 +56,7 @@ fn ty_example( TypeDef::Variant(variant) => { let random_variant = variant .variants - .choose(&mut *transformer.state.borrow_mut()) + .choose(&mut *transformer.state().borrow_mut()) .ok_or_else(|| anyhow!("Variant type should have at least one variant"))?; let fields = random_variant .fields @@ -87,12 +93,12 @@ fn ty_example( } TypeDef::Primitive(primitive) => Ok(primitive_type_def_example( primitive, - &mut *transformer.state.borrow_mut(), + &mut *transformer.state().borrow_mut(), )), TypeDef::Compact(compact) => transformer.resolve(compact.type_param.id), TypeDef::BitSequence(_) => { let mut bit_sequence = BitSequence::new(); - let rng = &mut *transformer.state.borrow_mut(); + let rng = &mut *transformer.state().borrow_mut(); for _ in 0..rng.gen_range(3..7) { bit_sequence.push(rng.gen()); } diff --git a/typegen/examples/polkadot.rs b/typegen/examples/polkadot.rs index 93609a5..a3e344b 100644 --- a/typegen/examples/polkadot.rs +++ b/typegen/examples/polkadot.rs @@ -21,7 +21,7 @@ pub fn main() { .decoded_bits_type_path(parse_quote!(DecodedBits)) .compact_as_type_path(parse_quote!(parity_scale_codec::CompactAs)) .compact_type_path(parse_quote!(parity_scale_codec::Compact)) - .derive_on_all([parse_quote!(Debug), parse_quote!(Clone)]); + .add_derives_for_all([parse_quote!(Debug), parse_quote!(Clone)]); let type_generator = TypeGenerator::new(&type_registry, &settings); let code = type_generator diff --git a/typegen/src/lib.rs b/typegen/src/lib.rs index 02d7845..75eec05 100644 --- a/typegen/src/lib.rs +++ b/typegen/src/lib.rs @@ -22,11 +22,7 @@ pub mod utils; pub use typegen::{ error::TypegenError, - settings::{ - derives::{Derives, DerivesRegistry}, - substitutes::TypeSubstitutes, - TypeGeneratorSettings, - }, + settings::{derives::DerivesRegistry, substitutes::TypeSubstitutes, TypeGeneratorSettings}, TypeGenerator, }; diff --git a/typegen/src/tests/mod.rs b/typegen/src/tests/mod.rs index dcb0427..640802d 100644 --- a/typegen/src/tests/mod.rs +++ b/typegen/src/tests/mod.rs @@ -19,9 +19,9 @@ fn substitutes_and_derives() { // set up settings let settings = TypeGeneratorSettings::default() .type_mod_name("my_types") - .derive_on_all([ + .add_derives_for_all([ parse_quote!(::parity_scale_codec::Decode), - parse_quote!(::parity_scale_codec::Emcode), + parse_quote!(::parity_scale_codec::Encode), ]) .substitute( parse_quote!(BTreeMap), @@ -44,7 +44,7 @@ fn substitutes_and_derives() { use super::my_types; pub mod tests { use super::my_types; - #[derive(:: parity_scale_codec :: Decode, :: parity_scale_codec :: Emcode)] + #[derive(:: parity_scale_codec :: Decode, :: parity_scale_codec :: Encode)] pub struct A { pub children: ::std::collections::HashMap< ::core::primitive::u32, my_types::scale_typegen::tests::A>, } @@ -919,10 +919,12 @@ fn apply_user_defined_derives_for_all_types() { struct B; let mut settings = subxt_settings(); - settings.derives.extend_for_all( - [parse_quote!(Clone), parse_quote!(Eq)], - [parse_quote!(#[some_attribute])], - ); + settings + .derives + .add_derives_for_all([parse_quote!(Clone), parse_quote!(Eq)]); + settings + .derives + .add_attributes_for_all([parse_quote!(#[some_attribute])]); let code = Testgen::new().with::().gen_tests_mod(settings); @@ -964,21 +966,25 @@ fn apply_user_defined_derives_for_specific_types() { struct C; let mut settings = subxt_settings(); - settings.derives.extend_for_all([parse_quote!(Eq)], []); - settings.derives.extend_for_type( + settings.derives.add_derives_for_all([parse_quote!(Eq)]); + settings.derives.add_derives_for( parse_quote!(scale_typegen::tests::B), [parse_quote!(Hash)], + false, + ); + settings.derives.add_attributes_for( + parse_quote!(scale_typegen::tests::B), [parse_quote!(#[some_attribute])], false, ); - settings.derives.extend_for_type( + + settings.derives.add_derives_for( parse_quote!(scale_typegen::tests::C), [ parse_quote!(Eq), parse_quote!(Ord), parse_quote!(PartialOrd), ], - [], false, ); let code = Testgen::new().with::().gen_tests_mod(settings); @@ -1045,16 +1051,26 @@ fn apply_recursive_derives() { let mut derives = DerivesRegistry::new(); - derives.extend_for_type( + derives.add_derives_for( parse_quote!(scale_typegen::tests::Human), vec![parse_quote!(Reflect)], + false, + ); + + derives.add_attributes_for( + parse_quote!(scale_typegen::tests::Human), vec![parse_quote!(#[is_human])], false, ); - derives.extend_for_type( + derives.add_derives_for( parse_quote!(scale_typegen::tests::Human), vec![parse_quote!(Clone)], + true, + ); + + derives.add_attributes_for( + parse_quote!(scale_typegen::tests::Human), vec![parse_quote!(#[is_nice])], true, ); @@ -1118,13 +1134,17 @@ fn apply_derives() { struct B; let mut derives = DerivesRegistry::new(); - derives.extend_for_all( - vec![parse_quote!(Clone), parse_quote!(Eq)], - vec![parse_quote!(#[some_attribute])], - ); - derives.extend_for_type( + derives.add_derives_for_all(vec![parse_quote!(Clone), parse_quote!(Eq)]); + derives.add_attributes_for_all(vec![parse_quote!(#[some_attribute])]); + + derives.add_derives_for( parse_quote!(scale_typegen::tests::B), vec![parse_quote!(Hash)], + false, + ); + + derives.add_attributes_for( + parse_quote!(scale_typegen::tests::B), vec![parse_quote!(#[some_other_attribute])], false, ); diff --git a/typegen/src/tests/utils.rs b/typegen/src/tests/utils.rs index 7d33d43..4c35e93 100644 --- a/typegen/src/tests/utils.rs +++ b/typegen/src/tests/utils.rs @@ -82,7 +82,9 @@ pub(super) fn subxt_default_derives() -> DerivesRegistry { ]; let mut derives_registry = DerivesRegistry::new(); - derives_registry.extend_for_all(derives, attributes); + + derives_registry.add_derives_for_all(derives); + derives_registry.add_attributes_for_all(attributes); derives_registry } diff --git a/typegen/src/typegen/mod.rs b/typegen/src/typegen/mod.rs index 201cf7f..10c6663 100644 --- a/typegen/src/typegen/mod.rs +++ b/typegen/src/typegen/mod.rs @@ -1,9 +1,12 @@ -use crate::{Derives, TypegenError}; +use crate::TypegenError; use self::{ ir::module_ir::ModuleIR, ir::type_ir::{CompositeFieldIR, CompositeIR, CompositeIRKind, EnumIR, TypeIR, TypeIRKind}, - settings::{derives::FlatDerivesRegistry, TypeGeneratorSettings}, + settings::{ + derives::{Derives, FlatDerivesRegistry}, + TypeGeneratorSettings, + }, type_params::TypeParameters, type_path::TypeParameter, }; @@ -261,11 +264,6 @@ impl<'a> TypeGenerator<'a> { } } - /// The default derives set in the type generator's settings. - pub fn default_derives(&self) -> &Derives { - self.settings.derives.default_derives() - } - /// Adds a AsCompact derive, if a path to AsCompact trait/derive macro set in settings. fn add_as_compact_derive(&self, derives: &mut Derives) { if let Some(compact_as_type_path) = &self.settings.compact_as_type_path { diff --git a/typegen/src/typegen/settings/derives.rs b/typegen/src/typegen/settings/derives.rs index f6b7675..6134822 100644 --- a/typegen/src/typegen/settings/derives.rs +++ b/typegen/src/typegen/settings/derives.rs @@ -22,24 +22,23 @@ impl DerivesRegistry { } /// Insert derives to be applied to all generated types. - pub fn extend_for_all( - &mut self, - derives: impl IntoIterator, - attributes: impl IntoIterator, - ) { + pub fn add_derives_for_all(&mut self, derives: impl IntoIterator) { self.default_derives.derives.extend(derives); + } + + /// Insert attributes to be applied to all generated types. + pub fn add_attributes_for_all(&mut self, attributes: impl IntoIterator) { self.default_derives.attributes.extend(attributes); } /// Insert derives to be applied to a specific generated type. /// - /// The `recursive` flag can be set if child types should also receive the given derives/attributes. + /// The `recursive` flag can be set if child types should also receive the given derives. /// Child types are all types that are mentioned as fields or type parameters of the type. - pub fn extend_for_type( + pub fn add_derives_for( &mut self, ty: syn::TypePath, derives: impl IntoIterator, - attributes: impl IntoIterator, recursive: bool, ) { let type_derives = if recursive { @@ -48,6 +47,23 @@ impl DerivesRegistry { self.specific_type_derives.entry(ty).or_default() }; type_derives.derives.extend(derives); + } + + /// Insert derives to be applied to a specific generated type. + /// + /// The `recursive` flag can be set if child types should also receive the given derives. + /// Child types are all types that are mentioned as fields or type parameters of the type. + pub fn add_attributes_for( + &mut self, + ty: syn::TypePath, + attributes: impl IntoIterator, + recursive: bool, + ) { + let type_derives = if recursive { + self.recursive_type_derives.entry(ty).or_default() + } else { + self.specific_type_derives.entry(ty).or_default() + }; type_derives.attributes.extend(attributes); } diff --git a/typegen/src/typegen/settings/mod.rs b/typegen/src/typegen/settings/mod.rs index 0a6b052..cd3e7a7 100644 --- a/typegen/src/typegen/settings/mod.rs +++ b/typegen/src/typegen/settings/mod.rs @@ -106,8 +106,11 @@ impl TypeGeneratorSettings { } /// Adds some derives for all types. - pub fn derive_on_all(mut self, derive_paths: impl IntoIterator) -> Self { - self.derives.extend_for_all(derive_paths, []); + pub fn add_derives_for_all( + mut self, + derive_paths: impl IntoIterator, + ) -> Self { + self.derives.add_derives_for_all(derive_paths); self } } diff --git a/typegen/src/utils.rs b/typegen/src/utils.rs index 58c477b..9279383 100644 --- a/typegen/src/utils.rs +++ b/typegen/src/utils.rs @@ -1,5 +1,4 @@ use scale_info::{form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeParameter}; -use smallvec::{smallvec, SmallVec}; use std::collections::HashMap; use crate::TypegenError; @@ -13,59 +12,58 @@ pub fn syn_type_path(ty: &Type) -> Result>::new(); + let mut types_with_same_type_path_grouped_by_shape = HashMap::<&[String], Vec>>::new(); - // Figure out which types have the same type paths by storing them in the HashMap - for ty in types.types.iter() { + // First, group types if they are similar (same path, same shape). + + for (ty_id, ty) in types.types.iter().enumerate() { // Ignore types without a path (i.e prelude types). if ty.ty.path.namespace().is_empty() { continue; }; - types_with_same_type_path + + // get groups that share this path already, if any. + let groups_with_same_path = types_with_same_type_path_grouped_by_shape .entry(&ty.ty.path.segments) - .or_default() - .push(ty.id); - } + .or_default(); - let clashing_type_ids = types_with_same_type_path - .into_iter() - .filter_map(|(_, v)| (v.len() > 1).then_some(v)); - - // submit to this buffer type ids (u32), where a number (usize) should be added to the type path to distinguish them. - let mut renaming_commands: Vec<(u32, usize)> = vec![]; - - for type_ids in clashing_type_ids { - // Map N types in type_ids to M new type paths, where M <= N. - // types with the same structure should map to the same type path after all. - let mut types_with_same_structure: Vec<(&Type, SmallVec<[u32; 2]>)> = vec![]; - 'outer: for id in type_ids { - let type_a = types.resolve(id).expect("type is present; qed;"); - for (type_b, ids) in types_with_same_structure.iter_mut() { - if types_equal_extended_to_params(type_a, type_b) { - ids.push(id); - continue 'outer; - } + // Compare existing groups to check which to add our type ID to. + let mut added_to_existing_group = false; + for group in groups_with_same_path.iter_mut() { + let ty_id_b = group[0]; // all types in group are same shape; just check any one of them. + let ty_b = types.resolve(ty_id_b).expect("ty exists"); + if types_equal_extended_to_params(&ty.ty, ty_b) { + group.push(ty_id_b); + added_to_existing_group = true; + break; } - types_with_same_structure.push((type_a, smallvec![id])); } - // Now that the types that share a structure are grouped together, we can order commands to rename them. - for (n, (_, group)) in types_with_same_structure.iter().enumerate() { - for id in group { - renaming_commands.push((*id, n + 1)); - } + // We didn't find a matching group, so add it to a new one. + if !added_to_existing_group { + groups_with_same_path.push(vec![ty_id as u32]) } } - // execute the actual renaming. The `get_mut()` with the usize cast is a bit awkward, but there is currently not `resolve_mut()` function on the `PortableRegistry`. - for (id, appendix) in renaming_commands { - let ty = types - .types - .get_mut(id as usize) - .expect("type is present; qed;"); - assert_eq!(ty.id, id); - let name = ty.ty.path.segments.last_mut().expect("This is only empty for builtin types, that are filtered out with namespace().is_empty() above; qed;"); - *name = format!("{name}{appendix}"); // e.g. Header1, Header2, Header3, ... + // Now, rename types as needed based on these groups. + let groups_that_need_renaming = types_with_same_type_path_grouped_by_shape + .into_values() + .filter(|g| g.len() > 1) + .collect::>(); // Collect necessary because otherwise types is borrowed immutably and cannot be modified. + + for groups_with_same_path in groups_that_need_renaming { + let mut n = 1; + for group_with_same_shape in groups_with_same_path { + for ty_id in group_with_same_shape { + let ty = types + .types + .get_mut(ty_id as usize) + .expect("type is present; qed;"); + let name = ty.ty.path.segments.last_mut().expect("This is only empty for builtin types, that are filtered out with namespace().is_empty() above; qed;"); + *name = format!("{name}{n}"); // e.g. Header1, Header2, Header3, ... + } + n += 1; + } } } @@ -94,6 +92,10 @@ fn types_equal_extended_to_params(a: &Type, b: &Type let type_params_a = collect_params(&a.type_params); let type_params_b = collect_params(&a.type_params); + if type_params_a.len() != type_params_b.len() { + return false; + } + // returns true if the ids are the same OR if they point to the same generic parameter. let ids_equal = |a: u32, b: u32| -> bool { a == b From 119bf73ca3b93d697e0d89f0370d99704057a907 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 7 Dec 2023 17:31:38 +0100 Subject: [PATCH 24/27] fine grained control over cache hit behavior --- description/src/description.rs | 25 ++++++--- description/src/lib.rs | 6 +-- description/src/transformer.rs | 58 ++++++--------------- description/src/type_example/rust_value.rs | 20 +++++-- description/src/type_example/scale_value.rs | 21 ++++++-- 5 files changed, 67 insertions(+), 63 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index 1837e51..a8ffbe3 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -4,7 +4,7 @@ use scale_info::{ TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, }; -use crate::transformer::{CacheHitPolicy, Transformer}; +use crate::transformer::Transformer; use super::formatting::format_type_description; @@ -19,21 +19,32 @@ pub fn type_description( type_registry: &PortableRegistry, format: bool, ) -> anyhow::Result { - fn return_type_name_on_recurse( + fn return_type_name( _type_id: u32, ty: &Type, _transformer: &Transformer, - ) -> anyhow::Result { + ) -> Option> { if let Some(type_name) = ty.path.ident() { - return Ok(type_name); + return Some(Ok(type_name)); } - Err(anyhow!("Recursive type that did not get handled properly")) + None } + fn return_type_name_on_cache_hit( + type_id: u32, + ty: &Type, + cached: &String, + transformer: &Transformer, + ) -> Option> { + if let Some(type_name) = ty.path.ident() { + return Some(Ok(type_name)); + } + Some(Ok(cached.clone())) + } let transformer = Transformer::new( ty_description, - return_type_name_on_recurse, - CacheHitPolicy::ExecuteRecursePolicy, // returns the type name in this case... + return_type_name, + return_type_name_on_cache_hit, (), type_registry, ); diff --git a/description/src/lib.rs b/description/src/lib.rs index 8f4642e..c204dfa 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -144,11 +144,7 @@ mod tests { } >, t: u8, - operation: enum Operation { - Add, - Intersect, - Difference - } + operation: Operation } }"} ); diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 13a4d3d..d7a5fec 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -20,35 +20,17 @@ pub struct Transformer<'a, R, S = ()> { /// The `recurse_policy` defines, how to handle cases, where a type has been /// visited before, and is visited *again*, before a representation of this type could be computed. /// It is up the implementation to return an error in these cases, or some other value. - recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, + /// + /// You can return None to sidestep recursion protection and let the transformer continue. + recurse_policy: fn(u32, &Type, &Self) -> Option>, /// Describe the policy to apply when encountering a cache hit. /// A cache hit is, when the representation of a type has already been computed. /// - /// In this case there are 2 options: - /// - ReturnCached => return the cached value - /// - ExecuteRecursePolicy => execute the recurse policy - cache_hit_policy: CacheHitPolicy, + /// You can return None to sidestep recursion protection and let the transformer continue. + cache_hit_policy: fn(u32, &Type, &R, &Self) -> Option>, registry: &'a PortableRegistry, } -/// The transformer stores computed representations of types in a cache. -/// Sometimes we encounter types, where this representation is already computed. -/// -/// The `CacheHitPolicy` defines, how to handle these cases. -#[derive(Debug, Clone, Copy)] -pub enum CacheHitPolicy { - /// Returns the computed value from the cache. - ReturnCached, - /// Ignore the cached value and just compute the representation of the type again. - /// - /// Note: This is safe from a recursion standpoint. - /// It is useful for generating multiple different type examples for one type instead of just returning the same one every time. - ComputeAgain, - /// Act like we were dealing with a recursive type. This will lead to the recurse policy being executed. - /// It can for example be used to return a placeholder value, e.g. the type name, when a type is encountered for the second time. - ExecuteRecursePolicy, -} - #[derive(Clone, Debug)] enum Cached { /// not known yet, but computation has already started @@ -61,10 +43,11 @@ impl<'a, R, S> Transformer<'a, R, S> where R: Clone + std::fmt::Debug, { + /// Create a new transformer. pub fn new( policy: fn(u32, &Type, &Self) -> anyhow::Result, - recurse_policy: fn(u32, &Type, &Self) -> anyhow::Result, - cache_hit_policy: CacheHitPolicy, + recurse_policy: fn(u32, &Type, &Self) -> Option>, + cache_hit_policy: fn(u32, &Type, &R, &Self) -> Option>, state: S, registry: &'a PortableRegistry, ) -> Self { @@ -90,24 +73,17 @@ where ))?; match self.cache.borrow().get(&type_id) { - Some(Cached::Recursive) => { - if !recursion_should_continue(&ty.type_def) { - return (self.recurse_policy)(type_id, ty, self); - } - } - Some(Cached::Computed(repr)) => { - match self.cache_hit_policy { - CacheHitPolicy::ReturnCached => return Ok(repr.clone()), - CacheHitPolicy::ExecuteRecursePolicy => { - if !recursion_should_continue(&ty.type_def) { - return (self.recurse_policy)(type_id, ty, self); - } - } - CacheHitPolicy::ComputeAgain => { - // ..continue with the computation - } + Some(cache_value) => { + let result_or_continue = match cache_value { + Cached::Recursive => (self.recurse_policy)(type_id, ty, self), + Cached::Computed(repr) => (self.cache_hit_policy)(type_id, ty, repr, self), }; + + if let Some(result) = result_or_continue { + return result; + } } + Some(Cached::Computed(repr)) => {} _ => {} }; diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 227ec0f..274d71d 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -1,4 +1,4 @@ -use crate::transformer::{CacheHitPolicy, Transformer}; +use crate::transformer::Transformer; use anyhow::anyhow; use proc_macro2::{TokenStream, TokenTree}; use quote::{format_ident, quote, ToTokens}; @@ -131,10 +131,20 @@ pub fn example_from_seed( _type_id: u32, ty: &Type, _transformer: &CodeTransformer, - ) -> anyhow::Result { - Err(anyhow!( + ) -> Option> { + Some(Err(anyhow!( "Cannot generate rust type example for recursive type: {ty:?}" - )) + ))) + } + + /// Note: because None is returned here, the transformer will just continue its work. + fn compute_another_example( + type_id: u32, + ty: &Type, + cached_value: &TokenStream, + transformer: &CodeTransformer, + ) -> Option> { + None } let state = CodeTransformerState { @@ -147,7 +157,7 @@ pub fn example_from_seed( let transformer = CodeTransformer::new( ty_example, error_on_recurse, - CacheHitPolicy::ComputeAgain, + compute_another_example, state, types, ); diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index cb1d388..0ab1d7c 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -7,7 +7,7 @@ use rand::{seq::SliceRandom, Rng}; use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef, TypeDefPrimitive}; use scale_value::{BitSequence, Composite, Primitive, Value, ValueDef, Variant}; -use crate::transformer::{CacheHitPolicy, Transformer}; +use crate::transformer::Transformer; type ValueTransformer<'a> = Transformer<'a, Value, RefCell>; @@ -23,16 +23,27 @@ pub fn example_from_seed(id: u32, types: &PortableRegistry, seed: u64) -> anyhow _type_id: u32, ty: &Type, _transformer: &ValueTransformer, - ) -> anyhow::Result { - Err(anyhow!( + ) -> Option> { + Some(Err(anyhow!( "Cannot generate scale value example for recursive type: {ty:?}" - )) + ))) } + + /// Note: because None is returned here, the transformer will just continue its work. + fn compute_another_example( + type_id: u32, + ty: &Type, + cached_value: &Value, + transformer: &ValueTransformer, + ) -> Option> { + None + } + let state = RefCell::new(rand_chacha::ChaCha8Rng::seed_from_u64(seed)); let transformer = ValueTransformer::new( ty_example, error_on_recurse, - CacheHitPolicy::ComputeAgain, + compute_another_example, state, types, ); From cfec37dbbd213fc7cd97977f9aca574de1ed1e04 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 7 Dec 2023 17:38:59 +0100 Subject: [PATCH 25/27] remove should_continue and other things --- description/src/description.rs | 7 +-- description/src/lib.rs | 6 +- description/src/transformer.rs | 70 +++------------------ description/src/type_example/rust_value.rs | 8 +-- description/src/type_example/scale_value.rs | 8 +-- 5 files changed, 24 insertions(+), 75 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index a8ffbe3..9b183bd 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -1,4 +1,3 @@ -use anyhow::anyhow; use scale_info::{ form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeDefArray, TypeDefBitSequence, TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, @@ -31,15 +30,15 @@ pub fn type_description( } fn return_type_name_on_cache_hit( - type_id: u32, + _type_id: u32, ty: &Type, cached: &String, - transformer: &Transformer, + _transformer: &Transformer, ) -> Option> { if let Some(type_name) = ty.path.ident() { return Some(Ok(type_name)); } - Some(Ok(cached.clone())) + Some(Ok(cached.to_owned())) } let transformer = Transformer::new( ty_description, diff --git a/description/src/lib.rs b/description/src/lib.rs index c204dfa..139ea2b 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -95,7 +95,7 @@ mod tests { corners: u8, radius: u64, }, - MultiShape { + Multi { shapes: Vec>, t: T, operation: Operation, @@ -122,7 +122,7 @@ mod tests { corners: u8, radius: u64 }, - MultiShape { + Multi { shapes: Vec< enum Shape { Inivisible, @@ -132,7 +132,7 @@ mod tests { corners: u8, radius: u64 }, - MultiShape { + Multi { shapes: Vec, t: u64, operation: enum Operation { diff --git a/description/src/transformer.rs b/description/src/transformer.rs index d7a5fec..9d30c81 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -1,6 +1,6 @@ use std::{cell::RefCell, collections::HashMap}; -use scale_info::{form::PortableForm, PortableRegistry, Type, TypeDef}; +use scale_info::{form::PortableForm, PortableRegistry, Type}; /// The transformer provides an abstraction for traversing a type registry /// given a type_id as a starting point, and **transforming** it into a tree-like structure (type parameter `R`). @@ -27,6 +27,7 @@ pub struct Transformer<'a, R, S = ()> { /// A cache hit is, when the representation of a type has already been computed. /// /// You can return None to sidestep recursion protection and let the transformer continue. + #[allow(clippy::type_complexity)] cache_hit_policy: fn(u32, &Type, &R, &Self) -> Option>, registry: &'a PortableRegistry, } @@ -44,6 +45,7 @@ where R: Clone + std::fmt::Debug, { /// Create a new transformer. + #[allow(clippy::type_complexity)] pub fn new( policy: fn(u32, &Type, &Self) -> anyhow::Result, recurse_policy: fn(u32, &Type, &Self) -> Option>, @@ -72,21 +74,15 @@ where type_id ))?; - match self.cache.borrow().get(&type_id) { - Some(cache_value) => { - let result_or_continue = match cache_value { - Cached::Recursive => (self.recurse_policy)(type_id, ty, self), - Cached::Computed(repr) => (self.cache_hit_policy)(type_id, ty, repr, self), - }; - - if let Some(result) = result_or_continue { - return result; - } + if let Some(cache_value) = self.cache.borrow().get(&type_id) { + let result_or_continue = match cache_value { + Cached::Recursive => (self.recurse_policy)(type_id, ty, self), + Cached::Computed(repr) => (self.cache_hit_policy)(type_id, ty, repr, self), + }; + if let Some(result) = result_or_continue { + return result; } - Some(Cached::Computed(repr)) => {} - _ => {} }; - self.cache.borrow_mut().insert(type_id, Cached::Recursive); let r = (self.policy)(type_id, ty, self)?; self.cache @@ -95,49 +91,3 @@ where Ok(r) } } - -/// Returns true for types where recursion should continue, instead of being stopped when recursion in being detected. -/// -/// ## Background: -/// -/// There is a problem in generating recursive type descriptions: -/// Suppose we have the following setup: -/// ```rust -/// struct A { -/// bees: Vec -/// } -/// -/// struct B { -/// id: u8, -/// others: Vec -/// } -/// ``` -/// This could be described as: -/// ```txt,no_run -/// struct A { -/// bees: Vec -/// }> -/// } -/// ``` -/// But the recursive resolving would get stuck in the middle, reporting recursion. -/// This is because Vec needs to be mapped to different strings, so the simple cache lookup is not viable. -/// The solution to this is, to just let some container types like Vec do recursion while others can't. -/// -/// # Warning -/// -/// The safety of the following logic relies on the assumption that ultimately everything resolves down to a primitive or a struct/enum that is in the cache. -/// It basically just returns true for generic wrapper types. -fn recursion_should_continue(def: &TypeDef) -> bool { - match def { - scale_info::TypeDef::Sequence(_) => true, - scale_info::TypeDef::Array(_) => true, - scale_info::TypeDef::Tuple(_) => true, - scale_info::TypeDef::Compact(_) => true, - scale_info::TypeDef::Composite(_) => false, - scale_info::TypeDef::Primitive(_) => false, - scale_info::TypeDef::Variant(_) => false, - scale_info::TypeDef::BitSequence(_) => false, - } -} diff --git a/description/src/type_example/rust_value.rs b/description/src/type_example/rust_value.rs index 274d71d..8b8c3db 100644 --- a/description/src/type_example/rust_value.rs +++ b/description/src/type_example/rust_value.rs @@ -139,10 +139,10 @@ pub fn example_from_seed( /// Note: because None is returned here, the transformer will just continue its work. fn compute_another_example( - type_id: u32, - ty: &Type, - cached_value: &TokenStream, - transformer: &CodeTransformer, + _type_id: u32, + _ty: &Type, + _cached_value: &TokenStream, + _transformer: &CodeTransformer, ) -> Option> { None } diff --git a/description/src/type_example/scale_value.rs b/description/src/type_example/scale_value.rs index 0ab1d7c..6ae8ccc 100644 --- a/description/src/type_example/scale_value.rs +++ b/description/src/type_example/scale_value.rs @@ -31,10 +31,10 @@ pub fn example_from_seed(id: u32, types: &PortableRegistry, seed: u64) -> anyhow /// Note: because None is returned here, the transformer will just continue its work. fn compute_another_example( - type_id: u32, - ty: &Type, - cached_value: &Value, - transformer: &ValueTransformer, + _type_id: u32, + _ty: &Type, + _cached_value: &Value, + _transformer: &ValueTransformer, ) -> Option> { None } From 47fae439c7f6b12d1b30caf46d7ab017e477ae9e Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 7 Dec 2023 17:44:40 +0100 Subject: [PATCH 26/27] remove smallvec --- Cargo.lock | 1 - typegen/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b6579ff..c4a07f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -411,7 +411,6 @@ dependencies = [ "quote", "scale-bits", "scale-info", - "smallvec", "syn 2.0.39", "thiserror", ] diff --git a/typegen/Cargo.toml b/typegen/Cargo.toml index 1e03c21..ac5b1de 100644 --- a/typegen/Cargo.toml +++ b/typegen/Cargo.toml @@ -12,7 +12,6 @@ description = "Type Generation for SCALE encoded Rust Types" proc-macro2 = { workspace = true } quote = { workspace = true } scale-info = { workspace = true } -smallvec = { workspace = true } syn = { workspace = true } thiserror = { workspace = true } From 55f6464bba1d8f1e6df3c32ab08138d6a921c452 Mon Sep 17 00:00:00 2001 From: Tadeo hepperle Date: Thu, 7 Dec 2023 18:46:12 +0100 Subject: [PATCH 27/27] generic arguments are working much better now --- description/src/description.rs | 146 +++++++++++++++++++++------------ description/src/lib.rs | 16 ++-- description/src/transformer.rs | 5 ++ 3 files changed, 107 insertions(+), 60 deletions(-) diff --git a/description/src/description.rs b/description/src/description.rs index 9b183bd..ae895f4 100644 --- a/description/src/description.rs +++ b/description/src/description.rs @@ -1,6 +1,6 @@ use scale_info::{ - form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeDefArray, TypeDefBitSequence, - TypeDefCompact, TypeDefPrimitive, TypeDefSequence, TypeDefTuple, TypeDefVariant, Variant, + form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeDefPrimitive, TypeDefTuple, + TypeDefVariant, Variant, }; use crate::transformer::Transformer; @@ -21,10 +21,10 @@ pub fn type_description( fn return_type_name( _type_id: u32, ty: &Type, - _transformer: &Transformer, + transformer: &Transformer, ) -> Option> { - if let Some(type_name) = ty.path.ident() { - return Some(Ok(type_name)); + if ty.path.ident().is_some() { + return Some(Ok(type_name_with_type_params(ty, transformer.types()))); } None } @@ -33,10 +33,10 @@ pub fn type_description( _type_id: u32, ty: &Type, cached: &String, - _transformer: &Transformer, + transformer: &Transformer, ) -> Option> { - if let Some(type_name) = ty.path.ident() { - return Some(Ok(type_name)); + if ty.path.ident().is_some() { + return Some(Ok(type_name_with_type_params(ty, transformer.types()))); } Some(Ok(cached.to_owned())) } @@ -59,14 +59,79 @@ fn ty_description( ty: &Type, transformer: &Transformer, ) -> anyhow::Result { - let ident = ty.path.ident().unwrap_or_default(); + let name_and_params = if ty.path.ident().is_some() { + type_name_with_type_params(ty, transformer.types()) + } else { + String::new() + }; + let prefix = match &ty.type_def { TypeDef::Variant(_) => "enum ", TypeDef::Composite(_) => "struct ", _ => "", }; let type_def_description = type_def_type_description(&ty.type_def, transformer)?; - Ok(format!("{prefix}{ident}{type_def_description}")) + Ok(format!("{prefix}{name_and_params}{type_def_description}")) +} + +/// Can be None for types that have an empty path +fn type_name_with_type_params(ty: &Type, types: &PortableRegistry) -> String { + match &ty.type_def { + TypeDef::Sequence(s) => { + let inner = type_name_with_type_params(types.resolve(s.type_param.id).unwrap(), types); + return format!("Vec<{inner}>",); + } + TypeDef::Array(a) => { + let inner = type_name_with_type_params(types.resolve(a.type_param.id).unwrap(), types); + let len = a.len; + return format!("[{inner};{len}]",); + } + TypeDef::Tuple(t) => { + let mut output = "(".to_string(); + let mut iter = t.fields.iter().peekable(); + while let Some(ty) = iter.next() { + let type_name = type_name_with_type_params(types.resolve(ty.id).unwrap(), types); + output.push_str(&type_name); + if iter.peek().is_some() || t.fields.len() == 1 { + output.push(',') + } + } + output.push(')'); + return output; + } + TypeDef::Primitive(p) => return primitive_type_description(p).into(), + TypeDef::Compact(c) => { + let inner = type_name_with_type_params(types.resolve(c.type_param.id).unwrap(), types); + return format!("Compact<{inner}>",); + } + TypeDef::BitSequence(_) => return "BitSequence".into(), + TypeDef::Composite(_) => {} + TypeDef::Variant(_) => {} + } + + let Some(ident) = ty.path.ident() else { + return "_".to_string(); // this should happen rarely + }; + + let params = ty + .type_params + .iter() + .map(|e| { + let Some(ty) = e.ty.as_ref() else { + return "_".to_string(); + }; + + let ty = types.resolve(ty.id).unwrap(); + type_name_with_type_params(ty, types) + }) + .collect::>() + .join(","); + + if params.is_empty() { + ident.to_string() + } else { + format!("{ident}<{}>", params) + } } fn type_def_type_description( @@ -76,13 +141,25 @@ fn type_def_type_description( match type_def { TypeDef::Composite(composite) => fields_type_description(&composite.fields, transformer), TypeDef::Variant(variant) => variant_type_def_type_description(variant, transformer), - TypeDef::Sequence(sequence) => sequence_type_description(sequence, transformer), - TypeDef::Array(array) => array_type_description(array, transformer), + TypeDef::Sequence(sequence) => Ok(format!( + "Vec<{}>", + transformer.resolve(sequence.type_param.id)? + )), + TypeDef::Array(array) => Ok(format!( + "[{}; {}]", + transformer.resolve(array.type_param.id)?, + array.len + )), TypeDef::Tuple(tuple) => tuple_type_description(tuple, transformer), - TypeDef::Primitive(primitive) => primitive_type_description(primitive), - TypeDef::Compact(compact) => compact_type_description(compact, transformer), + TypeDef::Primitive(primitive) => Ok(primitive_type_description(primitive).into()), + TypeDef::Compact(compact) => Ok(format!( + "Compact<{}>", + transformer.resolve(compact.type_param.id)? + )), TypeDef::BitSequence(bit_sequence) => { - bit_sequence_type_description(bit_sequence, transformer) + let bit_order_type = transformer.resolve(bit_sequence.bit_order_type.id)?; + let bit_store_type = transformer.resolve(bit_sequence.bit_store_type.id)?; + Ok(format!("BitSequence({bit_order_type}, {bit_store_type})")) } } } @@ -105,42 +182,8 @@ fn tuple_type_description( Ok(output) } -fn bit_sequence_type_description( - bit_sequence: &TypeDefBitSequence, - transformer: &Transformer, -) -> anyhow::Result { - let bit_order_type = transformer.resolve(bit_sequence.bit_order_type.id)?; - let bit_store_type = transformer.resolve(bit_sequence.bit_store_type.id)?; - Ok(format!("BitSequence({bit_order_type}, {bit_store_type})")) -} - -fn sequence_type_description( - sequence: &TypeDefSequence, - transformer: &Transformer, -) -> anyhow::Result { - let type_description = transformer.resolve(sequence.type_param.id)?; - - Ok(format!("Vec<{type_description}>")) -} - -fn compact_type_description( - compact: &TypeDefCompact, - transformer: &Transformer, -) -> anyhow::Result { - let type_description = transformer.resolve(compact.type_param.id)?; - Ok(format!("Compact<{type_description}>")) -} - -fn array_type_description( - array: &TypeDefArray, - transformer: &Transformer, -) -> anyhow::Result { - let type_description = transformer.resolve(array.type_param.id)?; - Ok(format!("[{type_description}; {}]", array.len)) -} - -fn primitive_type_description(primitive: &TypeDefPrimitive) -> anyhow::Result { - Ok(match &primitive { +fn primitive_type_description(primitive: &TypeDefPrimitive) -> &'static str { + match &primitive { TypeDefPrimitive::Bool => "bool", TypeDefPrimitive::Char => "char", TypeDefPrimitive::Str => "String", @@ -157,7 +200,6 @@ fn primitive_type_description(primitive: &TypeDefPrimitive) -> anyhow::Result "i128", TypeDefPrimitive::I256 => "i256", } - .into()) } fn variant_type_def_type_description( diff --git a/description/src/lib.rs b/description/src/lib.rs index 139ea2b..ff055bd 100644 --- a/description/src/lib.rs +++ b/description/src/lib.rs @@ -114,7 +114,7 @@ mod tests { assert_eq!( type_description(type_id, &type_registry, true).unwrap(), indoc! { - "enum Shape { + "enum Shape { Inivisible, Circle(u64), Rect(Compact, Compact), @@ -124,7 +124,7 @@ mod tests { }, Multi { shapes: Vec< - enum Shape { + enum Shape { Inivisible, Circle(u64), Rect(Compact, Compact), @@ -133,7 +133,7 @@ mod tests { radius: u64 }, Multi { - shapes: Vec, + shapes: Vec>, t: u64, operation: enum Operation { Add, @@ -218,9 +218,9 @@ mod tests { fn recursive_generics() { #[allow(unused)] #[derive(TypeInfo)] - struct Vec2 { - x: Box, - y: Box, + struct Vec2 { + x: Box, + y: Box, } #[allow(unused)] @@ -242,11 +242,11 @@ mod tests { type_description(type_id, &type_registry, true).unwrap(), indoc! { "struct A { - bees: struct Vec2 { + bees: struct Vec2 { x: Box< struct B { id: u8, - others: Vec2 + others: Vec2 } >, y: Box diff --git a/description/src/transformer.rs b/description/src/transformer.rs index 9d30c81..493be06 100644 --- a/description/src/transformer.rs +++ b/description/src/transformer.rs @@ -68,6 +68,11 @@ where &self.state } + /// The type registry this transformer is operating on + pub fn types(&self) -> &PortableRegistry { + self.registry + } + pub fn resolve(&self, type_id: u32) -> anyhow::Result { let ty = self.registry.resolve(type_id).ok_or(anyhow::anyhow!( "Type with id {} not found in registry",