From cd0783a90894aaec984030bba9d0308fcffb5cce Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Fri, 18 Jun 2021 13:47:50 +0300 Subject: [PATCH 1/7] Update to latest changes in scale-info --- core/Cargo.toml | 2 +- core/node-runtime.scale | Bin 440863 -> 495132 bytes core/src/generate_runtime.rs | 6 ++--- core/src/generate_types.rs | 41 +++++++++++++++++++++-------------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index 821e4db..3f3a9bb 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Andrew Jones "] edition = "2018" [dependencies] -frame-metadata = { package = "frame-metadata", git = "https://github.com/paritytech/frame-metadata", branch = "aj-substrate", default-features = false, features = ["v13"] } +frame-metadata = { package = "frame-metadata", git = "https://github.com/montekki/frame-metadata", branch = "fs-substrate", default-features = false, features = ["v14"] } heck = "0.3.1" proc-macro2 = "1.0" quote = "1" diff --git a/core/node-runtime.scale b/core/node-runtime.scale index 111581bf3c99cee2f8e74013f9aa85aa14463530..24d25c79998cd20bb998a493a6fa337ebbdf0da7 100644 GIT binary patch delta 130408 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 delta 67587 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 diff --git a/core/src/generate_runtime.rs b/core/src/generate_runtime.rs index 2d1dfee..9bf6218 100644 --- a/core/src/generate_runtime.rs +++ b/core/src/generate_runtime.rs @@ -1,17 +1,17 @@ use crate::{TokenStream2, TypeGenerator}; -use frame_metadata::{v13::RuntimeMetadataV13, RuntimeMetadata, RuntimeMetadataPrefixed}; +use frame_metadata::{v14::RuntimeMetadataV14, RuntimeMetadata, RuntimeMetadataPrefixed}; use heck::SnakeCase as _; use quote::{format_ident, quote}; use scale_info::prelude::string::ToString; pub struct RuntimeGenerator { - metadata: RuntimeMetadataV13, + metadata: RuntimeMetadataV14, } impl RuntimeGenerator { pub fn new(metadata: RuntimeMetadataPrefixed) -> Self { match metadata.1 { - RuntimeMetadata::V13(v13) => Self { metadata: v13 }, + RuntimeMetadata::V14(v14) => Self { metadata: v14 }, _ => panic!("Unsupported metadata version {:?}", metadata.1), } } diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index 8f67b1b..3658683 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -15,7 +15,7 @@ use proc_macro2::{Ident, Span, TokenStream as TokenStream2, TokenStream}; use quote::{format_ident, quote, ToTokens}; use scale_info::{ - form::PortableForm, prelude::num::NonZeroU32, Field, PortableRegistry, Type, TypeDef, + form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeDefPrimitive, }; use std::collections::{BTreeMap, HashSet}; @@ -60,7 +60,7 @@ impl<'a> TypeGenerator<'a> { fn insert_type( &'a self, ty: Type, - id: NonZeroU32, + id: u32, path: Vec, root_mod_ident: &Ident, module: &mut Module<'a>, @@ -87,7 +87,7 @@ impl<'a> TypeGenerator<'a> { /// If no type with the given id found in the type registry. pub fn resolve_type_path( &self, - id: NonZeroU32, + id: u32, parent_type_params: &[TypeParameter], ) -> TypePath { if let Some(parent_type_param) = parent_type_params @@ -114,7 +114,7 @@ impl<'a> TypeGenerator<'a> { TypeDef::Sequence(seq) => vec![seq.type_param().id()], TypeDef::Tuple(tuple) => tuple.fields().iter().map(|f| f.id()).collect(), TypeDef::Compact(compact) => vec![compact.type_param().id()], - TypeDef::Phantom(phantom) => vec![phantom.type_param().id()], + TypeDef::Phantom(_phantom) => vec![/* TODO [now]: this is not yet in the `aj-substrate` branch phantom.type_param().id() */], _ => ty.type_params().iter().map(|f| f.id()).collect(), }; @@ -328,11 +328,14 @@ impl<'a> ModuleType<'a> { let mut fields_tokens = fields .iter() .map(|(name, ty, ty_name)| { - let ty = ty_toks(ty_name, ty); - if is_struct { - quote! { pub #name: #ty } - } else { - quote! { #name: #ty } + match ty_name { + Some(ty_name) if is_struct => { + let ty = ty_toks(ty_name, ty); + quote! { pub #name: #ty } + } + _ => { + quote! { #name: #ty } + } } }) .collect::>(); @@ -364,11 +367,14 @@ impl<'a> ModuleType<'a> { let mut fields_tokens = type_paths .iter() .map(|(ty, ty_name)| { - let ty = ty_toks(ty_name, ty); - if is_struct { - quote! { pub #ty } - } else { - quote! { #ty } + match ty_name { + Some(ty_name) if is_struct => { + let ty = ty_toks(ty_name, ty); + quote! { pub #ty } + } + _ => { + quote! { #ty } + } } }) .collect::>(); @@ -506,11 +512,14 @@ impl TypePathType { syn::Type::Path(path) } TypeDef::Phantom(_) => { + /* TODO: [now]: As soon as branch `aj-substrate` is updated to contain new code for + * TypeDefPhantom this goes back, use `()` for the time being. let type_param = params .iter() .next() .expect("a phantom type should have a single type parameter"); - let type_path = syn::parse_quote! { core::marker::PhantomData<#type_param> }; + */ + let type_path = syn::parse_quote! { core::marker::PhantomData<()> }; syn::Type::Path(type_path) } TypeDef::Compact(_) => { @@ -540,7 +549,7 @@ impl TypePathType { #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct TypeParameter { - concrete_type_id: NonZeroU32, + concrete_type_id: u32, name: proc_macro2::Ident, } From 7ee0ffa8b3cff3eee3d2fce550b19400db9cd211 Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Mon, 21 Jun 2021 13:58:02 +0300 Subject: [PATCH 2/7] Use cargo patch directive --- Cargo.toml | 3 +++ core/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 18cac7d..db71b36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,3 +7,6 @@ members = [ exclude = [ "examples/", ] + +[patch.crates-io] +scale-info = { git = "https://github.com/paritytech/scale-info", branch = "aj-substrate" } diff --git a/core/Cargo.toml b/core/Cargo.toml index 3f3a9bb..e6af035 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Andrew Jones "] edition = "2018" [dependencies] -frame-metadata = { package = "frame-metadata", git = "https://github.com/montekki/frame-metadata", branch = "fs-substrate", default-features = false, features = ["v14"] } +frame-metadata = { package = "frame-metadata", git = "https://github.com/paritytech/frame-metadata", branch = "aj-substrate", default-features = false, features = ["v14"] } heck = "0.3.1" proc-macro2 = "1.0" quote = "1" From 0c03a18fb672afe062f1edcf1f4b1d2907bf44a9 Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Tue, 22 Jun 2021 12:30:14 +0300 Subject: [PATCH 3/7] Formatting --- core/src/generate_types.rs | 47 +++++++++++++++----------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index 3658683..4aa33c1 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -14,10 +14,7 @@ use proc_macro2::{Ident, Span, TokenStream as TokenStream2, TokenStream}; use quote::{format_ident, quote, ToTokens}; -use scale_info::{ - form::PortableForm, Field, PortableRegistry, Type, TypeDef, - TypeDefPrimitive, -}; +use scale_info::{form::PortableForm, Field, PortableRegistry, Type, TypeDef, TypeDefPrimitive}; use std::collections::{BTreeMap, HashSet}; #[derive(Debug)] @@ -85,11 +82,7 @@ impl<'a> TypeGenerator<'a> { /// # Panics /// /// If no type with the given id found in the type registry. - pub fn resolve_type_path( - &self, - id: u32, - parent_type_params: &[TypeParameter], - ) -> TypePath { + pub fn resolve_type_path(&self, id: u32, parent_type_params: &[TypeParameter]) -> TypePath { if let Some(parent_type_param) = parent_type_params .iter() .find(|tp| tp.concrete_type_id == id) @@ -114,7 +107,9 @@ impl<'a> TypeGenerator<'a> { TypeDef::Sequence(seq) => vec![seq.type_param().id()], TypeDef::Tuple(tuple) => tuple.fields().iter().map(|f| f.id()).collect(), TypeDef::Compact(compact) => vec![compact.type_param().id()], - TypeDef::Phantom(_phantom) => vec![/* TODO [now]: this is not yet in the `aj-substrate` branch phantom.type_param().id() */], + TypeDef::Phantom(_phantom) => { + vec![/* TODO [now]: this is not yet in the `aj-substrate` branch phantom.type_param().id() */] + } _ => ty.type_params().iter().map(|f| f.id()).collect(), }; @@ -327,15 +322,13 @@ impl<'a> ModuleType<'a> { let mut fields_tokens = fields .iter() - .map(|(name, ty, ty_name)| { - match ty_name { - Some(ty_name) if is_struct => { - let ty = ty_toks(ty_name, ty); - quote! { pub #name: #ty } - } - _ => { - quote! { #name: #ty } - } + .map(|(name, ty, ty_name)| match ty_name { + Some(ty_name) if is_struct => { + let ty = ty_toks(ty_name, ty); + quote! { pub #name: #ty } + } + _ => { + quote! { #name: #ty } } }) .collect::>(); @@ -366,15 +359,13 @@ impl<'a> ModuleType<'a> { .collect::>(); let mut fields_tokens = type_paths .iter() - .map(|(ty, ty_name)| { - match ty_name { - Some(ty_name) if is_struct => { - let ty = ty_toks(ty_name, ty); - quote! { pub #ty } - } - _ => { - quote! { #ty } - } + .map(|(ty, ty_name)| match ty_name { + Some(ty_name) if is_struct => { + let ty = ty_toks(ty_name, ty); + quote! { pub #ty } + } + _ => { + quote! { #ty } } }) .collect::>(); From 088cf1e598753cfec4b016d04d418f923e30e811 Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Thu, 24 Jun 2021 16:38:55 +0300 Subject: [PATCH 4/7] Support bitvec type --- core/Cargo.toml | 10 +++++++- core/src/generate_types.rs | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index e6af035..910d761 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -5,6 +5,7 @@ authors = ["Andrew Jones "] edition = "2018" [dependencies] +bitvec = { version = "0.20.1", default-features = false, features = ["alloc"], optional = true } frame-metadata = { package = "frame-metadata", git = "https://github.com/paritytech/frame-metadata", branch = "aj-substrate", default-features = false, features = ["v14"] } heck = "0.3.1" proc-macro2 = "1.0" @@ -16,10 +17,17 @@ scale-info = { git = "https://github.com/paritytech/scale-info", branch = "aj-su thiserror = "1.0.22" [features] -default = ["std"] +default = ["std", "bit-vec"] std = [ + "bitvec/std", "frame-metadata/std", "scale/std", "scale-info/std", "scale-info/serde", ] + +# enables type information for bitvec types +bit-vec = [ + "bitvec", + "scale-info/bit-vec" +] diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index 4aa33c1..7cc8941 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -110,6 +110,7 @@ impl<'a> TypeGenerator<'a> { TypeDef::Phantom(_phantom) => { vec![/* TODO [now]: this is not yet in the `aj-substrate` branch phantom.type_param().id() */] } + TypeDef::BitSequence(seq) => vec![seq.bit_order_type().id(), seq.bit_store_type().id()], _ => ty.type_params().iter().map(|f| f.id()).collect(), }; @@ -519,6 +520,13 @@ impl TypePathType { let compact_type = &self.params[0]; syn::Type::Path(syn::parse_quote! ( #compact_type )) } + TypeDef::BitSequence(_bitvec) => { + let t = &self.params[0]; + let type_param_id = &self.params[1]; + + let type_path = syn::parse_quote! { bitvec::vec::BitVec<#t, #type_param_id> }; + syn::Type::Path(type_path) + } } } @@ -896,6 +904,45 @@ mod tests { ) } + #[cfg(feature = "bit-vec")] + #[test] + fn generate_bitvec() { + use bitvec::{ + order::{Lsb0, Msb0}, + vec::BitVec, + }; + + #[allow(unused)] + #[derive(TypeInfo)] + struct S { + lsb: BitVec, + msb: BitVec, + } + + let mut registry = Registry::new(); + registry.register_type(&meta_type::()); + let portable_types: PortableRegistry = registry.into(); + + let type_gen = TypeGenerator::new(&portable_types, "root"); + let types = type_gen.generate_types_mod(); + let tests_mod = types.get_mod(MOD_PATH).unwrap(); + + assert_eq!( + tests_mod.into_token_stream().to_string(), + quote! { + pub mod tests { + use super::root; + #[derive(Debug, ::codec::Encode, ::codec::Decode)] + pub struct S { + pub lsb: bitvec::vec::BitVec, + pub msb: bitvec::vec::BitVec, + } + } + } + .to_string() + ) + } + #[test] fn generics_with_alias_adds_phantom_data_marker() { trait Trait { From 85a5604116c2811af402567a639583d47258d55d Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Thu, 24 Jun 2021 17:03:27 +0300 Subject: [PATCH 5/7] Use root namespace --- core/src/generate_types.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index 7cc8941..b8f78f6 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -934,8 +934,8 @@ mod tests { use super::root; #[derive(Debug, ::codec::Encode, ::codec::Decode)] pub struct S { - pub lsb: bitvec::vec::BitVec, - pub msb: bitvec::vec::BitVec, + pub lsb: root::bitvec::vec::BitVec, + pub msb: root::bitvec::vec::BitVec, } } } From 3090e4d1d16fab28ba1bc19da2ccc759dfe7e08b Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Thu, 24 Jun 2021 19:32:54 +0300 Subject: [PATCH 6/7] Fix root module name --- core/src/generate_types.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index b8f78f6..4b66e74 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -520,11 +520,15 @@ impl TypePathType { let compact_type = &self.params[0]; syn::Type::Path(syn::parse_quote! ( #compact_type )) } - TypeDef::BitSequence(_bitvec) => { - let t = &self.params[0]; - let type_param_id = &self.params[1]; + TypeDef::BitSequence(_) => { + let bit_order_type = &self.params[0]; + let bit_store_type = &self.params[1]; + + let mut type_path: syn::punctuated::Punctuated = + syn::parse_quote! { bitvec::vec::BitVec<#bit_order_type, #bit_store_type> }; + type_path.insert(0, syn::PathSegment::from(self.root_mod_ident.clone())); + let type_path = syn::parse_quote! { #type_path }; - let type_path = syn::parse_quote! { bitvec::vec::BitVec<#t, #type_param_id> }; syn::Type::Path(type_path) } } From 4d584ef21138ec4bb280b9dd1550e7e2d39ecff6 Mon Sep 17 00:00:00 2001 From: Fedor Sakharov Date: Tue, 3 Aug 2021 15:53:33 +0300 Subject: [PATCH 7/7] Fix tests and bump dependencies --- Cargo.toml | 2 +- core/Cargo.toml | 4 +- core/node-runtime.scale | Bin 495132 -> 294741 bytes core/src/generate_runtime.rs | 65 +- core/src/generate_types.rs | 56 +- .../codegen/src/substrate_node_runtime.rs | 4092 ++++++++++------- 6 files changed, 2521 insertions(+), 1698 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index db71b36..a6d2cba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,4 +9,4 @@ exclude = [ ] [patch.crates-io] -scale-info = { git = "https://github.com/paritytech/scale-info", branch = "aj-substrate" } +scale-info = { git = "https://github.com/montekki/scale-info", branch = "fs-add-type-id" } diff --git a/core/Cargo.toml b/core/Cargo.toml index 910d761..0d11ad2 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -6,13 +6,13 @@ edition = "2018" [dependencies] bitvec = { version = "0.20.1", default-features = false, features = ["alloc"], optional = true } -frame-metadata = { package = "frame-metadata", git = "https://github.com/paritytech/frame-metadata", branch = "aj-substrate", default-features = false, features = ["v14"] } +frame-metadata = { package = "frame-metadata", git = "https://github.com/paritytech/frame-metadata", default-features = false, features = ["v14"] } heck = "0.3.1" proc-macro2 = "1.0" quote = "1" syn = { version = "1.0", features = ["parsing", "full"] } scale = { package = "parity-scale-codec", version = "2.0", default-features = false} -scale-info = { git = "https://github.com/paritytech/scale-info", branch = "aj-substrate", default-features = false, features = ["derive", "decode"] } +scale-info = { version = "0.10.0", default-features = false, features = ["derive", "decode"] } thiserror = "1.0.22" diff --git a/core/node-runtime.scale b/core/node-runtime.scale index 24d25c79998cd20bb998a493a6fa337ebbdf0da7..70953a2a3619ff565535410ac90a47e6b619f3d7 100644 GIT binary patch delta 77246 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 Y51V@`iv%FDP}X_RUzv&85p&P~07fL8x&QzG literal 495132 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

8$kecr7|5f1qZvI6-Tm=(Q7+is{diRJ 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

`#Wmf7uu3Zxy>`L1OAp)q|UCd}o zXrLQl;~SDsjtCLs#_O;zo8?g)%-pJwUO9~MBN0xyPV}N&)5PaNb8s))o4SXNpnjF) zcD}R1x1ulXjGjoBDW1n=ez~pBkV&R|xlP2Lf3jL#TRe5<@`bO@w9Jv*|K#Ve&x4A>xH@HD^Jqgcgz+p`@%q655wP&M6BC+^TR+c6o z$Nfr?j!?1uT$XO()KuSiH3o(bsy-3C9LJ0pD3S=T;F1hXGICiozR_HGU?HF+LnUc4 z`KNfKIkN`;`gnwCHiU}H3C)Ve_Z0kY+UO1kR+ByybFwoDJEs=p9I9f{s|pdlFILxA z=z*$gOQmE&=;o>W#*o5Vrdp?^-`UZSIz~VO?MNYhaqM{bJ}Cz5!dqZ(cKNM&yK zUF`P6Z6bQi!Q)Yn?#q=>loTouq-*{2jHy!Z$J9=OZe5xv@;yQVdKHO5sFH$-6@w&v zaF=AqhBV2@7T)2`+7*TZ0gaO|=g<5%1k1CCKqI05Tq)rfCv}j65Qx^%Y4zUTS{UnDP++&%B=*Vs6{SlLRNK&3G>h` zhHBMu#Y{89By-*V<@Gc23Yuq+3#o`uq~}lZy+0H8{+q#P)(}!|4P5*rrPXfxH$V_7 z2d#3O(QL{CTU}q@fal4JI(XkwG~G(?11{Y%1i|X4aC+4%;~72`F;tw=SR)OhXx36}+a~W9 z#-8gOp{QE&rMU6r$qxv!16SU)p}5lh zdd`p1w(ct%9#p*kv=U!LYxXd+n74$~d8I09Q}fzXR=K{@swi-=%91h}<2=u#CcrZ5 z@X_ef1QlyN-#UVb=M;Ui6{_781t!rdNan-~Gz=nvMt}dfHCh_(o4+9C(&snsHElbv z?X;d~%|8+vx9hK59%4{j`H6E?{Ao@F0^1cvD>xmLiS8>03Co1>gpy_@hm_JK6O%7y9FQX-NCYwkU3Clkt zl%q^oa}`Ywg~t%)0i>f=!k!B9)a<@*REXkmrKTi_6*4#i6%H$W)-2p(yLM{4@b>s6 zikm1(RX2mTb&tY(X~d7_qDiOw)UnoT0{;8=)Am1cwpbDm(nhP6|0C6ew=dLM2 z!T2idnJ(g0uKaPGb9pFZdr4q!yzpl2z{_DI4nY8=CI4{GZ^f^ttlgK}LqOJkrKZa)^bp@@a-LMM1lRvmV(B4*+$fN+#oveCo7aP3j-_<@ zDEP`@+rjhbHAeOZ>piXf7{V<@z}D6myPF*;T_=A0qSf+(6-e>2C=H|u<&5YFnJ(nu z$LvQQ(r&Qe@L#sR+1Zq~)p)!qr0J#ziIhFSt=|OWEJaL-23Ap49#_`px}TCHLserD z#j}hS^zQG1w%o$a5Pp3dp686U_yl}QTcno3f#X}Z) zYy~W~z*MrjHKT?BEL;H`vii9W`~z&zV)E+BOdj59Yut)K>A06C0Jn7l*@naK0^j}s zr+U`Q09B8w^)01}1|pQ(=aDG7B7@6FG{8Xdrg@>GhD+cT`$w7@fnN{DjAJ z*Tei1ZXBfw8j|`T9sq>&5z2W}YoG{GIN~&0F%7`V-F`J#ys8d$OR6vh16i zLkn{$!a)h!Tu!3!X30}3HL1>MbD-PRm8Zh%h3Zo)f`ZdL++}J`Y;d`aA%D9p+*LVoZ#Ya1tM+w(B zeZR1#3g7q$6Ql~_lt#yC$xpWlcm?V22l0u$myMcCCLjL$crzOaFKnw@i?-_6n=WV- z+s09QNOP3nDs0M#GjS+v2XE-=SSooXOjUkuD!}LtUzqsm&?ib&vNfJcRZaK{6+5L0 zeY+820KnNg$uBwPFhUObs+UpJmp7?0e*TYswFPeWPOYxUZcDT^-}!@cNa&bG z^sv>saB<=EbdW!6#^@wgQOZvVR7&TmUvATpNc4^yOEiEHhkPf-{hTH!BGZ!BP6OC| zP$gtqJe1}RQ&ytHl9Syj^PgctQc%{lzuMwIcC+2ZM*AVOwVF!$*k<=S9?21LZO4Co z$$p094Gn7Rk=?sYR~CyIgNP(g_b3NhQv4MU$V+)oB)`EEh1#>yE6adkM#8o4;?G8w9G>eiB?li1PKxFS(vaOo=g&)sy#r3 z9aV73HTQ_o?)Qb)tb8ApR=%Cx$|HQ(Z~Oa6IPG_F_u+7rUz%o8qx1W`=1he>R!u+) zQ&vEsea2aXUGui6(KexTMw$~rchzzk{h0`EahjL~U?IGETcK~84&FBy=R;U9?Z?of zCo4jY?s{7iZ*93zmPtm4G=Z@zuX1KF4PH-(23*uHI~_c5QNc+)IGdKYoCe8s*nWl3 za)pzZI39HbW{t_fr6>>uNAXoe-BBNhXwZrz;YhRdn2M&dlBVmc%Qj*c792Y&Fa@U6 zoHRI*pi6LTg~vM?FnL6*Auo(p>{bGVB~zBE)t2eaLNbSp;g-CjF&7c#>DH=XUrjRn zHSueBU^Ap@K+j?BsB_9%IeMfu^?d7ZTFGBf@Di(|W*uv)j~&H!k=V`e zj#LO~@L|15o9{YFoUB|h#=2ML*<>O0@4K7pH4Oh!v#$K?AxtU7`bYXpMSeoY2=tz} z0|_Cd3}81kM<*AtK}PBSCDbZmdy;MH4?aNHkH<{(ipPB=*vqIr5g+-b|xqT(=FYk3|Isr z+G_r^mDm=ya24A)iU^l@6e40BX%Qeuv9P_NbVyU|!H-3YKkOZ_l1E zElRi!i6V$Ar((&S`o+=)vhojt$yK(jaA>XTt4 z_lSELlG@=V8MSCU6QPTzQ$yr@93BFcmjZy~DiJLZgeWUixRY_1g$V4~a62Dw?HsDtl|$~*pHKe4zqVVjc}cXPB*Ds1_^@5_%A`PG%x zL9DAwDjE;BXzD)9viMisEX#q-y7*i%R2iB#4?c!;guMz{J@)5KnPhVUs4?Hf-B2$) zbIlGP;HIp&a5mXP@rn6=UC-(Zx=w=;<9(05?2DtLTULKnV4| zCjCKg-=-N0^4ELJWWfm32wdHF9u>n3iH6*n0&>g5+P62&PwZ zAqJHAXo-?-^dL3DVh|$%dBT^PLV51|Pu`b;v8$FF8Vzg@IW%9eAZL!sKq za!I{gx_ITH(ui8m*iWTLx^N>Y&C2h24|(axH>vokeZ=209FKcD-z_5Y(Q zBb7lTV^#sTxo`V;9oHSa8N} z9+2!ICAKo6icpH%h=hXA0%}!e{sluV=y6{(GHdLq0Cscc5V+gD`ot0r-Z*1 z;jFCoBQKEPJv|Ma7FU*g<8&0xanG1Lki33xGtOQQU9;`_ae|>L9Wcn1!4$vW4&|Aq$m*@=_aUgdqCZP*wfIB{a2}tI%N3$!~;AQKp_6% z1DCn*|j7h4?eR z9gDF5ID*=D(}5nVkME(gx(Envg&M6t6E{u2t7_WHZCq6JY~nTK3q&F}iH3;G0%PRX zcw%4Z_*l*1LaE^Qtj|sBr$$P)53r~($no$vi<@msv>)ridDoW1Z**7>M(9h`aWww6 zDg~iowK_M+Shlbiix$Dnh<3HIv`spnC;ap}tBPm&xZr)XY5Thme2F_q{i1a;P5|M` z8T>!5fImPp%-@QeO#8F4c+S&0s0*!rv8pn|*cAp~U z+zX?T<86OnrKc#6G!douQ@IBTwJvL*?a7GfVkIj{GA*I124&M8gk=St#VY4FZ!!de zYHL`ijvXu~mgmmmGsssQQ022Y_7j&}++E(j9f$v)>v}DR26TldA&J&>GBs3a96s9A z_u`6*xHNH@_g$FR*u_e3k>W(iIVROx;Y4kj{aJN5yC(@OUwtPhlOiPQF$6&k&(mc~ z603AWhCL?#pYIvLiU!`VHY+8T6AT!J4dpg8ug#A&gnoKlMivvV*!Nr-x;M&&XY&74 z^;jwKk-%~~tJ zh+wW4S3Qvzl&qi8DUU^Uou;*QhcGkk*r*#}Xp`k4i^lJF4QZ;al#^aG=MDtty{Wwb z-PcY1q6(THooE9SssL_6g47^HBz~-)BQy@<-Hz~v+IF=w*tymG5PaFIqu45{oZtNX z8X$~$YB2ci?qR_7wsq$HkKzD{*z4>ESb;cH1p-%uQHtNYQV~I4>u#;f_UpDMqU$Ln znH&r0UKQ`OC?H1pQBzpEOQKGplw2w3_N7! z-s!oirOu{Gxm9RF{QxYYeWz2n2ANIEsEkrHepf#Q85$uJHD*n{LSO&+&bLfh`nbn% zwt3mBiM7*`5&}ZjGROs8j#2WB*Vj*^--HIRO=bxk_Z$(j$@e+>sWK90aAez4omF!O z2A)&&s>~Wgj^=drXx6}UNkUU<*Fl)%)b$nCTHf*9ozLrO#bSdA7?n|qM&B*j@qA`| z>3>4ULw~N`mO8vGy}G}jHpzzAJdXZ$a+OGQkH5e?IP}}bi3&{@MGpCbkfa3l)q5)G zDJr-OW;vqY@7{Hq)fj!RO(w~K8ziiaYf~M$f*^Sb)`Jc^HtX_tF?9Y`HI|&BnvHJf zCCR?W!)hynw)oyIuJnt*bwOaw$U-nzJ5jh%LUoeL($2CJM687Kb1v;7(j7I?g0cGt z_J&9;2}D*bAS{OnyjgeL3_SdlCRfT4d1@3JQ$XGK2-C@ny<%_7`S>#ZZ>`Hkd#6w} zn>O)CoqI8DDK~}_)slQ-Mo|^%8&+u%J&W#G@GK9?U?JK2^lre(} z=mPv`2o=}J`Lw45umthyaqq}MMbxx|`U1H-{ZWplxYbo1ds!Et*P#Ka>EC~$ z@8m>!ZN&@9 zp-yRVfm9nTEz$}(ikk$5VkZg!(T-NEH(`Fz-HKbH*j}yDJ-pptSU*{#DcIo^ix@vB z6fIVzsvepoibsyBcRKVImo8%`S6EI|RkYliM{#)-i|H)|5hA9?vhA@|R=j)y8I-&OO?KsA=xdCiM~xYDHX4B(F$PTozd? zAsu6vU$89rPzqqBXbFV}jm;QZ<gGDI(G%XMYfzcqa5%;pz=*FrvYz2Yz zBQ^-!fg2cv1b^p;zR*Cw1cBQ^&16K0>9pH~rLJ<}b2q+Ko@p>A*>-;JO`JKHvO=iV zP#G=p@EEmdq#|;&X-}}N=c=UO0aWjDabg+pTNWmmnkpWYLOg)5@uV!l%|l-b=#Q6R zhDsdy#pMijgLw@H?5?;Kv2qveX02nJlqzQVJt;JwTPZXK{@4v8y2l>a$+kC-bqS9vfVpR?>BiILz?a~ zrQ3uDJHw85nwKbe#=(1xQhL(JxS1-$rh(?GsuJTDUGwa#eTHi4T&RBTLZ+I%UxE*SU}((}Nx0FCZCdiXC;t z3elLTDVA;)y|2fo4C!zzcK=a964>dF<=8n7vjv4sFthwK8oIt3<>lK~YQ_XJ6I7z^ zO^%OP#>&Nlm3NyucO*X~7S{^2XphE>gx+N zSn(hG`VdCSW)1DrYslnM1C!kY2L!#18rS-$^CbjrBhPPF)X`Fno7H750iDjZpr*g% z8tJHm`dQ=94>8qBSJ`qo${^y_j}i^_z=L7fJ7AcHswN>gAPC2F)xxmYR-llucPm>n zu~e$xrKQNRr98_uA^pDYc`0BUQ)iTl3c|G%I|661K*&EZ}nXC`lnqx^Br6?=E;B zQyr9~*8M8phtf;%gpyZ;RN$(oEBb(D(Q9v{Y2!Co1lhTY#8e2Qo_eKO6a{a4K$fkJ z?Ky-=$i-o<6i;y%sxf8x+Bg=|qWS3{zFPae74c?~P3f?tZpTW4=f zs_1lzOdbI_W}N=rlo>#&wM6*^Wd~PvuGsVtc$ylI3$p@~yzec>RUdMD&4l|Bj`rTW z{+=PHt99wL$_I^$!-y4hQiq?tmQ=>hO+o-w2|cV|(P*B)B4U5 zjoR*hE*i384|PRX9uC#b&J|dfRtyDNRSAq6E?c|Of2kTG(?X(VCV^=N(|Ea(KCVE; zg-~dReoD5Xr1+LrYrR^`2K6#GzR|E9(jkY~7f;-muANV*1$o^puonJdft;2XVE3M% zxvU=iqet(;o8&}6n#YDN=C-vy)ofSDE;c}zpoGz##x;`)^wvDjHy{x+EA`G67wRQ zE0f*~21g`fXND2c+RqX7n)%OG`$o=&qhUS&z?n5t6Y+)naO` zTctGRiLz(zpmYN0v5O(rlolMafNri9xex!yHA!wT3%rEIx8DP`NchquEnLVT2*gg~FK+ z;JrA2(N43B39wpUXwi7T!es>)msi>wIF05k%2o3a)_-DwSYm31V6<9%m zLuD<3Z*s=9kSj2dF-x7@rxbA$2lqAYkza`f9MA&<(1t19o;-BYWBT}g?78NQGG$9K z5*=WzJ4I!>*0{T!6<*1SehYP-)*n)4I*|%qnxjkZR2-a_Fut$3pBTXUY|Z^^oqP4K z=m~pP3&`@jPY{dk#XJ&0OvY2aJQu-i9W}LKQmJyvw&Uq*1gGLPfd(l|=M)2VSQ`y)gDG5K&>?SW*!?!A(19ih|IynHvT=mWbrYDJiSiHybILVLv0dD-yjP zn^dCL?XGH)_4bdhQ~F=BwB}sM1yx5kLV*b{ljm&=tKiJDZDkCR6=v%zXT{|gbKP3m zAce}(1fa93^bq><=s3qrGSM@0L4 z=k9qw)OO_TTPzY>H~Ru(sg|KV5NhCq6d;KlzbQV$JP*N zP~7-n`&5IG2|IRuugfb_!yUd(7dbYq#6H2I9A7Uu5NzzZ3EK7vf6_pXjV>7W>{1yl z*;8O)ULhSb1;TiC7`9L4m5ygz=An z-fVJ0m*)GVH#v;q`f0!I^L9}b!?8j?D9~3o*2O^A+EJefh_k0kGnhFdAf!8^`@bcq zfz{vx=+3z%fey5!kN>TGHuQ;tI@K82r8#u-LGNc&ur0J_QgxB3~p9PzgK~~_JRTE{dl9k)y%T; zc4=`|!eDln;S;R zO!FEDu{WZ2ES+@ZM^#iZ3L6MLj9y_5x@YPvil|X2yZm+PqfZ{Ana%_<^nFGcO|247 z;lazo4T9F!dNMq5id^e(?!tWTbl@{srYw#=F(U4#lOIt_CCgXT(6ofV)372`T3z(3 zmK-eRqOS%+F6cYDeZ7bDDSNjhfmHs~JmSsJp5eN)y+qkevfCq7 z%2!)Nw2r>U=YnLIBMK;Z z9o{fYNGmD(fty1y;gB%GwrO~g@F!trX^tJ%V*rr^v-(mx*DcPG8+mmmam#*=CRG&8V``!4YTvk5nsU!wb|12fnsHLsl3?^ zkxzQL(k{_LmIPH3!!u1NS{Joq6@?B7M#KXdPp_ANlkXY z;w(fuIbCgnQYHA4&Cmj*b|8MQGk>4N2Ta9KUHJcF$#}msxUjN0m(}cKYU)Kr?nq%* z#ZU5Eb@^<#+G1Nr6M5VYVXF017IFl2#MVr*r@0HI9*UMc7v`G$wS)*i%&FGXRRuQU zn=tLCMm?%a#g4#WpHdSi;;~{G?|k>=jU} zN>fI~AOI?zl;Ytr)MEr3+x#9=oR|L<`cd);p@CIR%=)i(FjqDhnb6WGF_{)rjh8de zQP7+8yRHni*>a)75&+8s7e}x^m2ps=2dZ#6Q<7RX=7?3HwF|+|J68++VQz+DlDr*j{*v_-1^PnBK`eSXL8i ze2U4{zr8`wjT{yfDstCoT2Ex-@J_`Eu(kdhjU|I2PT{Q;D#n>ZR(ZXII%(`&3%IOj zCYNo|=rk`=|EKyM^Wtu?Fy%IGRXHM9WgA;xn0b zVt(R@ls~2#0p_!&BT}pxjB@AnTf!1MR4eRkRXv2~sp(Uei9p6mYv6A*>5&{MMw&Z$ zt-~S?mT^6FOi!~c`b2H@U3`S0fLp?T$3c zdZpY9vMt}Sat;29yS4JZyb_LonJbag`n-&;<{m0E)q%u$36ME7HN|+aP!QHbOE!xa zdfV4;uWT&_elAgvw;CmT;?X97K0KiCTN?M=Fht7_)5M*4A)1V&>&Wp`?jPZpiX#DM zUTMw<)k_j2jJ~r%wFb3w6W}Yc84AI)yG&MXiui<3Y0-X3p7g81&6xZJM@-s11>7`< z`#5o*%OA@Z;7MgUy;V}-9s&lx(md^L=~+bBUQOA>V%GC3T9s=_IzY^y?HURhCH(Mds3Qg%r-!N(9?OX*#RQVG=-8IFv=$ zmTL(ANK+V7Qm90J@tQt|=6ukCK_xCzDM_XA;>z)+Us{7!Wl|cs zVC$?eXq(au#LZ;0)yI-YUPi>?%Z&r-2wqGBO7zD_ z_-C>u=GV7r*V$;)LtI~KUdp+%Wfr3kTZu5yJu?0UXuV)L{<7*x7!m)Hi1(K8|Cu zwwy^GFDb0ne+$>SWhD}HU(*W&+foYBtMB* z2_Ds)Z1Q0d9!)@zs6}ak8f%!df;cKCuX-6)yjW1c)Ce8XmVT;X@3sp;LW9 z&jkkx0>qj_BG>tF{v;X#?}D&tx3)RaHl2-!PDy&(6IxURQMFpRRn*&gaMc5S8-m|oJgqIJox_~i{fbZe$^mpPBh zbB9kQ8L}>@jy=>*RCc3fz4Pw+hEh^}w zDRB~=3<06NW1EU&Q-HT2DfCZQ8Jx8kKy~@!{fnj|w28{E@`h29exCs|>95UO#ueJk zZ{KHTA0$ma*}FqYWFK#MK_Adypj39_;Ln+5o>#>)Bt<4%YWrr|b}>7M9ZC~x1JgD@ z`SE?0rUBE!#x^Y?)nZIza2=C~!V?UOCW@|@A)0383~Vx!PN+FThdRL*xiU#EW1}rN zjRO{!e~S2FN?+(KOZ0FdUfGX~W%2$Vy_v{Pwz8D3lo`-mlr6Td71Q@SInD^!or?VD zu}uZ-?u0Lww1)(nak4sCqB5LDpv%GEFkU_%M@z5y?9DDPJi)Q3f z<}E)VrCv&QLc$Iy+J|NYi$5K9a@8}_qSjqYPPbR5r$tmx@379!B*76|-EXKE)-V?t zV<962%%-n`+pzzKKq&5_c2S*FIX~#=h7QoK`<`oUo=-G{b${ym z9IX}W=Fa`+kX=a5mwjdBwRI=G`x^hXh{0Q@E8h{CyM9B0>=_l;Y4OKNi6IxPp#qt{ z|EAt}fv;)hXl+OB1-?A+Nb{0S;Ub2Y?TU$>r1SChEPrl-P zyFaWhPm#t#NLVz+OtY}sE%q!gq4>J`o*EgkM}KeSi;!1!ickw`iAWh;r#2?_y_p%2 z*Xof-Jh35NAGHUTy0gir=b*x#!Id5W+Tu25wVM>Wd#KPm{3i&##uu8Vv*;v9kEFk3 z5~+fFCP>;5bIafbxqyO+W8$`7Y`PrmoiHOO&m?Ky7*B{{CWrQwK$FXHMC}Qb4$Jhp z^~EMPS$I($O*0|^d)dOWc7OVcR}GUY*W+;D#%6H@uGL*cJe432viEK~1|535rnMkW z1j)_qK9g@j^MCEq%!S!G*#l{(CTs4^&a!M-h(up*#scD283qIGn@XHfrA$;#>?Wxb zsg3H)CRqosQ}=L9O&Dl+f!IS1(FQ5%yWV z4Prw~3w_Aa|2Z1Jro&zgay~mir1z=Asxi@hO}c_^(WF`uU-RI6cZ>cf%_CJ>`rqi6 zGu1IpoSAH0c)oGq%T1%;V*Lg#8V_Y!jU)&bIY^j+e$z$keEIW})fo`!Cz=UWQ}cBz z;uIEf8(t-A?F_7@vD>J|Q~Ko=6u+xQAV?f-@;CNJS;#rLn^Cxhvs~( zV~zh-uzj`}2Q@uieWC0Ee3rD*{7Ag(XE6C^GwFg#9P3b)zYC{rjHx>=$HM<=facaD zI2mLLs<8#A#v1>l7BjQg#W(^C)%;eLA9JS4CXp5?D zm5YGMWqISCjx=`pQ%L~)9aB_a_kJlNb^1}LMNi{m-wXY>r*??@j{~Fk`S-u$Uz$-L zF*ICs+kjo6{o7wTHum}gwAV2-%m#U8P>ebyP40ti^sO4oOk1=GcX?)nPCABgNPcXA%Oq@|j36$RL-t3J@uyv{&pOc5T%q`*6NaB9#BV zCOy+#jz-z#Z(~-kXXc^z%02`c$4%Eg6m!;>^FL@gt(Uitf3@|MW3M#E?#@`UxZQqA z__dxn`V@U1sR5vJV^lqE{F4`WBWkjZ?aTN(cwB?X{y*{N9}n68XJ&sOWUsyWNg;bl zOdmSB-x`hXV{aL@2Z@svv@;UlLFRq=ME9MDfEP;8b$Z*I_rmbC{}_~2X4^#?xT|0I ztWKfY6?(FD7A~^~&qd?#GfFa;!$QOY@2Gw`#_w%pO{%9sSF~!I4B9RKbutm#Laa85 zckkVTN*Go@r{Un+$pL73KzJxpu?^n^FWPhBCFo_Xv!*O03o|l>8QZ(p7_a(5M~me7 z{%mpOs!sK#y&j!-*S?*-9yzS-xyVxW;wpsH)Xf|1599fi-8%R}8lk8B=f1c5(p^t@ zIfP1v^0#zg{RL7Qhpmd!B`fO*_ezKSB z4t&2F0Y2Nj?~ZlGg28V$@wR_G3X1o6uMd7NM6reY0&u)5tedgUobulIf~XtOn!&$8 z(E%0qR;ZHO2GY;j^M&j$s|H&^p%E%y@2;UjF0FJn@5xpxVMSk$JcWd{VC6eJztb_q zDo35eRRi6rTK4wQiQ@bA^&lP_Kz&F;p4!Xtn4vHICCgv>K>Nv>v0liPGS|$2)2kb@ z4jhp7bzm=a%P3!8BwxKu%%AD19lFw8IwoJTP$F^oBhO3Te=c*TE!VmnthH zr2BC$jwbAqPtNFP`ng;MwC;-|rp3NZXMlX~+&$?0Z7-+X zcj$c|8w*F9XUmy%a55X@V=KKh6il(YJp(UI5B|#)zrs|AG1raj;wC2m^T0%at zOSZg>#39Qcb`p|;sg}9s4=TQM9Tuyel`paspC)P4y0-u0+M1kq5xRIQpo3G5;6myNyKVqh_p1I4gX zjr;Y=kBUs9gu2wcOdACCqM0Bul-^bM7-m3(U!NsrE+_!6MODyRZzW7tld?E}Gw3;W zrhag|)xEkI0x~Tqz1*HB#&mkR zvXzo}wqLQh@zGrVa?!`r4Eu-LOT@ChLE? z8Z;MJ?X28hL~G$K47#$tz=-?$IPX;Xx^b8?^y;>Xeb%C75Z9KsmlWZ`rfqoVxJ15e zc1>l`g#wsv_mkbo`LH>MLg#u0+oKQTZSOS}Q8B%Bg)k)!hQUg4G*kq$2+Qa_pJx?- zd`5L6K1&r&u8#0bDpTsO7z=@%cuz#Q44x?mMg$jV9KUEq>rACx)l4(?BU;hfP`oeJ zXg%#A7-exV!YXv8Tr%~uQOm{jWZJt&aU8?gpeOJ#P*gX1fFwL*7O{8(oY=JZA(WA} zV19RO6|0m@d%1mjb8~%jdiqqndSQL*w7@NcdHa>$@?a8xOLAfEIo)lWW0g>AMfN-C z%V2!CM)v)aA!qism)HA6Ono=zwU68VwT}tqI|ZANm^e;o43=BTInoH+Tcmeea!!h@ zQ+a74x?$ptNrcEmC#yKuzC;jP^1c_1Uo3Eb>7CFZ0t^A*>_SV;x@+NThp0(9jt0=4 zYMm3e=A=^jY1sO5ueino1b0xiDJqUw#jJ^f2CiPlNvE0kA`ymdEw!E4I(Yimcv~j% zx75PX7PM#lqICUK4Y;UT7saD@0HE1gbFIdQ4$i4&ohIhUKwGEXl}JViL#;OJ>{w({ zq27EU+QJ$CWM1d0OD}4Gw!IWC>r~>WGRDI@NV;SSC92Czh`@i7pE54KmXDWvvQqo( zko-a* z#5)-YkRFH;z<*z-;A4kx5#Y0R9i4Jt;{(YQ%V*LTifuVr3u*b^^}xIOKKtRoU@(`+ zNg0ALjCkiDMR6ww9q$~j1erdE)LAveP+R=#5KC)dZ52(wF7{T|(QFewqpG=iodv42 zLR@fYs2$M+ojS!pPWQc5KEKu_cWm=jMIcaH5Fu7g8CJ8#@*U;RX%!QwKi1|*77B<| ztfBq&_K)Kc7Fj;>r1kOcd-inuS@xGLN{Mr#8A%mNVHYeNJ7@oor#!U53OvgUY8#)t z+G@2gb(gxTtDKLf*M42IWP9q62dc#F;o{W30h~IV7d9q`RpVguhzXhDDb#n($qFis zy=xy*3Q%Y@!k|_@HXUc^7X@Ci+9Ccg8t}};jSj`1FZk)s>u|^3$2Fus?D#M~u0l`k z@M(SCg&`r)30D#hv_gOC_9mLgB9Oy-XxWmF%=@|7iHvR8e_V(w<51$QqIn|6NmNES ztb5|GzlU>i1?}=~8X-TQ9Q~`Pr24VM@1l9U{2*kvWhrjmU7_VIiDi`UDu89|jeIT< z5e!Tbk++`2MQjLF>`$&YCca@B$q=wo%&~b$@FQ^Ie--GDIOym23Rmu1{@=7O8GV7f ztQF{v^QUIcohGnFTGDcXSF!K`8oSa8$>{ki( z$5Nn_HcJpjY(rWRH7fQsn={gKu1f$>Qw0`+i0o}^sLv6qo058CrE zA7n$O|H7#0Gn{v^f&&9r{!nkz+{2S-REzO<-EI4S=v>dlPgQ>K2lpZmT~41DdH=7u zkMm2n*630EYIpU?OJEx676^0K_SG7{_7^eEwZE7s9nQ)l4c%S{&&d)iDkcCXCN<3Q z>Nbk;D!vi86&#YE8Cw~Ksk5@HhS4Ze(HQ%agEECh)LHe3W88v8lxnTCvuT8Ozy#1Z zc6Y}5mgMI&tprQYOD!5hvvqytqPR%LS#wgj{-rcua;-Gpf?I}=1vk{t@hK62JT<1k z=#HL8VQ~`Nh%hX5`GEp4y$4tMgiN8mr5~Q;jYy4jLeB^8dvYdsY@Wr{Q<~-qEke~p9C6&fAb+QBB z3HPl7O@1{3sKu=?0;!R>Iv#;_QfFE)vO>fDn} zYA#`>%zt^Z2hyS6n1Ct5Y{tx-{L2W?QkDbm)Uv@SDmwVA8j?2?!NPa;d*Q+)5)& zAYjP=kQ@W)=yDE!Axza1Bk*fVb_Ahv-jmyZm!{mHpkI8iJD{MrI99*wy|KpsBlKGq zn;e(?o%F}a)+}cJ2^m=y-V`d@UEjVw6&PdzeDr*h|-*wOjJ`%GtPs0-nFew&VDR%Hr!g-1Q@XNzH-*N3j@q;P>5;RYg?r{ zgj{>G@7URwJ9R3S(-Bk8^1}&Zi^kiaoy}KAW!>O$E(%1y0>&DVf@E-f>IyeM(SE;z zVRXS#M>vg|Fcf?3vbTfl!_|r6mz6i?De(qM2#>X_pFq3lA!*X=PYp(pY3QuZ1^GeRy|hx(s5WOtVA41 zg#KN5P53^eY=AqvjxwQ!P^G)@3E}Ve`>3o^S8?_1L}_0z#JwcM<=?9l?O*6Dg3RuY z(LN~Je(7OR^x``;$~=|JB9t}fil4L3r%J3hldc_gTl=p3;_d(NzK#|HW;clm#oM=- zdB;AlPjWm~vIoJ?%<$u#qVf9@E%UE9S2IBjuIA@QKt6_988kw?|AY|l^v6Rye2S|S zS;9b6qG034{YQP7`YQ&=hkDpS&H5R%DM3!7i%CZq(@?5rJ@Z+BnR}u~#~wG0MS_y9 zlD0(8N|(i|6w0;LyyKx1>mdng+*K_nSm_VLKa}q!{7Gd8+;|3=K>xsuhLrdr*UJBP zJ=C8V@wzrE{m7JXq}gJDxA`)3SZPLls)>1r{n~P6@75)vBt_XF@$>sr^nAvtNBqXC z)2+WLo<8~vM|X)%G)Ic3pL(|S@Be$qTU5Dg_5N-f7L7|71N6P#N^hcioW~_&2M{bp z>09C_gV)u#OjQTqi(~JeDwDUfOj5?knGdy(-~6LKy$#NWGpn3l+V$Dl2Rp>y)DH1@ zar~*LD~GttGaT0$nudzkZ20;8e|D-#)O}IfY)>cn)_iDh_B!ZZnk=Qh|0x~b7euZd zN^yYx!5O<~L3#NJy&y`3rg(gPoAPh3aeai%4|d4?H}%+8j#Uo%nO&apET$WkB`Zb3 zXgxe|S@+;LZ8W*<*Ro(yO+a{F>ixNQ=c0Xll}sCI3{`q0QvN}%_)kVq*pfhJ2?`?p zrGD0|ZgmL~6F|i_HI?H0 zDhkl|rdpRb#O!1u2rx~pdd015DJXU+Xi8s{;5yP$dhAv7lZvTyFIa!>bTcYSlt)rC zqROsRQQ2#R(SB1&MH3)G6tz;XS!%r$m06Ra1P2b`0#$>S1~L0qQe-eUqRprD8vP7! zrCps&VyBz!c}>_ZT31wzA=TyyK`9#$YzPHuC8NMswL}X2xXw7$5Et zG$T&}p+r@&ojdgVUEX8-QcJg5GTXnXeD-Xz|D)WTZ2V8G?&~1Q&Z6@ycMU}cbPMyu z{dFbD0ew1slFoL}=?}@30#fZMvgQ94<31pBD}NmNiTo_0G#=2CNKx{(n6*`SEUTWJ zMj0Vbc2;%1AV%o&>YI>Nt14oeGe!hnmzZ%XW&mR4%yqDQyf)z<((-gwD@a#Fbgs=8 z?E-aqt#g~?xsL>VsCL`hkjP6no~!Z zGCks78I)yFXdN&msF&)c=@(;D{*Te{Z$S!wH=q!$0-{1PXK z_3my?rTbMhPB$-HTsSS;7g}p@4e=8k)~cdtwl9J#i7=;^qBPr(Nfqp1bjiY~%~GcA ztPyekD6#6qaIY))QP-+uxO$&a$<15e?wNHb`AY^5V{9W4bZl?R0)gidKkjXti=1Vf zcGBlDJ=|2Cx$x!vpQ5O<=F<{cO}?ysFEt^q@eKL?(vT7vNW-#4Y=Gj^0*Zo)lM%yI zU2WMjYD9ynm7~3F9rCe?<{`P3sK8Q^^n)wS8Ax)cN4lCqs^fu{ks#4vjaUbtz6r8l zH$Y;~xWnqO*AQ`}v$@=~)!N@GynxW46I2L``D#s!alt^l;eBShvE8$k*nYfNnc}Cn zR=N~{Fd9Oos=Qt;jo6x^@q$c;h$@|4>+-^jQ^zT!uu8k#)pDx`W||8u-706=Prk`O z8xLOi*7oK~kHUkNt{n2d&3-S*(bTK4m68dtvUNn}v#C20>#4LoxP<+8y4TAE9Q;V2 z#?+`-BvNPypXPTQ;0pgDS|>&6){wOd?Z!|1ZnST0ZEf_XpL`P08KX+AFg?R7oqPCt z4$!G*t6b3j4+W4*eD~yeG1j{w@a=XvgBw2Bz1>-|CAqlatFXK~jGk8F@iIr&JFnnazomB07wDee}e z%W9vju2bsOY#oFFE<^OVJQZRllGVDkjkwGW-r`C2UlnUuWXUuQu@=&Ifbon;fP zU%-EjM^@#|Hj@XTOE@WLa^TUXf;v)|7@LyaA?-2KouMEsDQVHTH-vC=qh;XLwR8_X zn3>K$S$@q24m-NhSyC$k#f1pCiCXG$F8F4LdQVOf0S%Xr!tBb{A#?|?1`rkTq5?bb zQlx~MQe@F61RvtAB2DdCilZp`QXy%S%J|&>1p@KU*ggSL|276FxQo2a$5OB7v11p= z@=r?c2KVh!BV`rR?W!Z&`2o-G8${oFtfMO}8dL-$@62(`R zy2WGjw>l%%^h&v=`7<+5P4U<#wW`Bk?=CHMULCQpZn-dj?vq^FBmi5uwb|{CSX>=y zPk)k2J8-Xg8bcu$y^_^wxMQ)QcuAch%a^EVil?7~^N^fmy<|XcnH9h$;<8dEX+pf4 zFkT4Aui)xyyf$U8>9!K$TNcM7g>}vAA9%*EVqhUBMdKXqHlhuB=89-vK)a**XzHu} z@8~iN^i|il>7UR2zy8;lWdRPqv&YYdG3>>#FOM}Whv?eLm8}<7J2!hLY7aa=_EsuG zWd+|Q@U%xf+8(43hqEDT?4Po>=AlEE*G#zK!`SzY5Oi;JlmcgI@Lxq{!&XHD9~^~H z2QmHP(2L#f9KPJKh7S>HvPQVvgy57mH{Q61)Cu`Rgj*uQQUY+l!cy7KH`QY=ow?8Nr(xiR%L04yr0g} zy-6aD@0jSvCRrm!sjXX&H!YJ2FA#oFXtGkAr;zuNHmS7MRRAdi(J97+`_|WAIyC|Q zAs1cmf>W>}QZ?~m7l*$tk@0Km>&sek)azD4sA&K$PbMOp#HiAgE-@1%WkV58iQG&v z8Y-x>GngrNz}2AzJtbt9@XVfVW5wZ%+glfJ%!2uvJX9fpOSzC%Smq`ROX^5uK{2!y zN+wy37mZdUvvWp3Cu9==v=XCg&h+i@;u?UNF(*2;_V zbL)4$fmw~BV_NR%@^qOT?guAYQJ$%3LcQ%9Donx}STBieQ~2qufF$r>Ht+_vs`&9G zXo0~RIlaR=y*4)o1)=EQPDsiRu=c~s3|;G@i)rcI+R~|@;XlRj!Q*zd6o41{#imu> zUT$~q3ZVy3r8w{p%^7HvAw`I3623~z0s5Q5^gs`U72~NngiE57N#%A0dP|!tBw*8% zhCw6!ym31OrArANrGrvLpMQb<7IKW{N9Ey?a1J(pC~&R5ckWQ;LeJbrs<5i~n~yZT z271U!AT-@X;D8Uxa$)^yiZAJCHLy_3fCUkR zNYM?`NQAosN3&BV$4XAO9otlOoH>MTDi}lRrme;}=33(ccv5CWg{^>4CempMchGI5S^b8rqwh>|j`;#QB;;{)IrkS5aVmF8=3>TO%uDJWK+mWCh1 zTMAkB@OCQjtykY4{c4hUEv7Lju|YtSo}5sj^AVE{eKW6_Dxw$1PffhH%l8A8dg=Vc z950oyi`2D$p_A%cN<=sTKXf06jzTkpw|pV|cnuYT`>K7k#uqNmUYw>CQ?$5KNtxS8 zvApx7Sog9wd}of*A(m7wqk^OWf&5HRfGOh>t>;_kXRa=uJUhF1>f+@K3w}&q0_p-p zU;5Q4RIP1UF4otktW+k93w_$RK9pbxP4M>VnnZ06N6Xoxf92PJ0BrmuH-vpf)q!$`6fe@ zZ*8x=wl4Y6U$nnTV;|cz_+_TC5Ols0nU@dGpvddap5#{Nf(iG>Hou_d>fOE3d04tG zsl$h1`iTCQG%7@&D+nH- zx>v>ZTz>KTy|X%MoxZHOE?B#>EjtfA-q#y%u{wYEF z-ukxfFjeE(Qr8#16D5&=gSZxoI_S!g9@Eq>X}!``(4yUKW4VbOMqI3@gQG1~SDeHv z9r1AK>f@0HpNp;ck%nIy*0;IpPzG?rX_9Wf08tkKGip%S%U?@Uq+awwK52WdvIz*+ zN&c1st?`obTY;p3R*p2u!>bINkUkXAgy8f9^f`evOMQv{bo3!Gwk=rt>><`ll$FAp zCGN_6()wMIH%9U28NY&Iv=&x2D19J(-b$H~59Pbej{lyD9)qYNPMoXH1!U`#(HPHg z(zt8!_nhr`KB$#Tx(_7wJ*r(wKH`qn2rn1j<>SD`KG7)M4yTYG-fs}2Pk&NE_E34* zxL6-FGxrJ!F+mP+gD%EF%Pa5T{1-zGn1gUQK5r0obL5VZ_qS9~U^?@Cg? zRbI7H3OAhk)X3?FLJ+P?>a%vh!&z&RoL$&;zG;GlD#H*^Y|Z&>lcKFCT9_z*03hs{ zB;8VM9%j!%_o%Lu7|{cX&iTHMVwAS82a}=8aKnHAQbRwxxW?j#aSNl| zLkPDd)>5q%Y3ZpRlRySw`gbGBT_2<*H1`*`bq4-+9=Bv7J4(>f*oR8c{Yu{fb$8fP zAmF&<>;u==*H`)D+;^F%PhiFx3U{s`2{8Y|$WX=)K#h!!Axh=X2(aODP9k5;v?lqO z*yxW8%x(N0gqSNOW`_1(>(&a@&8R)~^d68!Gj>TwuKg1usk|9(ux{HFp)6aEw{PJ7 z;@bgS{22ooF78@T`Lga_9l^}}CX!GRR~G(as}Vdr6JH)scbi1_s|&Rw>?ozA`g%&8$G zeFQ=^XR7@|s&1`Q^;SA)zVuO|;ecx{lBA8O8>$$3hs6uuc8*p>XxUmc|;aicA{iT zicZR_EUD%+Q3oGPy3EQZFwoWZDCosD%LfQvNTwU6Gp$UsJPOWV4&kmr&^ns6|= zEtudK-)BWCcxk2v=!Lnb1ki%D_7F;1JT|#q3!X0xcXmKg&j8@Eo@0h}YMxEfBlu9;cA;#6EX z+N!T^6W8W8X$CYJbFe|LyV>TfHB($tYY=Q}Q~X~tTj3?ZFz0WO3KSr-dy3?vDgl1D7?OQ7ZW;VC}?3fzQnw3-!We6F( z>>C4L*gh4;NI*0TMaqRgDS*IqwuIBk4(EnvF4j0}_R||UIhO;fCnuWMGtd@d9aFlx z*um>I{CMDmJ)px&M*Lj^|EiglNudcR@s4fDYud-E>%2w^b}&zi|4RU*Rw{u< zR`o~cpTMaASm$nbn)#5vAv7DgqNG$zI^l;@!j>vIM77cBuWe+JY0XFqJ|Q9mOK{8# zS;u<5$k_%3MM)Bd;kzq?n&iL(fzIyj3Y4^R-p*P+g}+Tnpd*RqyM|e2C=UwPe{MnZ z?R1xm=UfnI$6<*qmik-{ycg)X9qcRQy}Y7Itetx~OtPrycL@=QXd6)Q^j+w8!%^%Q z`za+LN$$hU55s~on!d9tg*34Q^md)gfdrxs!EL+8_k4uGSOBNArZrl|MOGWVaYRMC z^QeTl6Nd8@IvgwX@t@AP9YTqd3Z0fpSgj$Tuu#W1WMgB0g^B6Iq7~8#i3*4n*5U&K zagz~Cn!TZ$u($ZNp-{PN_K@;x+{lM+pKN3*A&8u$*vjIry;p~K#q9D%{<$<2ibiKL z!xhfP@TL0}&};$q!dD+gF6RLnpsv zE$)2oXb^0<%eKzsXAPnYGFbAEECFGO4~5)^1>VGH$QjGQPasy1D)XHlJcW^_)A>6iI-^ ziuR^l_?yVJpAIwx>o-@HOmy#aVx@&7 z<*<{>6EFfLZgBTGh=7g46*t;49y3$Zj2 z3R{^;V2nRsQ?{x*hf5CZ+_;-j95c`w7q{Ro#(i*ZxonFY#x38-zl>&-yD&uz4gWcz znnM*exb77@ZtA=-LhMj9(W$ULYyng~Gccs`dZoE3P#991*g_%1KaWx!KcW4i6Vv)3 zt8S4P!-yQ|QRtWOW&wJ=J7bz1_~NCD7Z-+@4%{LoeLvCM(QD2&%xqt&6H;BXIw2fJ zHyGck#fkj*o>jX~v?XYNzB#=s_Zyvz)9j(aO;$|WGBrG>#8{a` zl%L9WVOPlXqCsBHr52Y?+`M?qX$h03*~ccD_nTccuQ!bbA-QR|%v3BbMa?8huR;bW z4h4H*{LjVa#=d;t@xxt^Q_DvVKlY{OOht5z^yHlYXWqYI+%VU8m;Ia+ihK1M?}v}j zJ~Dpl(u!LD^hfmlgTC9T!OpQC&MUoC?ngLLlA5Gv*pvV>r(is4K-%5qOo9C-nt39K z<=k(rzmJq-anT&RXJ9a~Qi2eF6#tjRgCPr;tmFq+rKnh1xG@Lb@X)YownuD}@&-QH z)cTF$BlC#TkIUoA3=WC`tEGvU4kff2n50%(?7M@FrE<5g+~e!>REesR{iw7AJX|eJ z{zPy1T?0r{<07LBGrKXyiDaYkyIl<{E;&$;}y1 zMU)V;1?G497R+nzspb|t;zK=jy4A632ivY6S<6=zky zqFRoTVr}#KVgL5guaLc{KacafwY<4t-WJOX_*`hctlhV9}Ur&LwAA`;-kBxkD%EtJubu(SDI^=(Xke_C+Mmbqw)OwEl8& z{l?-A`;8`%UZv=CGX=F~DNoCilqo^2a(((%AB#=ury;&awZDTvVYMfcY1ZRybV<>q z-HMT6O!2D+YEw`}H$$J;7w9uXUJ+Q0LY($0(m<4gr$3rjYp@Rl^xVkX8(Te9E-woj zm?K8SlxxJnZON@dQseTr^Ce=wJFC=vE~ZpL4l3LwT4HrM@V6AR(jwgEsYR44sGx>Y z*I2{jRMEcPu)NmkYe7f&Mf65&&w8!D$TxLVmp!WpCL160blU1qS1GaRw-)%VG^1r-7_bJ#hTtG3C9NQ;~*_{t!^*D3rdJQ4ASzb zZb-}>H@nJj9NnvuM{G3q7jM$RE?Eycd>ApvCbzbOI5iY)I_cdB0FD! zSWQCv7bm`P{~NR=Cw2dMsaV3=wZBqKfM%r3A+;`*ux^)WmlxtU!|mHNNY&_8Dgp}y8zK5dqegelbPJiOScJ%m&%ajm09drFUJK~b4oLPXnDh#{R zX`E48vAb6ebY%jbrf~+0VYZpg+a@-{$GP9MU^Y2Wi@|vKA^|tMdsjMpm9ZL7oDML~ zmBbr|Fum$R`Q!e{J+C3#3VmTBau;kKliEAGp3GcVX@|9>}We>CtIi z4&1~sR8@bTG6ejX*D$8L_BbUA=vN2?%eCNM2fYcHQ_hd>Xu3LSUkP!id5#D>RSB7D zwo7qS35d5PF8WDO+~!UPM?0Y>HNnoC!ZS1ead}r1Kx3wrn&Kt_YftRX!KW=*A(QI9 z&b2B4MHS|f*BIHK+U0v-?lxLZ+~LZMloPMiTMpDkqEVOR(dJAT`f4TlhB7s}oJq_w zt3sW|*4P=xT`IOTj>$UfNiZH&&_zQ?QR)RhY3LtlUu97)Ve*4IntoW}V`N@?(G2<1 zTyo0NsTnVc>`eo zjhpSjucYqv^O+|jssK{BXLf^`$JkBOJ9cZNa;%f|F1S;7&Dq1%iCxHQqV!j57<{77 zV1QV*@KW=VmA9#4OlkI#{!zm|99?~eQ5YZ;v$rMH1%j(Cz-C%`G?(^E3G~v}&E(l5 zgxVMexI3U}$P}vYol}3lRChwF7kM(0QjwG+d?|tj9>qggx%X1U`og9OvPGh%UE1v%5Pqe6@q3U(o(kgCkv`e0Zi{?ds+X+6Z32Xyo0Y z0{cf$|H)sU^6pTgl%4CUO$pT`xEiEvSKSqD15B0=ipHnPyYR(9*(FY)6zD`3?CRTn zk@%-uTXQW`^#hUUD#5fkUs-PTrj`Cl(ppKLnQXM(|Kav&-=E4?(K1C9=IXAd0|)dq zuj_{f4Ssg}lRfu)F*rGe;^>21n zzj(U!6vUqp-%0-X<|Y@s_j`poD)vF8omw$Z3NDyzopff_BlZBp=Va?;x!PFljK?s) zf+$Rsn?JGBiPCsH`jCjV$$S5RCU)71(opVaOW2MY18vai zGb-gwK@QhXxoDji^ZXRxz|#o_o{n?-U~f3E-~|{11wPy(2GrlKp8pAl;9_d;vZox? z&nqJGM}fa8##gNY^ZaD1?vPS{p%<33Ln@9gP5gieV#d+HwK{^BRi{LWG>?+dL?f!0 zW4>JPDV&T)-e4Hw)n+7loS28&JD8&b0X%A|wX6!M7evy8WzHT9gb@Ye`w-%7b zD;n3L3E-6=IEV(jB`pJJ^(?-dz0j6E%ow0G&&7DVCN}pQu!?*O2sumLMF(O=!TpUr zwD#GZB}qRIX*7@B@S`{uRga zV~Kbk3*ve7V`BNd9YbQM&wN}QuMbzn@P{jG<pa zn>z-Q=OeX?=JEPBT3nN&>@3406vntjUan{W+CYkVG^7lWQ$8)}9R&_dH zVzbT^yhdT=0-@G3iDdN6Q+{reJ@&tlYODs0-mHtMk7X)-U_>azza~!i!)Sq!Nc!~j zoO!Gjm{Hl58tExQta+yLAf9bRKdJ=ZH?nGcV}?E|_kg^bq@*FBL0g^Pt2J@+2Lzk4gW3f%8UlQ=}CQT;^%V=eJ^r?b=p?}>fjz0AjLNeynkPy4b?8)@RnUaSP z$^e=ycd(>pnKOMSTh2FSzL1u7T{C#qJT2v^XChRl4#AdaU)+3CR4s&N#~KfMFan|lO0N-6&x@%~5{Obi->9WTc3CR`7Ar6Ycr zNPet%_9&oxs(ALu-wZ|a2ZY@xgzOe5^eG_Z2jAL(kmqnF^N`iZ`og?A(&5f}xt&h8 z{Yp_Kj&tdIzu1em<4@o9KKR|C*L#PpuMTeAx7Y`Ohbva)wip*h9|ziE=v)71|B;X* zh?%(C7gare(7qgAtl<%f4|5?tAT7-4{e^oQU8wMV1%eajo3p7Zx)eum?bjA-#~P|6 zIrI8>l7xwB6&slR?Au$n5I$(*X13Fa)jrZDg>cc(oi1(@77?YqwRo3&H#zIs6(IM#Op-9a)B4f3(LJ)l&rB zdtQx*Zn(>>dlw73oY!~x%+FH2iG4y`iHJ(sPcv8mm0()D$G`^MN?^CYXr+w9o!3T7 z2mVRKteOEoazQI%9DrRVYNS#tLhJIf0^#V93!8c&wX1$OpVDy5x&&rgz};LzsZo5r zaZF8cz2zS4)}fL>FR`qGHFgq09Tg&H@AZItbs~wPyB{AJOtrPeB-2Y&YRK4NhoLea z^=hqw8TP6faO|&y1`Aviw3^#1xYgEa?9IW_F(usqwpQCe`OqA?k>a$93f5~N0#kAS z&{Iw23MXI)tRHh>NGaeA`mz&?5xpd*|g|CU6f%wtOMHEh`tSB{O9Z)|vJeuz) zD^es>r(Q!V^w(KmqZbmCV(q1-=tb!yY~ARRF_7${)?6pKv|CR+F=LKt%b_;&r)WzY zd3r^Ge#H|{{NV^`QVsVvc26`bITnp;&o<{bI%=i~*Co*2(q_{x62-i^O*|lth5)Ve z40EmAQ5T>pOeSHp%O3>+A#B|}?+V}u9Dv051#zr)ucsHvXor8RXsljxiUcrQZ4bbd zlWOHAN$L%Aoftw@FNU$fpkIz{na+mSES*Q92J8gBWUY8O@$*gfQ;1zhgt5KRS+)LV zWdOC%!@f#nn4r`4T;fvgvY*D*`dy>Ww#Sric|*Mw+z(7;Y^Viho$g(z#f&0nIs{_^ zY2&N*gKDn8y@9fM^gyq`?_BfEYr*l9*2MtbPSY%`^09LX#=FJM0`%nw+S|lrV5^y) zzOGj16p(D;yj1!>p4)4GMF>W;Q1_qBp9?6jLtE~V!Pnb*Aw`jz_xect56WG>(R`6$ z4Nq8awP#ae2yKy6LjpiZsz?#j-s#J4zJY?@D^QqpaS{l9Ul0mBBbrZONpPz~ycUi3 zeR7*ib@w~`OI^O)>8f;}kWFp}9N|)bFt+&Sf^};-pIXNn;u?XIt?(!`zq5S&RjgKv znZzA5>ApX0VHlC9kb`eY@ES0l*tcPqntS__@fY1rqB~xTw#Plu5M8Q7kNn0Ljk6`8 z-V4E`iWZPHU%EB6Iz$;HT{KM8av*FDC>_)rTSs z0h;0EsVhjGM2Cz9A0)=;e){T;Y(=6{dg1fUIW;$i;R~KD+;Z81QBOI1RT(ZZPSX;Nx{}Sct+J;@L*XpIEhR?iC9u!B z&6Qbt<^;)MdUkj6+DFN~Du@T~rQT}Mc*OT=;82+- z$X|+)l~hB~zidy4P}!6o3QpYVN>c1S-W>LvCzsZk4atz+wp@L%9FA|*&e zLmVwZf-<#%3=Nc=cj|qWB9TgQP#pPhxl;=AP ziJjYaNeQO7bE`a&q}CNs8yEz#!2=UdCvq8>rmult0!7kEuf(9@jPCgH%dbue#7Q6d zY`C@l6`_P0`=DeM)P5+G_#mK!&S)GdEZQla*SQ0;%WJJkDB@{BjTy(^HeJ-Cmth=R z;NRk4ZW)oP9H$;UmCZEc2Rh74ZpA%e;@Mqmp=PY}pu>ede*J7jD{)#!HiY-bca~9j zSuAEky3<62kBlT&ON2vkn~IA5sqmGvCb|+1wU10x)b-`4^8T?L?n{ry;Z8BSSv;RR z+&^iD`=^4OpHK|S%+9eGl)m+Uskx7NHfV2LO=UT;4u5C|~-pIz?^bTd8DK=wCHI|!!9(i1=;L}3@W z6?v?}c)yZeoB0;ec<%ndPGs@l(kvRs9HqV*_FlCKxq$i4YfKo)v*kHC`P*~*|63|2 z05z^63@@PyZg92N1zDx8R+fX%Xz7k<$I6{(_Uu;k-zo(9-53JJP_RPj38_<-q%w1D zyG5@Hy&5+;m>;jgkq(g^^VRU@&u-$;h%v2%YAT&cU=4m))1N(Big2dNW)tr#DZ1;J zp_^PBN?v}_54yMi82WZuAqA;dcIB(Amqb(~;Gf3X%2(s)nAbj7whperBi2C&x^vh4 z=B0IUhB~!sH=SS-xv3LPO7OyJ*pgE(pnx}Ok0?1yyR@Cb-&QJf-R;?|8d{^bccc2O z2hV9lMiiZGOe!3|{dr#ISt;18k4U#S<+n(%3#8&uEtwfz(qcL{cqoqeC{WgKNZ}U5104HQ%@)aS<0SImfZ`1D&l!W+IOh zB^@m~2!}FpDdxzX5PX&6GP+>&LMI^kH4njHMMfoTbd(|xz-yYPbxi^@_Z73bnZZCq zLAiRr$9FWZ-SfK@w1n_=5^(f?P`p_8IB#qan6Oip8!w{m>~BFLp_Scw5CuyxM3Dl` zD-x{8w~KC3P#y|%nc-iNe5m<+0n1cU0Opy-&|lGs$NRrx>BDYiPUSD zKJs7&Rkiq)-pu^ucRnH+AvJsJNxZx!jG8yh9VIX%I=)CcbxAnqjquRAIEq)M;aR$2 zYJ-dKfY2_f0F3-Nh}UqlY-_`svuTZjC{bKX0sgw-L0A-s?JW!*sBjR#e5+XEw|t2Y z<`9^&fi%&9=C}bwKdL|!Z#r4e;ktAQTZc?zhBwk2LZ`u?lldR#8p}^}XS|0S0?207 zi5;1L8gk~+Orl|&AFn7i)^#67wKK)W-n{{>?N{hYyAal*mWT=`b~b0dIT&X_eDM}O zH#H|$UEpNsx87?ct5t40?+qtiVxxPzBSr)J_@F_I$qU{srTE{$w!kkn9V1h4M9Mr& z<*4Kwf32F*A4#C7ihKP6hhM6KqcH(rpzMj5)$60PCiG}hX<>r7TWKm=Y@`djOjuh^R-&=HkuFf3R zy7^q4A%Lda=RB-0f!GvRIDmsaO6R=xT+naO&km&9lr$PERyT_>DKZsn&MSn)_5Zbs z>OVgLJBI@F*%hMi?r*m1*NPndS-Gy^;iB*7C0ThOQOTV;PrIV_;#s!}lkR@xK+^A~ zgj#zw8c?Gi0Dc^idbPVZvkTrG!V)Rw;-yYfPUr5>Z;fXDL1V5Ezhy=QwYrcwg^&D0 z&w54v^vF^2Y@#TllBR4aa=`@nui5y0(=7OSYSDs^pU2J5@=2hY?rnZ@lV{@B!C%ga zBs2VxICv?4;B$_v&Ti2xlH`G1mwRLaIVSt4L_}7 zs7KNY=}-mDNl{9!rr3#}fp#lYY6aC??Gmn+ZN9&5pZp=7B^8~kq?x5G51Y8T)Ec(J zRAe5V-yPCGT%5T>y9Df2cfB{s!5H+mnZa(T!sxXGt9Z); z8=^UuU9CiBxOy!`&%J+&3stmW(@mDm)>g}|Fo7`zaOw@{mLxrojOLsCbeP|ob4ONb zE@ZMG?fR`ygl+z~G$~!}!V;JSp6Pe1=HXJOHvQxJ-EHOYgegnkxMwfTl%I)~sV}!) zv&6*N^TM&+WpQJWsnOLs7tL8GZ1HE^^D@Be(pV(5r$O2fR=4bbb704(qM#IY0%AEs zZqedQm21|K@2529p zH*Uh$Xugx5;m@*`66q)acX|>m4$($p5*gNx|A3b+QfqQY>EZDharTfa9vm+QdXVoE z+vvHSEnIl4U@g3V@~K~Xm!;kekEW%D$VkBMa3Qwktg(Jik(O;aayqdV%5Po?XTzSg z3J%ZDoju$2-O-#%6N0Yclqb%ER}f?x40gb&l%yU(%h=5pce5y|_RB(J$X&Uv>TL|- z%1!KkS)0Z1t+=l)PGWokR_UGh>itbkWXp^=8=d-LgiU5SZDtrM7sU1|EGH?6a1Un? zYNiMw@-3+(-|pQKB^a^Ub6Sm}qq~;af>)5*A$*&?9h_)sk+|<}af_W8;TBgg3lw(G zATw;rix~Qf`8yW1@TlpE>Ll|vm`@iV+cj^}8uri+h0(Ynqp2xOWLOPJAm6e5^5V=VhrmrDOPh)@Bn0?`M`Ep zcgC7D3{gL4x<&7;4><6>;3OB6*__Q(6z2^vT%XhSY8sz8kBOoDou|Ss}AzK^iAAg zNeO}A)qK{lC7tC#aq^Tms`jN#mJ28T$nr02(9gQ`3YWi%k?J^L={`d!;r3;Knxq~B zOH+GvAP3Vh1Iu-!#|IA>j3=y^n7;7?8v6b~GN3QEMs-ZLM{`qauT; z(bg}rJx6mUYnMA>hHl$gZ30RTzO`t2ae!pWVst1KMVb#UG|}%oRz(07rdH=AqYQa{ z`hP_>2PV;H(fs@+yFH}!S?`+~2m228sHd9v2gz-_%vig3*i}I0N)%9g!CG&5nYbyE zL2Bu0&jx_Kx%$%FnK_S9w;MOFU(Wx)FT50!G{}mW%It+cMUy28akz9_h7&By*3sPt z`0p@2bQ!$bxsL@;c;a@{rXW%Dy!_eTIPw_yu7-EC4ML?ywn<|#TAK~668WkrO$NnZfTp{2khEKP(cu^#;74!Tw&2oajbpm0s?et@IZn2xUOQY<+U!TRJPiFN$uPuS>EfQRj& z5*oLbES1}+@pp!J!=UL0JujO+7CrE2Epb>h`#f&x3KJ?pww3YK4{{;ou*oW7<-Y9-EN|p`^IgV@9Yir2Ck13tU>;VIP6OAeQ3*Pc543;I z+n1be2Ug&yB!(cx-kVX*Mc)7E(!IHxK4l?QmR<)ISmz8sN>b}H$PEm*g&e&=D;HD? zlcJ`kq!dB$IMA)|9P1yo0K~So*g|+cZM_=WJ^HLbinLui3jp+RyzOt)5$9L7k7%kT zrm`RN_^NY)1Mmzr7{TztxQ|AU-Mt`>0$ZJZ!YBGz4CRYHhved;vy&j<8u%8)k#HV_ ztXg+3lYFN>SP&>WR)tm3#E0RoLMQubBW3)6hZr2_r|b-2xAj z4cb#bWKGxo`YEBi2aP7nTrGbuZ~vHIk+aUkg%;)BiSaWrW#65&un-SPwpB22on=@L zuX_J|rYOY0jSVcGhZ|L&nFAj=h(D<_Z+bpB^N4%WZ@pUE`NlDCvl1fMGpLb-oIAti zcI_}%CRi4^28UD zf^mKHeZ@n!tT#HwQy)V7acZUR@Q1$j~IP>`rBUwc+zP&B;AO!$0P6pY~{CR zdvLQAaDpvXNbkV zL1+jViJ?rz4F!iXZ!nb*#|8ZKVKCd4aq3WJ1OMx1tzc+}!iX=g@$^CP!^v6TdQJ;$n=wJZ^BL4sMFr<{%ek85N$GRq>TXylA31)tG$+eI#Q~Lqcdh!J{ z9S(>sd1;J7%5;&_Z3Q#wPl)-(2Lj4DPl$*%5%c{KF&EP|2Rn#TQWpBbI!%#uIwYIn%BB5H4X>Amn3awVPRh)l_A zH?xBxF_@mx6Zeq`*f=neW(k*q05h}>4e0hkaA%ZI5EF$>C%?3@`N+#*eTkPJvr&2N zhXKT4=lgJ}i?PaN7!zt}-?t4?i+H_4S8|NnJ@HRTDi#EBr$xzoj}1qfit%BxJC-x0 z<`Adg{u73+TUH3Sa`=fLjl>(=4J8a#CcNU+BA+1Ku>iZc zZMeN&V4atFGj21xL$4RXl-GtO*1L{#Z=3&XMF-!)FW@Ze+*mRbR+I-TV}ODkzbb_J z;AE59$L4?m6Mk&A`K?v@%`+ZJ+i4zw6o(&ENt(diPrZ9ZSG(I$n2;rsWc?w47sb9( zn)2E=#;_SIdML6sOl&0O!cSXFIIsQ7{@mCf1!FAIV-4kkTUbBAMx4EvT{jg*45zY61!@(KLriV% z5a{8*F|i|50Y`WS5ZjvVz@N)pWKoG6!^4NM32?w<;OOBpo3E@x7C;E9 zq}m<_#5-@x2<=D>OWj8wC-qgP?hT4fd5j?{sJ2vBOgrDmz-!ZnVWD=~MtDJ8wb`8_ zeDi`P`P=BJp~Io=0g0=3Wh};yoZYQAGp#6OrXqCpDUJ-cAQ*(Lt$0XBP6rXuw{=TLCTuh3 zt=U*V*Gv(U!-L_DR8|rffS}(BXxfU@w5lR4a0|fiNm6l%I-Ch~<#!)OHpw0(dIEi= zMLmSPO0PIHjlG;`Y)n{$gM`Y)$j{MxZ%K0^VnKd6E^h5!r?b6AcKTbLPkF3mn9`iZ1CMo!@om$VpY48d~n*Er5p+n@iPp~X5|8z1*tGprx zV&IlZuFgG*inv&K6{E)P7RKX|#`G6%I?ha##_f)2eEIiyOh)y@hmy#)V&jL3?D)R2 z{C$Yfelzp8mxnwSk$vTnM0VUk6pAEumxcC6)rg}>NPS^N0x$F7S)9Y zD*64A`GqE0d$QCI=-VQi^AB{yQvb@m?6mMm?QC=$+7P@FBj(EyRL1)s8;ZZ8rh+)Y z!9dq&-617Qy%Qe+fP3=7!-MbreZaS~H44C0;DiP}2EbE}h_uqc&ll=*D(F}{@y`dw zv9g64{ZgMko;?(aW`sohLEyvv@uRZsPa8Y57tElv>AepAQsfOqc;REy(eMHWoYkv$ z8rLk!DybNp$d5=dX&&((!_weQ7ydtt;h3pz{`esF6+$e{7{fGqZ8b0&`_Z>Cfm)Qy zYoV7voz`|3ad7Ix(gC<sy+5f#IXoNtk&aP00I?f_j;QRFPG=;yiv^EM zXIbK>>A9cqoO8AEl%>rp-s`B8*H*&0uM$t&^Vm=6*hw^Rwdoi!>F7tQ&qhAlo$OOP zXNXLldvJqricmRD=QX#V5RLq1-%JGQ0)0zaM#tBh6r~}iu<&x$yb^XBk`zME#gT7U zylVyx7-w{CbWWx-VVA+~=B?g_J`jJwNo3)otzqxIXi+F|A6>pFEy5zgG^{=VRm+*V zv&~s_JcB^*4me=}+1oU)+iK(3(hn(}!FWgBxZK?|4=~ZCkeIE6j2pu~%e3D@RMmG8 zrtLgfch2VDh8m}YMF*Kw&Aw3n*1L2Mh<(G0r1JO!#}H>#bj)%PsEZMlhyckfQ=NK& zw(&r~s&UzVW__d6>Lc%_mJXMxbjU0yKeW4xz4m>W_{) z#LA>x{=4?t_ZK&;8xbhL6=?k~Y3XohskiZxAQ@2PA&ijoNHWx8Ra!q?)yZx?B&72h zPu}x8TnB4KdIvK7)w@&;su+P>w5>T0Rkb$MouH~NNI*qd#aS0~T*p4wxF;XVf zr-mzd$t6>_BCaZ@2MbJ08<}xW&d%UUhPHokNjah7VCQ|KCF;z@jrs=f^n3S*cTeVaF-mu^<_?DvY)kyvbFfU<%kx9- zlKRw`7FFcEb=psxcF)bBnHMBejlXzqUh^}MV_OcZV<3Nd16#i_G?^f%-4~+ zW=GTa@dwFP=Cah*44pnDtJs2EZ4B{DOVR+j{30>=+`9etobq~5j-!)quQ>LV>>>w_ z>|q#a*7SF_HeyOKv0A)=7NNgjIl=3@R>@ds+vGotR$|}GA_{Ns^ojQyEvUhIjNZjW zCr4RzTuan5vQw+04l4d~=HsO0O?a!&487RF5K*6m1+ZnSiaH zQDm9k9eTg{ycRRtRzdU8Qr&hBXem#6D_oI{l9_UgjFAh$unXNhvpY8UdWoDf-#-gd zYpA?-ARcbnPib3~dqK40_)978Q(s5K4A!Y#x;iNuA-SXF`td8hlqh-}OcdNI^5Z+y zy3mvtl$-A0chT~a3m{%x18dmcXsL&laULh#bwQ&|dX_6Uwf7?>df&eGYQSVJqe*Gd zV>Fjq^@dk{Tp!c?a&{r~ouLnoc(Qf=Ghh^W2EN4ILs=Dyn@DGWyT30Nz*+t!K%N9O zfIqyiibCO>q{>!%wm@m!uY7YWP#zF1DQ?(x@p9%wnX*R1MpBH>+fs^o#}hjs7XF1B zoq@QjSXcn4;K37cFy+%Nh7)w~(;{)-b6*Xru$|RfT=vIgxQEafYo83FERP~e2O-Rn zza*nCsD2<{$h+)W4tyb|0)F^CBRWoVU)_y@6>PRMHe~h?>3@x=vlIz7piPJC7rz}# z9!w25WZlsr&}Q5us9m~}MNU^{Hc^c;nP%<5BPkbz6%Q89Zft5I?-@g>fIP0g$s*mK z_b5M_>I(Cj;BPZe-f_n?)l@j^r=ow@WvU>j1A_^Em&hL_a>L)qkRS^t^Q)gegkLdL zA+Qg~tXg7LzKtrU@*K<(v#cziTHCk*iNzrXdy8DfnAj<9{Bt`bpQfO&c!IHWpY-W= zzjc2rx0NW$OApCX+uPD{?ll)HNH31_#^otHO)jnd1iCr=;()yNgXoXyVL%8qb zZ7Drc8+dfMyWJU#Rb5PHQEwd>wNCFm`%K;HgbFujfZ(7}Q7gso@@%%Su1XV}%vQnf zgUsM;mbR#!joWj@T!lrHXD6Z@D!t%m)%hdr=hCB6G7{3{^&h_)iW(FP2#(-X8R4i% z(xvV@&!^9Xn#zsd5a+>ewW#vQ%&nbW%52x~De(Fq#o(Ifdk@Z@T}8K}0oK;-?wuDG z7A~N3>Nfb;wmSQz%&ARk?rl=aQM2&Lk+@2xt2F5${AJHIN5B|4ut4S7^=PZ%6X39212w4E-m$ZM zrL(@*SswdRc7rq2Y)aRr-o;!2z+1hUROy1I8Ex>m3jh+%IqWa5ebtXU9jCRzrOpPt zVBXty2_DlJjx=8(+fp$TAr!`7r8&$~S*YDH%K-1tJe z>R85h^4hN-3Ok`}svGcH-g%q~bPWs}JW~5N0^vx@`MSP4qw-;0ICynu^H!%{t4;p4 z;=G&r5WfK(GztKEg`L)s_8rUd4E6KcM+e$PGi<{(KO!*YO5WNJ{<_g58D~8Pr>sej zWE2=|chov9=ikV9(A~`VPcD&(f`{J|X5)zmAUBEzaB4H`xMWO-p{T5btDD+a_Vw)cF+`^>Ef5(i(p(uZ4%Ait=uFZZH z&)C9mB=k}h&@4!^z2-wXza#&`;Nl#>GyjQ~`JIhIen(k;1JN|x@YkQqf4*AqJLetp zQFXVdA?InqhyR4v!-OC8ARn^;jh!;@bT@`0Qs9Ic-fOqI?a3D{7=BBZ0=@b7S7fCF zKpr<1Chs%X`?6;^hK12d{n*2r^}d2pi7}RDwOivV6D&z#x#+4?aoOH_i!h4iyr5Hp z*H|3aPlhE$H8Hv%Y~fw5iY-I|aaz1TZ^4-;&nHYQ6We!UdrK~fk;%))eyj7x_#)KK zAtFMHGRRop*Uq4*H7Is_rMu-x0Zp&eXzLDy;*x_x=fFOu9T1^PbCrrkYx?R&MR?kP z>k9Vj?%?mUa3tyO2w#r(ERO^!W@~S-ZbOhQ#pm<{yB(!_bVV6dWKZWGU7^lhCtfL> zI4xBd7gu9bwVF5v@o&An)8R5>-2eb{noqroxb0&>X%hDH;PtrkHx;y>Ardz8ZN0z> zJSd4enWr|F2SU^1@043!CKrbxIs&E(ioQ8&N4wGEC@SbiG!4wj5Vd3h1O$PTa@rfX zrsbs4)Ei|DTnE;Sn*#va@*di^-Wlh&C32luG1TpmI8)RJE6>kJ0q}B;dhLHuUGnTo zr_Y_+!p9AW_t^WA`Tm5&j+$M9ZJJEzGH3WSA%J8)f+S$9NZu!b6R)!Bi8FR?-}b0v zBqhgI^A-n?O2tsCM0@+-9CRU5PbmhvawE6Q%Gj`b(cl}e?>MgOA2*dR42nh26Nqr+ zR{uJ#5~od!_3MRCS*?HZE{m*s*k1@6%`lNmt1ZL>`(Xpz0qw={LB{zs3OmRhJh+R7 zdr!}8l8vb*c}A3_OU?@rzXOO1fcWLl0f7S0_drJ@s4_N2Jy747r5aJe2%gvI2k%>` zHk1!SlwN;^)3UECqnvkhGD_QfymF^j`#1liE;XB;A5a!VOWV7f+^4!e1G`y6$=kX! zsN!hdFZ!I`d49e&{f9-0!D$gn=^p@=oEDEQbrU3bW;$35EMcRP`}g{(*~aNN$;Nnc zZ3U&vcw6J;KnCFZTC$4BWZ|aukybOWg;p~qKk)?>I3LpGQ#&`gA%+4LocW(|bD0mS z&0_*}fqJnV65bz$VO1ZsNT`M4A}+=bzA2%*=&<5dE@5@-*x4w$Jce`{bqCk6=~6a;d;~LyLDZuJ?3^M3FE#zxt+<` z1GO`GGc$O3$iYZfCher2Jd&SLk~LlNDlU}|Y$X1UK%+E5QLP}|>~Qeuh$*8|{Q)&; ze-!Znez-2{f0j2veYLew6In(fOKBC5K>4QwhQ{wtYy?gsUfG8 z8%s#VIe15ub}1Q58LXQz8Em1=`nF2FKGJfU@A1p#gkO|y*|tRCLGv!pR62#E%%QPX zAqfY}cRG)kV>#^nu##`~rx-R;=0b=#F4-t+LgSE&V|W7)t1*ZuTS`b#Nzq0T^q5t| z3MtQJtnkyXV34DNA8P(jJRjE?g;UsmxJ!QTvA<>Pc$<;fnyiAm0flU_c?xVAvp#U6 zkkO7F`ybr@B#QpYHM=|yZ{WhhnX(?C!(GM*2*!XCl1DkMEVU%ki>R;>JRV0sp_y!?-B3E)8 zX`Lf?;+o4>v6)8m)joc)YvM*tY?lqSoMXV->e3H)#?&!!QTQ-JitSHB6y;!zIYvv& z-VTjnnluZJ3(rY-QbZ41IZxrINjk*GrslIBT7_<+W{YGAN>SYl*=LYbs?z<#Ly%+S z0)|M{9?D+$?wp;%-q`X22{2lL9mI%Oh$z~8L6x+6D#hwzSTwob1J6i98Z*Y*r3v8w zH@{EHchK2Ns~w)?R`bRF9g^L)hJ%G)AC%8Tsje8@?+=H&<)Oc0s8xSf1C#(iUXo?} zM!ni9fGHC8SBpp<(sQJm@dV5BrjV1&pEYB4lc9}0ypyfC>})u zmo>X2x{xwttWDHIkOQYM!oJEmCY|)5Sv{Dms!vNBjb|PUA=2jx)PhDxjVOM_w4)eS z#X%W%j6dmS=xJt3sI|EaVXs@T(m9NOyKN~&_Y~ADLLp(G6 zZ)8E;sJ2A0LryNLlv!p@D!0Atjx6_BfE;v%c5iJf3)?`A@g_a?LI@I<9lcAw$<=J} zcAlvFb_ZK;{ME4G*Nroo!YrJzm>rJNs2<%UNG33)7N6-w0|Mg4DB&SO4KhSoqxwb1 zM-WE1{_k59z(PnCsNmVn*|%x()*Y&79j?C79S-Tqids3q&!Qw#bv;@R*W#Kdj@gIw zH2%NF#^iSToEfE^@AyXR!!`BU9NTh=CC3QBc?H^_Fa%9rhuu9kN1e#?{1@v`du z#dB@ufW@uae&WILwRvsvQRJ{Yo%d3x53D)`dOD;e4x>_e=t~DItbQ0Ae|^0(2V(A3 zMg19sU+}mc5`JM+g5T;x>Z%RZOO;m%j~U=`Zuf|-$0 zrauv5Z1$;a(Uae$3`8{`u*H&{aG=_bFYTi{M3YPu=>%3Ws+;lEm=Ir+3$1+8_O~BZ zlon`>_;ivbrm$$V#)|ZK(ol5tL7@z%6F)x6d|%ak@jVd@3v)I8vR4U2;zp#8K90(R z17pOa_-xL7ISXY8TDITw=^I9Jo2mkHi;0wH75-1SXle7LumH*`j_m+VDb5S}1yYV9c&A3n>#INg6kT z-t}ixy*aM{T≤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�)ubwZILBf6ev~)Vs`5cX6p4mZoE6R0~4iv4eUMq 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 unreachable!(), + TypePath::Type(ref ty) => { + let ty = ty.ty(); + + let type_def = ty.type_def(); + + let c = match type_def { + scale_info::TypeDef::Variant(var) => var + .variants() + .iter() + .map(|var| { + use heck::CamelCase; + let name = + format_ident!("{}", var.name().to_string().to_camel_case()); + let args = var.fields().iter().filter_map(|field| { + field.name().map(|name| { + let name = format_ident!("{}", name); + let ty = + type_gen.resolve_type_path(field.ty().id(), &[]); + quote! { #name: #ty } + }) + }); + + quote! { + #[derive(Debug, ::codec::Encode, ::codec::Decode)] + pub struct #name { + #( #args ),* + } + } + }) + .collect::>(), + _ => unreachable!(), + }; + calls.extend(c); } - }) - .collect::>(); + } + } + let event = if let Some(ref event) = pallet.event { let event_type = type_gen.resolve_type_path(event.ty.id(), &[]); quote! { diff --git a/core/src/generate_types.rs b/core/src/generate_types.rs index 4b66e74..5863933 100644 --- a/core/src/generate_types.rs +++ b/core/src/generate_types.rs @@ -37,15 +37,15 @@ impl<'a> TypeGenerator<'a> { pub fn generate_types_mod(&'a self) -> Module<'a> { let mut root_mod = Module::new(self.root_mod_ident.clone(), self.root_mod_ident.clone()); - for (id, ty) in self.type_registry.enumerate() { - if ty.path().namespace().is_empty() { + for (id, ty) in self.type_registry.types().iter().enumerate() { + if ty.ty().path().namespace().is_empty() { // prelude types e.g. Option/Result have no namespace, so we don't generate them continue; } self.insert_type( - ty.clone(), - id, - ty.path().namespace().to_vec(), + ty.ty().clone(), + id as u32, + ty.ty().path().namespace().to_vec(), &self.root_mod_ident, &mut root_mod, ) @@ -99,7 +99,12 @@ impl<'a> TypeGenerator<'a> { let mut ty = resolve_type(id); if ty.path().ident() == Some("Cow".to_string()) { - ty = resolve_type(ty.type_params()[0].id()) + ty = resolve_type( + ty.type_params()[0] + .ty() + .expect("type parameters to Cow are not expected to be skipped; qed") + .id(), + ) } let params_type_ids = match ty.type_def() { @@ -107,11 +112,12 @@ impl<'a> TypeGenerator<'a> { TypeDef::Sequence(seq) => vec![seq.type_param().id()], TypeDef::Tuple(tuple) => tuple.fields().iter().map(|f| f.id()).collect(), TypeDef::Compact(compact) => vec![compact.type_param().id()], - TypeDef::Phantom(_phantom) => { - vec![/* TODO [now]: this is not yet in the `aj-substrate` branch phantom.type_param().id() */] - } TypeDef::BitSequence(seq) => vec![seq.bit_order_type().id(), seq.bit_store_type().id()], - _ => ty.type_params().iter().map(|f| f.id()).collect(), + _ => ty + .type_params() + .iter() + .filter_map(|f| f.ty().map(|f| f.id())) + .collect(), }; let params = params_type_ids @@ -194,12 +200,15 @@ impl<'a> quote::ToTokens for ModuleType<'a> { .type_params() .iter() .enumerate() - .map(|(i, tp)| { - let tp_name = format_ident!("_{}", i); - TypeParameter { - concrete_type_id: tp.id(), - name: tp_name, + .filter_map(|(i, tp)| match tp.ty() { + Some(ty) => { + let tp_name = format_ident!("_{}", i); + Some(TypeParameter { + concrete_type_id: ty.id(), + name: tp_name, + }) } + None => None, }) .collect::>(); @@ -408,7 +417,7 @@ impl quote::ToTokens for TypePath { } impl TypePath { - fn to_syn_type(&self) -> syn::Type { + pub(crate) fn to_syn_type(&self) -> syn::Type { match self { TypePath::Parameter(ty_param) => syn::Type::Path(syn::parse_quote! { #ty_param }), TypePath::Type(ty) => ty.to_syn_type(), @@ -442,6 +451,10 @@ pub struct TypePathType { } impl TypePathType { + pub(crate) fn ty(&self) -> &Type { + &self.ty + } + fn to_syn_type(&self) -> syn::Type { let params = &self.params; match self.ty.type_def() { @@ -503,17 +516,6 @@ impl TypePathType { let path = syn::parse_quote! { #ident }; syn::Type::Path(path) } - TypeDef::Phantom(_) => { - /* TODO: [now]: As soon as branch `aj-substrate` is updated to contain new code for - * TypeDefPhantom this goes back, use `()` for the time being. - let type_param = params - .iter() - .next() - .expect("a phantom type should have a single type parameter"); - */ - let type_path = syn::parse_quote! { core::marker::PhantomData<()> }; - syn::Type::Path(type_path) - } TypeDef::Compact(_) => { // todo: change the return type of this method to include info that it is compact // and should be annotated with #[compact] for fields diff --git a/examples/codegen/src/substrate_node_runtime.rs b/examples/codegen/src/substrate_node_runtime.rs index cc04c48..632267f 100644 --- a/examples/codegen/src/substrate_node_runtime.rs +++ b/examples/codegen/src/substrate_node_runtime.rs @@ -62,6 +62,10 @@ pub mod node_runtime { Lottery(lottery::Event), #[codec(index = 37)] Gilt(gilt::Event), + #[codec(index = 38)] + Uniques(uniques::Event), + #[codec(index = 39)] + TransactionStorage(transaction_storage::Event), } pub mod system { use super::__runtime_types; @@ -110,8 +114,7 @@ pub mod node_runtime { remark: Vec, } } - pub type Event = - __runtime_types::frame_system::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::frame_system::pallet::Event; } pub mod utility { use super::__runtime_types; @@ -207,8 +210,7 @@ pub mod node_runtime { index: u32, } } - pub type Event = - __runtime_types::pallet_indices::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_indices::pallet::Event; } pub mod balances { use super::__runtime_types; @@ -251,11 +253,16 @@ pub mod node_runtime { >, value: u128, } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct TransferAll { + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + keep_alive: bool, + } } - pub type Event = __runtime_types::pallet_balances::pallet::Event< - __runtime_types::node_runtime::Runtime, - (), - >; + pub type Event = __runtime_types::pallet_balances::pallet::Event; } pub mod transaction_payment { use super::__runtime_types; @@ -272,10 +279,28 @@ pub mod node_runtime { witness: __runtime_types::pallet_election_provider_multi_phase::SolutionOrSnapshotSize, } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetMinimumUntrustedScore { + maybe_next_score: Option<[u128; 3usize]>, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetEmergencyElectionResult { + supports: Vec<( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_npos_elections::Support< + __runtime_types::sp_core::crypto::AccountId32, + >, + )>, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Submit { + solution: __runtime_types::pallet_election_provider_multi_phase::RawSolution< + __runtime_types::node_runtime::NposCompactSolution16, + >, + num_signed_submissions: u32, + } } - pub type Event = __runtime_types::pallet_election_provider_multi_phase::pallet::Event< - __runtime_types::node_runtime::Runtime, - >; + pub type Event = __runtime_types::pallet_election_provider_multi_phase::pallet::Event; } pub mod staking { use super::__runtime_types; @@ -392,11 +417,20 @@ pub mod node_runtime { >, >, } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetStakingLimits { + min_nominator_bond: u128, + min_validator_bond: u128, + max_nominator_count: Option, + max_validator_count: Option, + threshold: Option<__runtime_types::sp_arithmetic::per_things::Percent>, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ChillOther { + controller: __runtime_types::sp_core::crypto::AccountId32, + } } - pub type Event = __runtime_types::pallet_staking::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - >; + pub type Event = __runtime_types::pallet_staking::pallet::pallet::Event; } pub mod session { use super::__runtime_types; @@ -524,12 +558,7 @@ pub mod node_runtime { prop_index: u32, } } - pub type Event = __runtime_types::pallet_democracy::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::primitive_types::H256, - u32, - >; + pub type Event = __runtime_types::pallet_democracy::pallet::Event; } pub mod council { use super::__runtime_types; @@ -654,9 +683,7 @@ pub mod node_runtime { _num_defunct: u32, } } - pub type Event = __runtime_types::pallet_elections_phragmen::pallet::Event< - __runtime_types::node_runtime::Runtime, - >; + pub type Event = __runtime_types::pallet_elections_phragmen::pallet::Event; } pub mod technical_membership { use super::__runtime_types; @@ -722,7 +749,7 @@ pub mod node_runtime { best_finalized_block_number: u32, } } - pub type Event = __runtime_types::pallet_grandpa::Event; + pub type Event = __runtime_types::pallet_grandpa::pallet::Event; } pub mod treasury { use super::__runtime_types; @@ -745,23 +772,13 @@ pub mod node_runtime { proposal_id: u32, } } - pub type Event = __runtime_types::pallet_treasury::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_treasury::DefaultInstance, - >; + pub type Event = __runtime_types::pallet_treasury::pallet::Event; } pub mod contracts { use super::__runtime_types; mod calls { use super::__runtime_types; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct UpdateSchedule { - schedule: __runtime_types::pallet_contracts::schedule::Schedule< - __runtime_types::node_runtime::Runtime, - >, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Call { dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, @@ -793,9 +810,7 @@ pub mod node_runtime { aux_sender: Option<__runtime_types::sp_core::crypto::AccountId32>, } } - pub type Event = __runtime_types::pallet_contracts::pallet::Event< - __runtime_types::node_runtime::Runtime, - >; + pub type Event = __runtime_types::pallet_contracts::pallet::Event; } pub mod sudo { use super::__runtime_types; @@ -826,8 +841,7 @@ pub mod node_runtime { call: __runtime_types::node_runtime::Call, } } - pub type Event = - __runtime_types::pallet_sudo::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_sudo::pallet::Event; } pub mod im_online { use super::__runtime_types; @@ -839,23 +853,14 @@ pub mod node_runtime { _signature: __runtime_types::pallet_im_online::sr25519::app_sr25519::Signature, } } - pub type Event = __runtime_types::pallet_im_online::RawEvent< - __runtime_types::pallet_im_online::sr25519::app_sr25519::Public, - ( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_staking::Exposure< - __runtime_types::sp_core::crypto::AccountId32, - u128, - >, - ), - >; + pub type Event = __runtime_types::pallet_im_online::pallet::Event; } pub mod authority_discovery { use super::__runtime_types; } pub mod offences { use super::__runtime_types; - pub type Event = __runtime_types::pallet_offences::Event; + pub type Event = __runtime_types::pallet_offences::pallet::Event; } pub mod historical { use super::__runtime_types; @@ -873,13 +878,13 @@ pub mod node_runtime { } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct SetIdentity { - info: __runtime_types::pallet_identity::IdentityInfo, + info: __runtime_types::pallet_identity::types::IdentityInfo, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct SetSubs { subs: Vec<( __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_identity::Data, + __runtime_types::pallet_identity::types::Data, )>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -906,7 +911,9 @@ pub mod node_runtime { #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct SetFields { index: u32, - fields: __runtime_types::pallet_identity::IdentityFields, + fields: __runtime_types::pallet_identity::types::BitFlags< + __runtime_types::pallet_identity::types::IdentityField, + >, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct ProvideJudgement { @@ -915,7 +922,7 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, u32, >, - judgement: __runtime_types::pallet_identity::Judgement, + judgement: __runtime_types::pallet_identity::types::Judgement, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct KillIdentity { @@ -930,7 +937,7 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, u32, >, - data: __runtime_types::pallet_identity::Data, + data: __runtime_types::pallet_identity::types::Data, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RenameSub { @@ -938,7 +945,7 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, u32, >, - data: __runtime_types::pallet_identity::Data, + data: __runtime_types::pallet_identity::types::Data, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RemoveSub { @@ -950,8 +957,7 @@ pub mod node_runtime { #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct QuitSub {} } - pub type Event = - __runtime_types::pallet_identity::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_identity::pallet::Event; } pub mod society { use super::__runtime_types; @@ -1062,9 +1068,7 @@ pub mod node_runtime { account: __runtime_types::sp_core::crypto::AccountId32, } } - pub type Event = __runtime_types::pallet_recovery::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - >; + pub type Event = __runtime_types::pallet_recovery::pallet::Event; } pub mod vesting { use super::__runtime_types; @@ -1100,8 +1104,7 @@ pub mod node_runtime { schedule: __runtime_types::pallet_vesting::VestingInfo, } } - pub type Event = - __runtime_types::pallet_vesting::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_vesting::pallet::Event; } pub mod scheduler { use super::__runtime_types; @@ -1147,7 +1150,7 @@ pub mod node_runtime { call: __runtime_types::node_runtime::Call, } } - pub type Event = __runtime_types::pallet_scheduler::RawEvent; + pub type Event = __runtime_types::pallet_scheduler::pallet::Event; } pub mod proxy { use super::__runtime_types; @@ -1210,8 +1213,7 @@ pub mod node_runtime { call: __runtime_types::node_runtime::Call, } } - pub type Event = - __runtime_types::pallet_proxy::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_proxy::pallet::Event; } pub mod multisig { use super::__runtime_types; @@ -1247,11 +1249,7 @@ pub mod node_runtime { call_hash: [u8; 32usize], } } - pub type Event = __runtime_types::pallet_multisig::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - u32, - [u8; 32usize], - >; + pub type Event = __runtime_types::pallet_multisig::pallet::Event; } pub mod bounties { use super::__runtime_types; @@ -1563,10 +1561,7 @@ pub mod node_runtime { amount: u64, } } - pub type Event = __runtime_types::pallet_assets::pallet::Event< - __runtime_types::node_runtime::Runtime, - (), - >; + pub type Event = __runtime_types::pallet_assets::pallet::Event; } pub mod mmr { use super::__runtime_types; @@ -1593,10 +1588,7 @@ pub mod node_runtime { #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct StopRepeat {} } - pub type Event = __runtime_types::pallet_lottery::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - u128, - >; + pub type Event = __runtime_types::pallet_lottery::pallet::Event; } pub mod gilt { use super::__runtime_types; @@ -1621,15 +1613,214 @@ pub mod node_runtime { index: u32, } } - pub type Event = - __runtime_types::pallet_gilt::pallet::Event<__runtime_types::node_runtime::Runtime>; + pub type Event = __runtime_types::pallet_gilt::pallet::Event; + } + pub mod uniques { + use super::__runtime_types; + mod calls { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Create { + class: u32, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ForceCreate { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + free_holding: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Destroy { + class: u32, + witness: __runtime_types::pallet_uniques::types::DestroyWitness, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Mint { + class: u32, + instance: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Burn { + class: u32, + instance: u32, + check_owner: Option< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Transfer { + class: u32, + instance: u32, + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Redeposit { + class: u32, + instances: Vec, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Freeze { + class: u32, + instance: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Thaw { + class: u32, + instance: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct FreezeClass { + class: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ThawClass { + class: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct TransferOwnership { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetTeam { + class: u32, + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ApproveTransfer { + class: u32, + instance: u32, + delegate: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct CancelApproval { + class: u32, + instance: u32, + maybe_check_delegate: Option< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ForceAssetStatus { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + free_holding: bool, + is_frozen: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetAttribute { + class: u32, + maybe_instance: Option, + key: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + value: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ClearAttribute { + class: u32, + maybe_instance: Option, + key: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetMetadata { + class: u32, + instance: u32, + data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + is_frozen: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ClearMetadata { + class: u32, + instance: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SetClassMetadata { + class: u32, + data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + is_frozen: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ClearClassMetadata { + class: u32, + } + } + pub type Event = __runtime_types::pallet_uniques::pallet::Event; + } + pub mod transaction_storage { + use super::__runtime_types; + mod calls { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Store { + data: Vec, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Renew { + block: u32, + index: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct CheckProof { + proof: __runtime_types::sp_transaction_storage_proof::TransactionStorageProof, + } + } + pub type Event = __runtime_types::pallet_transaction_storage::pallet::Event; } pub mod __runtime_types { use super::__runtime_types; - use std::collections::BTreeMap; pub mod finality_grandpa { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Equivocation<_0, _1, _2> { pub round_number: u64, @@ -1650,26 +1841,30 @@ pub mod node_runtime { } pub mod frame_support { use super::__runtime_types; - use std::collections::BTreeMap; pub mod storage { use super::__runtime_types; - use std::collections::BTreeMap; + pub mod bounded_btree_map { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct BoundedBTreeMap<_0, _1>(pub std::collections::BTreeMap<_0, _1>); + } pub mod bounded_vec { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct BoundedVec<_0, _1>(pub Vec<_0>, pub core::marker::PhantomData<_1>); + pub struct BoundedVec<_0>(pub Vec<_0>); + } + pub mod weak_bounded_vec { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct WeakBoundedVec<_0>(pub Vec<_0>); } } pub mod traits { use super::__runtime_types; - use std::collections::BTreeMap; pub mod tokens { use super::__runtime_types; - use std::collections::BTreeMap; pub mod misc { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum BalanceStatus { Free, @@ -1680,7 +1875,6 @@ pub mod node_runtime { } pub mod weights { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum DispatchClass { Normal, @@ -1718,59 +1912,45 @@ pub mod node_runtime { } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Never {} - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct PalletId(pub [u8; 8usize]); } pub mod frame_system { use super::__runtime_types; - use std::collections::BTreeMap; pub mod extensions { use super::__runtime_types; - use std::collections::BTreeMap; pub mod check_genesis { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckGenesis<_0>(pub core::marker::PhantomData<_0>); + pub struct CheckGenesis {} } pub mod check_mortality { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckMortality<_0>( - pub __runtime_types::sp_runtime::generic::era::Era, - pub core::marker::PhantomData<_0>, - ); + pub struct CheckMortality(pub __runtime_types::sp_runtime::generic::era::Era); } pub mod check_nonce { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckNonce<_0>(pub u32, pub core::marker::PhantomData<(_0,)>); + pub struct CheckNonce(pub u32); } pub mod check_spec_version { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckSpecVersion<_0>(pub core::marker::PhantomData<_0>); + pub struct CheckSpecVersion {} } pub mod check_tx_version { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckTxVersion<_0>(pub core::marker::PhantomData<_0>); + pub struct CheckTxVersion {} } pub mod check_weight { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CheckWeight<_0>(pub core::marker::PhantomData<_0>); + pub struct CheckWeight {} } } pub mod limits { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct BlockLength { pub max: __runtime_types::frame_support::weights::PerDispatchClass, @@ -1793,29 +1973,44 @@ pub mod node_runtime { } pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - fill_block(__runtime_types::sp_arithmetic::per_things::Perbill), - remark(Vec), - set_heap_pages(u64), - set_code(Vec), - set_code_without_checks(Vec), - set_changes_trie_config( - Option<__runtime_types::sp_core::changes_trie::ChangesTrieConfiguration>, - ), - set_storage(Vec<(Vec, Vec)>), - kill_storage(Vec>), - kill_prefix(Vec, u32), - remark_with_event(Vec), - __Ignore(core::marker::PhantomData<(_0,)>), + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + fill_block { + _ratio: __runtime_types::sp_arithmetic::per_things::Perbill, + }, + remark { + _remark: Vec, + }, + set_heap_pages { + pages: u64, + }, + set_code { + code: Vec, + }, + set_code_without_checks { + code: Vec, + }, + set_changes_trie_config { + changes_trie_config: Option< + __runtime_types::sp_core::changes_trie::ChangesTrieConfiguration, + >, + }, + set_storage { + items: Vec<(Vec, Vec)>, + }, + kill_storage { + keys: Vec>, + }, + kill_prefix { + prefix: Vec, + _subkeys: u32, + }, + remark_with_event { + remark: Vec, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InvalidSpecName, SpecVersionNeedsToIncrease, FailedToExtractRuntimeVersion, @@ -1823,7 +2018,7 @@ pub mod node_runtime { NonZeroRefCount, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { ExtrinsicSuccess(__runtime_types::frame_support::weights::DispatchInfo), ExtrinsicFailed( __runtime_types::sp_runtime::DispatchError, @@ -1836,7 +2031,6 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, __runtime_types::primitive_types::H256, ), - __Ignore(core::marker::PhantomData<(_0,)>), } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -1873,406 +2067,191 @@ pub mod node_runtime { } pub mod node_runtime { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Call { - System( - __runtime_types::frame_system::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Utility( - __runtime_types::pallet_utility::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Babe( - __runtime_types::pallet_babe::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Timestamp( - __runtime_types::pallet_timestamp::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Authorship( - __runtime_types::pallet_authorship::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Indices( - __runtime_types::pallet_indices::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Balances( - __runtime_types::pallet_balances::pallet::Call< - __runtime_types::node_runtime::Runtime, - (), - >, - ), + System(__runtime_types::frame_system::pallet::Call), + Utility(__runtime_types::pallet_utility::pallet::Call), + Babe(__runtime_types::pallet_babe::pallet::Call), + Timestamp(__runtime_types::pallet_timestamp::pallet::Call), + Authorship(__runtime_types::pallet_authorship::pallet::Call), + Indices(__runtime_types::pallet_indices::pallet::Call), + Balances(__runtime_types::pallet_balances::pallet::Call), ElectionProviderMultiPhase( - __runtime_types::pallet_election_provider_multi_phase::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Staking( - __runtime_types::pallet_staking::Call<__runtime_types::node_runtime::Runtime>, + __runtime_types::pallet_election_provider_multi_phase::pallet::Call, ), - Session( - __runtime_types::pallet_session::Call<__runtime_types::node_runtime::Runtime>, - ), - Democracy( - __runtime_types::pallet_democracy::Call<__runtime_types::node_runtime::Runtime>, + Staking(__runtime_types::pallet_staking::pallet::pallet::Call), + Session(__runtime_types::pallet_session::Call), + Democracy(__runtime_types::pallet_democracy::pallet::Call), + Council(__runtime_types::pallet_collective::Call), + TechnicalCommittee(__runtime_types::pallet_collective::Call), + Elections(__runtime_types::pallet_elections_phragmen::pallet::Call), + TechnicalMembership(__runtime_types::pallet_membership::Call), + Grandpa(__runtime_types::pallet_grandpa::pallet::Call), + Treasury(__runtime_types::pallet_treasury::pallet::Call), + Contracts(__runtime_types::pallet_contracts::pallet::Call), + Sudo(__runtime_types::pallet_sudo::pallet::Call), + ImOnline(__runtime_types::pallet_im_online::pallet::Call), + Identity(__runtime_types::pallet_identity::pallet::Call), + Society(__runtime_types::pallet_society::Call), + Recovery(__runtime_types::pallet_recovery::pallet::Call), + Vesting(__runtime_types::pallet_vesting::pallet::Call), + Scheduler(__runtime_types::pallet_scheduler::pallet::Call), + Proxy(__runtime_types::pallet_proxy::pallet::Call), + Multisig(__runtime_types::pallet_multisig::pallet::Call), + Bounties(__runtime_types::pallet_bounties::Call), + Tips(__runtime_types::pallet_tips::Call), + Assets(__runtime_types::pallet_assets::pallet::Call), + Lottery(__runtime_types::pallet_lottery::pallet::Call), + Gilt(__runtime_types::pallet_gilt::pallet::Call), + Uniques(__runtime_types::pallet_uniques::pallet::Call), + TransactionStorage(__runtime_types::pallet_transaction_storage::pallet::Call), + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + System(__runtime_types::frame_system::pallet::Event), + Utility(__runtime_types::pallet_utility::pallet::Event), + Indices(__runtime_types::pallet_indices::pallet::Event), + Balances(__runtime_types::pallet_balances::pallet::Event), + ElectionProviderMultiPhase( + __runtime_types::pallet_election_provider_multi_phase::pallet::Event, ), + Staking(__runtime_types::pallet_staking::pallet::pallet::Event), + Session(__runtime_types::pallet_session::Event), + Democracy(__runtime_types::pallet_democracy::pallet::Event), Council( - __runtime_types::pallet_collective::Call< - __runtime_types::node_runtime::Runtime, + __runtime_types::pallet_collective::RawEvent< + __runtime_types::primitive_types::H256, + __runtime_types::sp_core::crypto::AccountId32, __runtime_types::pallet_collective::Instance1, >, ), TechnicalCommittee( - __runtime_types::pallet_collective::Call< - __runtime_types::node_runtime::Runtime, + __runtime_types::pallet_collective::RawEvent< + __runtime_types::primitive_types::H256, + __runtime_types::sp_core::crypto::AccountId32, __runtime_types::pallet_collective::Instance2, >, ), - Elections( - __runtime_types::pallet_elections_phragmen::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), + Elections(__runtime_types::pallet_elections_phragmen::pallet::Event), TechnicalMembership( - __runtime_types::pallet_membership::Call< - __runtime_types::node_runtime::Runtime, + __runtime_types::pallet_membership::RawEvent< + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::node_runtime::Event, __runtime_types::pallet_membership::Instance1, >, ), - Grandpa( - __runtime_types::pallet_grandpa::Call<__runtime_types::node_runtime::Runtime>, - ), - Treasury( - __runtime_types::pallet_treasury::Call< - __runtime_types::node_runtime::Runtime, - __runtime_types::pallet_treasury::DefaultInstance, - >, - ), - Contracts( - __runtime_types::pallet_contracts::pallet::Call< - __runtime_types::node_runtime::Runtime, + Grandpa(__runtime_types::pallet_grandpa::pallet::Event), + Treasury(__runtime_types::pallet_treasury::pallet::Event), + Contracts(__runtime_types::pallet_contracts::pallet::Event), + Sudo(__runtime_types::pallet_sudo::pallet::Event), + ImOnline(__runtime_types::pallet_im_online::pallet::Event), + Offences(__runtime_types::pallet_offences::pallet::Event), + Identity(__runtime_types::pallet_identity::pallet::Event), + Society( + __runtime_types::pallet_society::RawEvent< + __runtime_types::sp_core::crypto::AccountId32, + u128, + __runtime_types::pallet_society::DefaultInstance, >, ), - Sudo( - __runtime_types::pallet_sudo::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - ImOnline( - __runtime_types::pallet_im_online::Call<__runtime_types::node_runtime::Runtime>, - ), - AuthorityDiscovery( - __runtime_types::pallet_authority_discovery::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Offences( - __runtime_types::pallet_offences::Call<__runtime_types::node_runtime::Runtime>, - ), - RandomnessCollectiveFlip( - __runtime_types::pallet_randomness_collective_flip::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Identity( - __runtime_types::pallet_identity::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Society( - __runtime_types::pallet_society::Call< - __runtime_types::node_runtime::Runtime, - __runtime_types::pallet_society::DefaultInstance, - >, - ), - Recovery( - __runtime_types::pallet_recovery::Call<__runtime_types::node_runtime::Runtime>, - ), - Vesting( - __runtime_types::pallet_vesting::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Scheduler( - __runtime_types::pallet_scheduler::Call<__runtime_types::node_runtime::Runtime>, - ), - Proxy( - __runtime_types::pallet_proxy::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - Multisig( - __runtime_types::pallet_multisig::Call<__runtime_types::node_runtime::Runtime>, - ), + Recovery(__runtime_types::pallet_recovery::pallet::Event), + Vesting(__runtime_types::pallet_vesting::pallet::Event), + Scheduler(__runtime_types::pallet_scheduler::pallet::Event), + Proxy(__runtime_types::pallet_proxy::pallet::Event), + Multisig(__runtime_types::pallet_multisig::pallet::Event), Bounties( - __runtime_types::pallet_bounties::Call<__runtime_types::node_runtime::Runtime>, - ), - Tips(__runtime_types::pallet_tips::Call<__runtime_types::node_runtime::Runtime>), - Assets( - __runtime_types::pallet_assets::pallet::Call< - __runtime_types::node_runtime::Runtime, - (), - >, - ), - Lottery( - __runtime_types::pallet_lottery::Call<__runtime_types::node_runtime::Runtime>, - ), - Gilt( - __runtime_types::pallet_gilt::pallet::Call< - __runtime_types::node_runtime::Runtime, - >, - ), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct CouncilMaxProposals(pub u32); - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event { - frame_system( - __runtime_types::frame_system::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_utility(__runtime_types::pallet_utility::pallet::Event), - pallet_indices( - __runtime_types::pallet_indices::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_balances( - __runtime_types::pallet_balances::pallet::Event< - __runtime_types::node_runtime::Runtime, - (), - >, - ), - pallet_election_provider_multi_phase( - __runtime_types::pallet_election_provider_multi_phase::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_staking( - __runtime_types::pallet_staking::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - >, - ), - pallet_session(__runtime_types::pallet_session::Event), - pallet_democracy( - __runtime_types::pallet_democracy::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::primitive_types::H256, - u32, - >, - ), - pallet_collective_Instance1( - __runtime_types::pallet_collective::RawEvent< - __runtime_types::primitive_types::H256, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_collective::Instance1, - >, - ), - pallet_collective_Instance2( - __runtime_types::pallet_collective::RawEvent< - __runtime_types::primitive_types::H256, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_collective::Instance2, - >, - ), - pallet_elections_phragmen( - __runtime_types::pallet_elections_phragmen::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_membership_Instance1( - __runtime_types::pallet_membership::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::node_runtime::Event, - __runtime_types::pallet_membership::Instance1, - >, - ), - pallet_grandpa(__runtime_types::pallet_grandpa::Event), - pallet_treasury( - __runtime_types::pallet_treasury::RawEvent< - u128, - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_treasury::DefaultInstance, - >, - ), - pallet_contracts( - __runtime_types::pallet_contracts::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_sudo( - __runtime_types::pallet_sudo::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_im_online( - __runtime_types::pallet_im_online::RawEvent< - __runtime_types::pallet_im_online::sr25519::app_sr25519::Public, - ( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_staking::Exposure< - __runtime_types::sp_core::crypto::AccountId32, - u128, - >, - ), - >, - ), - pallet_offences(__runtime_types::pallet_offences::Event), - pallet_identity( - __runtime_types::pallet_identity::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_society( - __runtime_types::pallet_society::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - u128, - __runtime_types::pallet_society::DefaultInstance, - >, - ), - pallet_recovery( - __runtime_types::pallet_recovery::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - >, - ), - pallet_vesting( - __runtime_types::pallet_vesting::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_scheduler(__runtime_types::pallet_scheduler::RawEvent), - pallet_proxy( - __runtime_types::pallet_proxy::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), - pallet_multisig( - __runtime_types::pallet_multisig::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - u32, - [u8; 32usize], - >, - ), - pallet_bounties( __runtime_types::pallet_bounties::RawEvent< u128, __runtime_types::sp_core::crypto::AccountId32, >, ), - pallet_tips( + Tips( __runtime_types::pallet_tips::RawEvent< u128, __runtime_types::sp_core::crypto::AccountId32, __runtime_types::primitive_types::H256, >, ), - pallet_assets( - __runtime_types::pallet_assets::pallet::Event< - __runtime_types::node_runtime::Runtime, - (), - >, - ), - pallet_lottery( - __runtime_types::pallet_lottery::RawEvent< - __runtime_types::sp_core::crypto::AccountId32, - u128, - >, - ), - pallet_gilt( - __runtime_types::pallet_gilt::pallet::Event< - __runtime_types::node_runtime::Runtime, - >, - ), + Assets(__runtime_types::pallet_assets::pallet::Event), + Lottery(__runtime_types::pallet_lottery::pallet::Event), + Gilt(__runtime_types::pallet_gilt::pallet::Event), + Uniques(__runtime_types::pallet_uniques::pallet::Event), + TransactionStorage(__runtime_types::pallet_transaction_storage::pallet::Event), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct MaxApprovals(pub u32); - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct NposCompactSolution16 { - pub votes1: Vec<(u32, u16)>, - pub votes2: Vec<( + votes1: Vec<(u32, u16)>, + votes2: Vec<( u32, (u16, __runtime_types::sp_arithmetic::per_things::PerU16), u16, )>, - pub votes3: Vec<( + votes3: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 2usize], u16, )>, - pub votes4: Vec<( + votes4: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 3usize], u16, )>, - pub votes5: Vec<( + votes5: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 4usize], u16, )>, - pub votes6: Vec<( + votes6: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 5usize], u16, )>, - pub votes7: Vec<( + votes7: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 6usize], u16, )>, - pub votes8: Vec<( + votes8: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 7usize], u16, )>, - pub votes9: Vec<( + votes9: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 8usize], u16, )>, - pub votes10: Vec<( + votes10: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 9usize], u16, )>, - pub votes11: Vec<( + votes11: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 10usize], u16, )>, - pub votes12: Vec<( + votes12: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 11usize], u16, )>, - pub votes13: Vec<( + votes13: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 12usize], u16, )>, - pub votes14: Vec<( + votes14: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 13usize], u16, )>, - pub votes15: Vec<( + votes15: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 14usize], u16, )>, - pub votes16: Vec<( + votes16: Vec<( u32, [(u16, __runtime_types::sp_arithmetic::per_things::PerU16); 15usize], u16, @@ -2285,13 +2264,13 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, >, ), - pallet_collective_Instance1( + Council( __runtime_types::pallet_collective::RawOrigin< __runtime_types::sp_core::crypto::AccountId32, __runtime_types::pallet_collective::Instance1, >, ), - pallet_collective_Instance2( + TechnicalCommittee( __runtime_types::pallet_collective::RawOrigin< __runtime_types::sp_core::crypto::AccountId32, __runtime_types::pallet_collective::Instance2, @@ -2307,197 +2286,208 @@ pub mod node_runtime { Staking, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct Runtime {} - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct SessionKeys { pub grandpa: __runtime_types::sp_finality_grandpa::app::Public, pub babe: __runtime_types::sp_consensus_babe::app::Public, pub im_online: __runtime_types::pallet_im_online::sr25519::app_sr25519::Public, pub authority_discovery: __runtime_types::sp_authority_discovery::app::Public, } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct TechnicalMaxProposals(pub u32); } pub mod pallet_assets { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - create( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + create { + id: u32, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - force_create( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + min_balance: u64, + }, + force_create { + id: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - bool, - u64, - ), - destroy(u32, __runtime_types::pallet_assets::types::DestroyWitness), - mint( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + is_sufficient: bool, + min_balance: u64, + }, + destroy { + id: u32, + witness: __runtime_types::pallet_assets::types::DestroyWitness, + }, + mint { + id: u32, + beneficiary: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - burn( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + burn { + id: u32, + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - transfer( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + transfer { + id: u32, + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - transfer_keep_alive( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + transfer_keep_alive { + id: u32, + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - force_transfer( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + force_transfer { + id: u32, + source: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - freeze( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + freeze { + id: u32, + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - thaw( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + thaw { + id: u32, + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - freeze_asset(u32), - thaw_asset(u32), - transfer_ownership( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + freeze_asset { + id: u32, + }, + thaw_asset { + id: u32, + }, + transfer_ownership { + id: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - set_team( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + set_team { + id: u32, + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - set_metadata(u32, Vec, Vec, u8), - clear_metadata(u32), - force_set_metadata(u32, Vec, Vec, u8, bool), - force_clear_metadata(u32), - force_asset_status( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + set_metadata { + id: u32, + name: Vec, + symbol: Vec, + decimals: u8, + }, + clear_metadata { + id: u32, + }, + force_set_metadata { + id: u32, + name: Vec, + symbol: Vec, + decimals: u8, + is_frozen: bool, + }, + force_clear_metadata { + id: u32, + }, + force_asset_status { + id: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - bool, - bool, - ), - approve_transfer( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + min_balance: u64, + is_sufficient: bool, + is_frozen: bool, + }, + approve_transfer { + id: u32, + delegate: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - cancel_approval( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + amount: u64, + }, + cancel_approval { + id: u32, + delegate: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - force_cancel_approval( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + force_cancel_approval { + id: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + delegate: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - transfer_approved( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + transfer_approved { + id: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + destination: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u64, - ), - __Ignore(core::marker::PhantomData<(_1, _0)>), + amount: u64, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { BalanceLow, BalanceZero, NoPermission, @@ -2506,14 +2496,13 @@ pub mod node_runtime { InUse, BadWitness, MinBalanceZero, - Overflow, NoProvider, BadMetadata, Unapproved, WouldDie, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0, _1> { + pub enum Event { Created( u32, __runtime_types::sp_core::crypto::AccountId32, @@ -2561,23 +2550,16 @@ pub mod node_runtime { u64, ), AssetStatusChanged(u32), - __Ignore(core::marker::PhantomData<(_0, _1)>), } } pub mod types { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Approval<_0, _1> { pub amount: _0, pub deposit: _1, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct ApprovalKey<_0> { - pub owner: _0, - pub delegate: _0, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct AssetBalance<_0, _1> { pub balance: _0, pub is_frozen: bool, @@ -2600,10 +2582,10 @@ pub mod node_runtime { pub is_frozen: bool, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct AssetMetadata<_0> { + pub struct AssetMetadata<_0, _1> { pub deposit: _0, - pub name: Vec, - pub symbol: Vec, + pub name: _1, + pub symbol: _1, pub decimals: u8, pub is_frozen: bool, } @@ -2615,35 +2597,18 @@ pub mod node_runtime { } } } - pub mod pallet_authority_discovery { - use super::__runtime_types; - use std::collections::BTreeMap; - pub mod pallet { - use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - __Ignore(core::marker::PhantomData<(_0,)>), - } - } - } pub mod pallet_authorship { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - set_uncles(Vec<__runtime_types::sp_runtime::generic::header::Header>), - __Ignore(core::marker::PhantomData<(_0,)>), + pub enum Call { + set_uncles { + new_uncles: Vec<__runtime_types::sp_runtime::generic::header::Header>, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InvalidUncleParent, UnclesAlreadySet, TooManyUncles, @@ -2661,37 +2626,30 @@ pub mod node_runtime { } pub mod pallet_babe { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - report_equivocation( - __runtime_types::sp_consensus_slots::EquivocationProof< + pub enum Call { + report_equivocation { + equivocation_proof: __runtime_types::sp_consensus_slots::EquivocationProof< __runtime_types::sp_runtime::generic::header::Header, __runtime_types::sp_consensus_babe::app::Public, >, - __runtime_types::sp_session::MembershipProof, - ), - report_equivocation_unsigned( - __runtime_types::sp_consensus_slots::EquivocationProof< + key_owner_proof: __runtime_types::sp_session::MembershipProof, + }, + report_equivocation_unsigned { + equivocation_proof: __runtime_types::sp_consensus_slots::EquivocationProof< __runtime_types::sp_runtime::generic::header::Header, __runtime_types::sp_consensus_babe::app::Public, >, - __runtime_types::sp_session::MembershipProof, - ), - plan_config_change( - __runtime_types::sp_consensus_babe::digests::NextConfigDescriptor, - ), - __Ignore(core::marker::PhantomData<(_0,)>), + key_owner_proof: __runtime_types::sp_session::MembershipProof, + }, + plan_config_change { + config: __runtime_types::sp_consensus_babe::digests::NextConfigDescriptor, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InvalidEquivocationProof, InvalidKeyOwnershipProof, DuplicateOffenceReport, @@ -2700,64 +2658,64 @@ pub mod node_runtime { } pub mod pallet_balances { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - transfer( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + transfer { + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - ), - set_balance( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + value: u128, + }, + set_balance { + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - u128, - ), - force_transfer( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + new_free: u128, + new_reserved: u128, + }, + force_transfer { + source: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - ), - transfer_keep_alive( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + value: u128, + }, + transfer_keep_alive { + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - ), - __Ignore(core::marker::PhantomData<(_0, _1)>), + value: u128, + }, + transfer_all { + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + keep_alive: bool, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { VestingBalance, LiquidityRestrictions, - Overflow, InsufficientBalance, ExistentialDeposit, KeepAlive, ExistingVestingSchedule, DeadAccount, + TooManyReserves, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0, _1> { + pub enum Event { Endowed(__runtime_types::sp_core::crypto::AccountId32, u128), DustLost(__runtime_types::sp_core::crypto::AccountId32, u128), Transfer( @@ -2775,7 +2733,6 @@ pub mod node_runtime { u128, __runtime_types::frame_support::traits::tokens::misc::BalanceStatus, ), - __Ignore(core::marker::PhantomData<(_1, _0)>), } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -2802,10 +2759,14 @@ pub mod node_runtime { V1_0_0, V2_0_0, } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ReserveData<_0, _1> { + pub id: _0, + pub amount: _1, + } } pub mod pallet_bounties { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Bounty<_0, _1, _2> { pub proposer: _0, @@ -2834,37 +2795,48 @@ pub mod node_runtime { }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - propose_bounty(u128, Vec), - approve_bounty(u32), - propose_curator( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + propose_bounty { + value: u128, + description: Vec, + }, + approve_bounty { + bounty_id: u32, + }, + propose_curator { + bounty_id: u32, + curator: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - ), - unassign_curator(u32), - accept_curator(u32), - award_bounty( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + fee: u128, + }, + unassign_curator { + bounty_id: u32, + }, + accept_curator { + bounty_id: u32, + }, + award_bounty { + bounty_id: u32, + beneficiary: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - claim_bounty(u32), - close_bounty(u32), - extend_bounty_expiry(u32, Vec), - __Ignore(core::marker::PhantomData<(_0,)>), + }, + claim_bounty { + bounty_id: u32, + }, + close_bounty { + bounty_id: u32, + }, + extend_bounty_expiry { + bounty_id: u32, + _remark: Vec, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InsufficientProposersBalance, InvalidIndex, ReasonTooBig, @@ -2888,33 +2860,41 @@ pub mod node_runtime { } pub mod pallet_collective { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - set_members( - Vec<__runtime_types::sp_core::crypto::AccountId32>, - Option<__runtime_types::sp_core::crypto::AccountId32>, - u32, - ), - execute(std::boxed::Box<__runtime_types::node_runtime::Call>, u32), - propose( - u32, - std::boxed::Box<__runtime_types::node_runtime::Call>, - u32, - ), - vote(__runtime_types::primitive_types::H256, u32, bool), - close(__runtime_types::primitive_types::H256, u32, u64, u32), - disapprove_proposal(__runtime_types::primitive_types::H256), - __Ignore(core::marker::PhantomData<(_0, _1)>), - } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), - NotMember, - DuplicateProposal, + pub enum Call { + set_members { + new_members: Vec<__runtime_types::sp_core::crypto::AccountId32>, + prime: Option<__runtime_types::sp_core::crypto::AccountId32>, + old_count: u32, + }, + execute { + proposal: __runtime_types::node_runtime::Call, + length_bound: u32, + }, + propose { + threshold: u32, + proposal: __runtime_types::node_runtime::Call, + length_bound: u32, + }, + vote { + proposal: __runtime_types::primitive_types::H256, + index: u32, + approve: bool, + }, + close { + proposal_hash: __runtime_types::primitive_types::H256, + index: u32, + proposal_weight_bound: u64, + length_bound: u32, + }, + disapprove_proposal { + proposal_hash: __runtime_types::primitive_types::H256, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + NotMember, + DuplicateProposal, ProposalMissing, WrongIndex, DuplicateVote, @@ -2943,7 +2923,8 @@ pub mod node_runtime { pub enum RawOrigin<_0, _1> { Members(u32, u32), Member(_0), - _Phantom(core::marker::PhantomData<_1>), + _Phantom, + __Ignore(core::marker::PhantomData<(_1,)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Votes<_0, _1> { @@ -2956,41 +2937,40 @@ pub mod node_runtime { } pub mod pallet_contracts { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - update_schedule(__runtime_types::pallet_contracts::schedule::Schedule<_0>), - call( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + call { + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - u128, - u64, - Vec, - ), - instantiate_with_code(u128, u64, Vec, Vec, Vec), - instantiate( - u128, - u64, - __runtime_types::primitive_types::H256, - Vec, - Vec, - ), - claim_surcharge( - __runtime_types::sp_core::crypto::AccountId32, - Option<__runtime_types::sp_core::crypto::AccountId32>, - ), + value: u128, + gas_limit: u64, + data: Vec, + }, + instantiate_with_code { + endowment: u128, + gas_limit: u64, + code: Vec, + data: Vec, + salt: Vec, + }, + instantiate { + endowment: u128, + gas_limit: u64, + code_hash: __runtime_types::primitive_types::H256, + data: Vec, + salt: Vec, + }, + claim_surcharge { + dest: __runtime_types::sp_core::crypto::AccountId32, + aux_sender: Option<__runtime_types::sp_core::crypto::AccountId32>, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InvalidScheduleVersion, InvalidSurchargeClaim, InvalidSourceContract, @@ -3003,15 +2983,17 @@ pub mod node_runtime { NewContractNotFunded, TransferFailed, MaxCallDepthReached, - NotCallable, + ContractNotFound, + ContractIsTombstone, + RentNotPaid, CodeTooLarge, CodeNotFound, OutOfBounds, DecodingFailed, ContractTrapped, ValueTooLarge, - ReentranceDenied, - InputAlreadyRead, + TerminatedWhileReentrant, + InputForwarded, RandomSubjectTooLong, TooManyTopics, DuplicateTopics, @@ -3020,9 +3002,12 @@ pub mod node_runtime { ContractNotEvictable, StorageExhausted, DuplicateContract, + TerminatedInConstructor, + DebugMessageInvalidUTF8, + ReentranceDenied, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { Instantiated( __runtime_types::sp_core::crypto::AccountId32, __runtime_types::sp_core::crypto::AccountId32, @@ -3042,14 +3027,12 @@ pub mod node_runtime { ScheduleUpdated(u32), ContractEmitted(__runtime_types::sp_core::crypto::AccountId32, Vec), CodeRemoved(__runtime_types::primitive_types::H256), - __Ignore(core::marker::PhantomData<(_0,)>), } } pub mod schedule { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct HostFnWeights<_0> { + pub struct HostFnWeights { pub caller: u64, pub address: u64, pub gas_left: u64, @@ -3067,15 +3050,13 @@ pub mod node_runtime { pub r#return: u64, pub return_per_byte: u64, pub terminate: u64, - pub terminate_per_code_byte: u64, pub restore_to: u64, - pub restore_to_per_caller_code_byte: u64, - pub restore_to_per_tombstone_code_byte: u64, pub restore_to_per_delta: u64, pub random: u64, pub deposit_event: u64, pub deposit_event_per_topic: u64, pub deposit_event_per_byte: u64, + pub debug_message: u64, pub set_rent_allowance: u64, pub set_storage: u64, pub set_storage_per_byte: u64, @@ -3084,12 +3065,10 @@ pub mod node_runtime { pub get_storage_per_byte: u64, pub transfer: u64, pub call: u64, - pub call_per_code_byte: u64, pub call_transfer_surcharge: u64, pub call_per_input_byte: u64, pub call_per_output_byte: u64, pub instantiate: u64, - pub instantiate_per_code_byte: u64, pub instantiate_per_input_byte: u64, pub instantiate_per_output_byte: u64, pub instantiate_per_salt_byte: u64, @@ -3101,11 +3080,10 @@ pub mod node_runtime { pub hash_blake2_256_per_byte: u64, pub hash_blake2_128: u64, pub hash_blake2_128_per_byte: u64, - pub rent_params: u64, - pub __chameleon_unused_type_params: core::marker::PhantomData<(_0,)>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct InstructionWeights<_0> { + pub struct InstructionWeights { + pub version: u32, pub i64const: u32, pub i64load: u32, pub i64store: u32, @@ -3157,7 +3135,6 @@ pub mod node_runtime { pub i64shru: u32, pub i64rotl: u32, pub i64rotr: u32, - pub __chameleon_unused_type_params: core::marker::PhantomData<(_0,)>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Limits { @@ -3169,23 +3146,22 @@ pub mod node_runtime { pub table_size: u32, pub br_table_size: u32, pub subject_len: u32, + pub call_depth: u32, + pub payload_len: u32, + pub code_len: u32, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct Schedule<_0> { - pub version: u32, - pub enable_println: bool, + pub struct Schedule { pub limits: __runtime_types::pallet_contracts::schedule::Limits, pub instruction_weights: - __runtime_types::pallet_contracts::schedule::InstructionWeights<_0>, - pub host_fn_weights: - __runtime_types::pallet_contracts::schedule::HostFnWeights<_0>, + __runtime_types::pallet_contracts::schedule::InstructionWeights, + pub host_fn_weights: __runtime_types::pallet_contracts::schedule::HostFnWeights, } } pub mod storage { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum ContractInfo<_0> { + pub enum ContractInfo { Alive( __runtime_types::pallet_contracts::storage::RawAliveContractInfo< __runtime_types::primitive_types::H256, @@ -3199,7 +3175,6 @@ pub mod node_runtime { __runtime_types::sp_runtime::traits::BlakeTwo256, >, ), - __Ignore(core::marker::PhantomData<(_0,)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct DeletedContract { @@ -3213,7 +3188,7 @@ pub mod node_runtime { pub pair_count: _2, pub code_hash: _0, pub rent_allowance: _1, - pub rent_payed: _1, + pub rent_paid: _1, pub deduct_block: _2, pub last_write: Option<_2>, pub _reserved: Option<()>, @@ -3221,31 +3196,27 @@ pub mod node_runtime { #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RawTombstoneContractInfo<_0, _1>( pub _0, - pub core::marker::PhantomData<_1>, + pub core::marker::PhantomData<(_1)>, ); } pub mod wasm { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct PrefabWasmModule<_0> { - pub schedule_version: u32, + pub struct PrefabWasmModule { + pub instruction_weights_version: u32, pub initial: u32, pub maximum: u32, pub refcount: u64, pub _reserved: Option<()>, pub code: Vec, pub original_code_len: u32, - pub __chameleon_unused_type_params: core::marker::PhantomData<(_0,)>, } } } pub mod pallet_democracy { use super::__runtime_types; - use std::collections::BTreeMap; pub mod conviction { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Conviction { None, @@ -3257,9 +3228,180 @@ pub mod node_runtime { Locked6x, } } + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + propose { + proposal_hash: __runtime_types::primitive_types::H256, + value: u128, + }, + second { + proposal: u32, + seconds_upper_bound: u32, + }, + vote { + ref_index: u32, + vote: __runtime_types::pallet_democracy::vote::AccountVote, + }, + emergency_cancel { + ref_index: u32, + }, + external_propose { + proposal_hash: __runtime_types::primitive_types::H256, + }, + external_propose_majority { + proposal_hash: __runtime_types::primitive_types::H256, + }, + external_propose_default { + proposal_hash: __runtime_types::primitive_types::H256, + }, + fast_track { + proposal_hash: __runtime_types::primitive_types::H256, + voting_period: u32, + delay: u32, + }, + veto_external { + proposal_hash: __runtime_types::primitive_types::H256, + }, + cancel_referendum { + ref_index: u32, + }, + cancel_queued { + which: u32, + }, + delegate { + to: __runtime_types::sp_core::crypto::AccountId32, + conviction: __runtime_types::pallet_democracy::conviction::Conviction, + balance: u128, + }, + undelegate, + clear_public_proposals, + note_preimage { + encoded_proposal: Vec, + }, + note_preimage_operational { + encoded_proposal: Vec, + }, + note_imminent_preimage { + encoded_proposal: Vec, + }, + note_imminent_preimage_operational { + encoded_proposal: Vec, + }, + reap_preimage { + proposal_hash: __runtime_types::primitive_types::H256, + proposal_len_upper_bound: u32, + }, + unlock { + target: __runtime_types::sp_core::crypto::AccountId32, + }, + remove_vote { + index: u32, + }, + remove_other_vote { + target: __runtime_types::sp_core::crypto::AccountId32, + index: u32, + }, + enact_proposal { + proposal_hash: __runtime_types::primitive_types::H256, + index: u32, + }, + blacklist { + proposal_hash: __runtime_types::primitive_types::H256, + maybe_ref_index: Option, + }, + cancel_proposal { + prop_index: u32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + ValueLow, + ProposalMissing, + BadIndex, + AlreadyCanceled, + DuplicateProposal, + ProposalBlacklisted, + NotSimpleMajority, + InvalidHash, + NoProposal, + AlreadyVetoed, + NotDelegated, + DuplicatePreimage, + NotImminent, + TooEarly, + Imminent, + PreimageMissing, + ReferendumInvalid, + PreimageInvalid, + NoneWaiting, + NotLocked, + NotExpired, + NotVoter, + NoPermission, + AlreadyDelegating, + InsufficientFunds, + NotDelegating, + VotesExist, + InstantNotAllowed, + Nonsense, + WrongUpperBound, + MaxVotesReached, + InvalidWitness, + TooManyProposals, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Proposed(u32, u128), + Tabled( + u32, + u128, + Vec<__runtime_types::sp_core::crypto::AccountId32>, + ), + ExternalTabled, + Started( + u32, + __runtime_types::pallet_democracy::vote_threshold::VoteThreshold, + ), + Passed(u32), + NotPassed(u32), + Cancelled(u32), + Executed(u32, Result<(), __runtime_types::sp_runtime::DispatchError>), + Delegated( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + Undelegated(__runtime_types::sp_core::crypto::AccountId32), + Vetoed( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::primitive_types::H256, + u32, + ), + PreimageNoted( + __runtime_types::primitive_types::H256, + __runtime_types::sp_core::crypto::AccountId32, + u128, + ), + PreimageUsed( + __runtime_types::primitive_types::H256, + __runtime_types::sp_core::crypto::AccountId32, + u128, + ), + PreimageInvalid(__runtime_types::primitive_types::H256, u32), + PreimageMissing(__runtime_types::primitive_types::H256, u32), + PreimageReaped( + __runtime_types::primitive_types::H256, + __runtime_types::sp_core::crypto::AccountId32, + u128, + __runtime_types::sp_core::crypto::AccountId32, + ), + Unlocked(__runtime_types::sp_core::crypto::AccountId32), + Blacklisted(__runtime_types::primitive_types::H256), + } + } pub mod types { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Delegations<_0> { pub votes: _0, @@ -3287,7 +3429,6 @@ pub mod node_runtime { } pub mod vote { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum AccountVote<_0> { Standard { @@ -3302,10 +3443,7 @@ pub mod node_runtime { #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct PriorLock<_0, _1>(pub _0, pub _1); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct Vote { - pub aye: bool, - pub conviction: __runtime_types::pallet_democracy::conviction::Conviction, - } + pub struct Vote(u8); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Voting<_0, _1, _2> { Direct { @@ -3324,7 +3462,6 @@ pub mod node_runtime { } pub mod vote_threshold { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum VoteThreshold { SuperMajorityApprove, @@ -3333,84 +3470,6 @@ pub mod node_runtime { } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - propose(__runtime_types::primitive_types::H256, u128), - second(u32, u32), - vote( - u32, - __runtime_types::pallet_democracy::vote::AccountVote, - ), - emergency_cancel(u32), - external_propose(__runtime_types::primitive_types::H256), - external_propose_majority(__runtime_types::primitive_types::H256), - external_propose_default(__runtime_types::primitive_types::H256), - fast_track(__runtime_types::primitive_types::H256, u32, u32), - veto_external(__runtime_types::primitive_types::H256), - cancel_referendum(u32), - cancel_queued(u32), - delegate( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_democracy::conviction::Conviction, - u128, - ), - undelegate, - clear_public_proposals, - note_preimage(Vec), - note_preimage_operational(Vec), - note_imminent_preimage(Vec), - note_imminent_preimage_operational(Vec), - reap_preimage(__runtime_types::primitive_types::H256, u32), - unlock(__runtime_types::sp_core::crypto::AccountId32), - remove_vote(u32), - remove_other_vote(__runtime_types::sp_core::crypto::AccountId32, u32), - enact_proposal(__runtime_types::primitive_types::H256, u32), - blacklist(__runtime_types::primitive_types::H256, Option), - cancel_proposal(u32), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - ValueLow, - ProposalMissing, - BadIndex, - AlreadyCanceled, - DuplicateProposal, - ProposalBlacklisted, - NotSimpleMajority, - InvalidHash, - NoProposal, - AlreadyVetoed, - NotDelegated, - DuplicatePreimage, - NotImminent, - TooEarly, - Imminent, - PreimageMissing, - ReferendumInvalid, - PreimageInvalid, - NoneWaiting, - NotLocked, - NotExpired, - NotVoter, - NoPermission, - AlreadyDelegating, - Overflow, - Underflow, - InsufficientFunds, - NotDelegating, - VotesExist, - InstantNotAllowed, - Nonsense, - WrongUpperBound, - MaxVotesReached, - InvalidWitness, - TooManyProposals, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum PreimageStatus<_0, _1, _2> { Missing(_2), Available { @@ -3422,69 +3481,57 @@ pub mod node_runtime { }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1, _2, _3> { - Proposed(_3, _0), - Tabled(_3, _0, Vec<_1>), - ExternalTabled, - Started( - _3, - __runtime_types::pallet_democracy::vote_threshold::VoteThreshold, - ), - Passed(_3), - NotPassed(_3), - Cancelled(_3), - Executed(_3, bool), - Delegated(_1, _1), - Undelegated(_1), - Vetoed(_1, _2, _3), - PreimageNoted(_2, _1, _0), - PreimageUsed(_2, _1, _0), - PreimageInvalid(_2, _3), - PreimageMissing(_2, _3), - PreimageReaped(_2, _1, _0, _1), - Unlocked(_1), - Blacklisted(_2), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Releases { V1, } } pub mod pallet_election_provider_multi_phase { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - submit_unsigned (__runtime_types :: pallet_election_provider_multi_phase :: RawSolution < __runtime_types :: node_runtime :: NposCompactSolution16 > , __runtime_types :: pallet_election_provider_multi_phase :: SolutionOrSnapshotSize ,) , __Ignore (core :: marker :: PhantomData < (_0 ,) >) , } + pub enum Call { + submit_unsigned { solution : __runtime_types :: pallet_election_provider_multi_phase :: RawSolution < __runtime_types :: node_runtime :: NposCompactSolution16 > , witness : __runtime_types :: pallet_election_provider_multi_phase :: SolutionOrSnapshotSize , } , set_minimum_untrusted_score { maybe_next_score : Option < [u128 ; 3usize] > , } , set_emergency_election_result { supports : Vec < (__runtime_types :: sp_core :: crypto :: AccountId32 , __runtime_types :: sp_npos_elections :: Support < __runtime_types :: sp_core :: crypto :: AccountId32 > ,) > , } , submit { solution : __runtime_types :: pallet_election_provider_multi_phase :: RawSolution < __runtime_types :: node_runtime :: NposCompactSolution16 > , num_signed_submissions : u32 , } , } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { PreDispatchEarlySubmission, PreDispatchWrongWinnerCount, PreDispatchWeakSubmission, + SignedQueueFull, + SignedCannotPayDeposit, + SignedInvalidWitness, + SignedTooMuchWeight, OcwCallWrongEra, + MissingSnapshotMetadata, + InvalidSubmissionIndex, + CallNotAllowed, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { SolutionStored( __runtime_types::pallet_election_provider_multi_phase::ElectionCompute, + bool, ), ElectionFinalized( Option< __runtime_types::pallet_election_provider_multi_phase::ElectionCompute, >, ), - Rewarded(__runtime_types::sp_core::crypto::AccountId32), - Slashed(__runtime_types::sp_core::crypto::AccountId32), + Rewarded(__runtime_types::sp_core::crypto::AccountId32, u128), + Slashed(__runtime_types::sp_core::crypto::AccountId32, u128), SignedPhaseStarted(u32), UnsignedPhaseStarted(u32), - __Ignore(core::marker::PhantomData<(_0,)>), + } + } + pub mod signed { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct SignedSubmission<_0, _1, _2> { + pub who: _0, + pub deposit: _1, + pub solution: + __runtime_types::pallet_election_provider_multi_phase::RawSolution<_2>, + pub reward: _1, } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -3492,12 +3539,14 @@ pub mod node_runtime { OnChain, Signed, Unsigned, + Emergency, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Phase<_0> { Off, Signed, Unsigned((bool, _0)), + Emergency, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RawSolution<_0> { @@ -3524,32 +3573,35 @@ pub mod node_runtime { } pub mod pallet_elections_phragmen { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - vote(Vec<__runtime_types::sp_core::crypto::AccountId32>, u128), + pub enum Call { + vote { + votes: Vec<__runtime_types::sp_core::crypto::AccountId32>, + value: u128, + }, remove_voter, - submit_candidacy(u32), - renounce_candidacy(__runtime_types::pallet_elections_phragmen::Renouncing), - remove_member( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + submit_candidacy { + candidate_count: u32, + }, + renounce_candidacy { + renouncing: __runtime_types::pallet_elections_phragmen::Renouncing, + }, + remove_member { + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - bool, - ), - clean_defunct_voters(u32, u32), - __Ignore(core::marker::PhantomData<(_0,)>), + has_replacement: bool, + }, + clean_defunct_voters { + _num_voters: u32, + _num_defunct: u32, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { UnableToVote, NoVotes, TooManyVotes, @@ -3569,7 +3621,7 @@ pub mod node_runtime { InvalidReplacement, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { NewTerm(Vec<(__runtime_types::sp_core::crypto::AccountId32, u128)>), EmptyTerm, ElectionError, @@ -3577,7 +3629,6 @@ pub mod node_runtime { Renounced(__runtime_types::sp_core::crypto::AccountId32), CandidateSlashed(__runtime_types::sp_core::crypto::AccountId32, u128), SeatHolderSlashed(__runtime_types::sp_core::crypto::AccountId32, u128), - __Ignore(core::marker::PhantomData<(_0,)>), } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -3601,10 +3652,8 @@ pub mod node_runtime { } pub mod pallet_gilt { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct ActiveGilt<_0, _1, _2> { pub proportion: __runtime_types::sp_arithmetic::per_things::Perquintill, @@ -3620,19 +3669,24 @@ pub mod node_runtime { pub target: __runtime_types::sp_arithmetic::per_things::Perquintill, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - place_bid(u128, u32), - retract_bid(u128, u32), - set_target(__runtime_types::sp_arithmetic::per_things::Perquintill), - thaw(u32), - __Ignore(core::marker::PhantomData<(_0,)>), + pub enum Call { + place_bid { + amount: u128, + duration: u32, + }, + retract_bid { + amount: u128, + duration: u32, + }, + set_target { + target: __runtime_types::sp_arithmetic::per_things::Perquintill, + }, + thaw { + index: u32, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { DurationTooSmall, DurationTooBig, AmountTooSmall, @@ -3643,7 +3697,7 @@ pub mod node_runtime { NotFound, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { BidPlaced(__runtime_types::sp_core::crypto::AccountId32, u128, u32), BidRetracted(__runtime_types::sp_core::crypto::AccountId32, u128, u32), GiltIssued( @@ -3658,7 +3712,6 @@ pub mod node_runtime { u128, u128, ), - __Ignore(core::marker::PhantomData<(_0,)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct GiltBid<_0, _1> { @@ -3669,45 +3722,45 @@ pub mod node_runtime { } pub mod pallet_grandpa { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - report_equivocation( - __runtime_types::sp_finality_grandpa::EquivocationProof< - __runtime_types::primitive_types::H256, - u32, - >, - __runtime_types::sp_session::MembershipProof, - ), - report_equivocation_unsigned( - __runtime_types::sp_finality_grandpa::EquivocationProof< - __runtime_types::primitive_types::H256, - u32, - >, - __runtime_types::sp_session::MembershipProof, - ), - note_stalled(u32, u32), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - PauseFailed, - ResumeFailed, - ChangePending, - TooSoon, - InvalidKeyOwnershipProof, - InvalidEquivocationProof, - DuplicateOffenceReport, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event { - NewAuthorities(Vec<(__runtime_types::sp_finality_grandpa::app::Public, u64)>), - Paused, - Resumed, + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + report_equivocation { + equivocation_proof: __runtime_types::sp_finality_grandpa::EquivocationProof< + __runtime_types::primitive_types::H256, + u32, + >, + key_owner_proof: __runtime_types::sp_session::MembershipProof, + }, + report_equivocation_unsigned { + equivocation_proof: __runtime_types::sp_finality_grandpa::EquivocationProof< + __runtime_types::primitive_types::H256, + u32, + >, + key_owner_proof: __runtime_types::sp_session::MembershipProof, + }, + note_stalled { + delay: u32, + best_finalized_block_number: u32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + PauseFailed, + ResumeFailed, + ChangePending, + TooSoon, + InvalidKeyOwnershipProof, + InvalidEquivocationProof, + DuplicateOffenceReport, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + NewAuthorities(Vec<(__runtime_types::sp_finality_grandpa::app::Public, u64)>), + Paused, + Resumed, + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct StoredPendingChange<_0> { @@ -3726,69 +3779,82 @@ pub mod node_runtime { } pub mod pallet_identity { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - add_registrar(__runtime_types::sp_core::crypto::AccountId32), - set_identity(__runtime_types::pallet_identity::IdentityInfo), - set_subs( - Vec<( + pub enum Call { + add_registrar { + account: __runtime_types::sp_core::crypto::AccountId32, + }, + set_identity { + info: __runtime_types::pallet_identity::types::IdentityInfo, + }, + set_subs { + subs: Vec<( __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_identity::Data, + __runtime_types::pallet_identity::types::Data, )>, - ), + }, clear_identity, - request_judgement(u32, u128), - cancel_request(u32), - set_fee(u32, u128), - set_account_id(u32, __runtime_types::sp_core::crypto::AccountId32), - set_fields(u32, __runtime_types::pallet_identity::IdentityFields), - provide_judgement( - u32, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + request_judgement { + reg_index: u32, + max_fee: u128, + }, + cancel_request { + reg_index: u32, + }, + set_fee { + index: u32, + fee: u128, + }, + set_account_id { + index: u32, + new: __runtime_types::sp_core::crypto::AccountId32, + }, + set_fields { + index: u32, + fields: __runtime_types::pallet_identity::types::BitFlags< + __runtime_types::pallet_identity::types::IdentityField, + >, + }, + provide_judgement { + reg_index: u32, + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::pallet_identity::Judgement, - ), - kill_identity( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + judgement: __runtime_types::pallet_identity::types::Judgement, + }, + kill_identity { + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - add_sub( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + add_sub { + sub: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::pallet_identity::Data, - ), - rename_sub( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + data: __runtime_types::pallet_identity::types::Data, + }, + rename_sub { + sub: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::pallet_identity::Data, - ), - remove_sub( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + data: __runtime_types::pallet_identity::types::Data, + }, + remove_sub { + sub: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), + }, quit_sub, - __Ignore(core::marker::PhantomData<(_0,)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { TooManySubAccounts, NotFound, NotNamed, @@ -3807,7 +3873,7 @@ pub mod node_runtime { NotOwned, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { IdentitySet(__runtime_types::sp_core::crypto::AccountId32), IdentityCleared(__runtime_types::sp_core::crypto::AccountId32, u128), IdentityKilled(__runtime_types::sp_core::crypto::AccountId32, u128), @@ -3830,67 +3896,148 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, u128, ), - __Ignore(core::marker::PhantomData<(_0,)>), } } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Data { - None, - Raw(Vec), - BlakeTwo256([u8; 32usize]), - Sha256([u8; 32usize]), - Keccak256([u8; 32usize]), - ShaThree256([u8; 32usize]), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct IdentityFields(pub u64); - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct IdentityInfo { - pub additional: Vec<( - __runtime_types::pallet_identity::Data, - __runtime_types::pallet_identity::Data, - )>, - pub display: __runtime_types::pallet_identity::Data, - pub legal: __runtime_types::pallet_identity::Data, - pub web: __runtime_types::pallet_identity::Data, - pub riot: __runtime_types::pallet_identity::Data, - pub email: __runtime_types::pallet_identity::Data, - pub pgp_fingerprint: Option<[u8; 20usize]>, - pub image: __runtime_types::pallet_identity::Data, - pub twitter: __runtime_types::pallet_identity::Data, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Judgement<_0> { - Unknown, - FeePaid(_0), - Reasonable, - KnownGood, - OutOfDate, - LowQuality, - Erroneous, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct RegistrarInfo<_0, _1> { - pub account: _1, - pub fee: _0, - pub fields: __runtime_types::pallet_identity::IdentityFields, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct Registration<_0> { - pub judgements: Vec<(u32, __runtime_types::pallet_identity::Judgement<_0>)>, - pub deposit: _0, - pub info: __runtime_types::pallet_identity::IdentityInfo, + pub mod types { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct BitFlags<_0>(pub u64, pub core::marker::PhantomData<(_0)>); + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Data { + None, + Raw0([u8; 0usize]), + Raw1([u8; 1usize]), + Raw2([u8; 2usize]), + Raw3([u8; 3usize]), + Raw4([u8; 4usize]), + Raw5([u8; 5usize]), + Raw6([u8; 6usize]), + Raw7([u8; 7usize]), + Raw8([u8; 8usize]), + Raw9([u8; 9usize]), + Raw10([u8; 10usize]), + Raw11([u8; 11usize]), + Raw12([u8; 12usize]), + Raw13([u8; 13usize]), + Raw14([u8; 14usize]), + Raw15([u8; 15usize]), + Raw16([u8; 16usize]), + Raw17([u8; 17usize]), + Raw18([u8; 18usize]), + Raw19([u8; 19usize]), + Raw20([u8; 20usize]), + Raw21([u8; 21usize]), + Raw22([u8; 22usize]), + Raw23([u8; 23usize]), + Raw24([u8; 24usize]), + Raw25([u8; 25usize]), + Raw26([u8; 26usize]), + Raw27([u8; 27usize]), + Raw28([u8; 28usize]), + Raw29([u8; 29usize]), + Raw30([u8; 30usize]), + Raw31([u8; 31usize]), + Raw32([u8; 32usize]), + BlakeTwo256([u8; 32usize]), + Sha256([u8; 32usize]), + Keccak256([u8; 32usize]), + ShaThree256([u8; 32usize]), + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum IdentityField { + Display, + Legal, + Web, + Riot, + Email, + PgpFingerprint, + Image, + Twitter, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct IdentityInfo { + pub additional: + __runtime_types::frame_support::storage::bounded_vec::BoundedVec<( + __runtime_types::pallet_identity::types::Data, + __runtime_types::pallet_identity::types::Data, + )>, + pub display: __runtime_types::pallet_identity::types::Data, + pub legal: __runtime_types::pallet_identity::types::Data, + pub web: __runtime_types::pallet_identity::types::Data, + pub riot: __runtime_types::pallet_identity::types::Data, + pub email: __runtime_types::pallet_identity::types::Data, + pub pgp_fingerprint: Option<[u8; 20usize]>, + pub image: __runtime_types::pallet_identity::types::Data, + pub twitter: __runtime_types::pallet_identity::types::Data, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Judgement<_0> { + Unknown, + FeePaid(_0), + Reasonable, + KnownGood, + OutOfDate, + LowQuality, + Erroneous, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct RegistrarInfo<_0, _1> { + pub account: _1, + pub fee: _0, + pub fields: __runtime_types::pallet_identity::types::BitFlags< + __runtime_types::pallet_identity::types::IdentityField, + >, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct Registration<_0> { + pub judgements: + __runtime_types::frame_support::storage::bounded_vec::BoundedVec<( + u32, + __runtime_types::pallet_identity::types::Judgement<_0>, + )>, + pub deposit: _0, + pub info: __runtime_types::pallet_identity::types::IdentityInfo, + } } } pub mod pallet_im_online { use super::__runtime_types; - use std::collections::BTreeMap; + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + heartbeat { + heartbeat: __runtime_types::pallet_im_online::Heartbeat, + _signature: + __runtime_types::pallet_im_online::sr25519::app_sr25519::Signature, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + InvalidKey, + DuplicatedHeartbeat, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + HeartbeatReceived( + __runtime_types::pallet_im_online::sr25519::app_sr25519::Public, + ), + AllGood, + SomeOffline( + Vec<( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::pallet_staking::Exposure< + __runtime_types::sp_core::crypto::AccountId32, + u128, + >, + )>, + ), + } + } pub mod sr25519 { use super::__runtime_types; - use std::collections::BTreeMap; pub mod app_sr25519 { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub __runtime_types::sp_core::sr25519::Public); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -3898,23 +4045,6 @@ pub mod node_runtime { } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - heartbeat( - __runtime_types::pallet_im_online::Heartbeat, - __runtime_types::pallet_im_online::sr25519::app_sr25519::Signature, - ), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - InvalidKey, - DuplicatedHeartbeat, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Heartbeat<_0> { pub block_number: _0, pub network_state: __runtime_types::sp_core::offchain::OpaqueNetworkState, @@ -3922,34 +4052,34 @@ pub mod node_runtime { pub authority_index: _0, pub validators_len: _0, } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1> { - HeartbeatReceived(_0), - AllGood, - SomeOffline(Vec<_1>), - } } pub mod pallet_indices { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - claim(u32), - transfer(__runtime_types::sp_core::crypto::AccountId32, u32), - free(u32), - force_transfer(__runtime_types::sp_core::crypto::AccountId32, u32, bool), - freeze(u32), - __Ignore(core::marker::PhantomData<(_0,)>), + pub enum Call { + claim { + index: u32, + }, + transfer { + new: __runtime_types::sp_core::crypto::AccountId32, + index: u32, + }, + free { + index: u32, + }, + force_transfer { + new: __runtime_types::sp_core::crypto::AccountId32, + index: u32, + freeze: bool, + }, + freeze { + index: u32, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { NotAssigned, NotOwner, InUse, @@ -3957,39 +4087,50 @@ pub mod node_runtime { Permanent, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { IndexAssigned(__runtime_types::sp_core::crypto::AccountId32, u32), IndexFreed(u32), IndexFrozen(u32, __runtime_types::sp_core::crypto::AccountId32), - __Ignore(core::marker::PhantomData<(_0,)>), } } } pub mod pallet_lottery { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - buy_ticket(std::boxed::Box<__runtime_types::node_runtime::Call>), - set_calls(Vec<__runtime_types::node_runtime::Call>), - start_lottery(u128, u32, u32, bool), - stop_repeat, - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - Overflow, - NotConfigured, - InProgress, - AlreadyEnded, - InvalidCall, - AlreadyParticipating, - TooManyCalls, - EncodingFailed, + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + buy_ticket { + call: __runtime_types::node_runtime::Call, + }, + set_calls { + calls: Vec<__runtime_types::node_runtime::Call>, + }, + start_lottery { + price: u128, + length: u32, + delay: u32, + repeat: bool, + }, + stop_repeat, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + NotConfigured, + InProgress, + AlreadyEnded, + InvalidCall, + AlreadyParticipating, + TooManyCalls, + EncodingFailed, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + LotteryStarted, + CallsUpdated, + Winner(__runtime_types::sp_core::crypto::AccountId32, u128), + TicketBought(__runtime_types::sp_core::crypto::AccountId32, (u8, u8)), + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct LotteryConfig<_0, _1> { @@ -3999,37 +4140,34 @@ pub mod node_runtime { pub delay: _0, pub repeat: bool, } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1> { - LotteryStarted, - CallsUpdated, - Winner(_0, _1), - TicketBought(_0, (u8, u8)), - } } pub mod pallet_membership { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - add_member(__runtime_types::sp_core::crypto::AccountId32), - remove_member(__runtime_types::sp_core::crypto::AccountId32), - swap_member( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::sp_core::crypto::AccountId32, - ), - reset_members(Vec<__runtime_types::sp_core::crypto::AccountId32>), - change_key(__runtime_types::sp_core::crypto::AccountId32), - set_prime(__runtime_types::sp_core::crypto::AccountId32), + pub enum Call { + add_member { + who: __runtime_types::sp_core::crypto::AccountId32, + }, + remove_member { + who: __runtime_types::sp_core::crypto::AccountId32, + }, + swap_member { + remove: __runtime_types::sp_core::crypto::AccountId32, + add: __runtime_types::sp_core::crypto::AccountId32, + }, + reset_members { + members: Vec<__runtime_types::sp_core::crypto::AccountId32>, + }, + change_key { + new: __runtime_types::sp_core::crypto::AccountId32, + }, + set_prime { + who: __runtime_types::sp_core::crypto::AccountId32, + }, clear_prime, - __Ignore(core::marker::PhantomData<(_1, _0)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { AlreadyMember, NotMember, } @@ -4042,62 +4180,86 @@ pub mod node_runtime { MembersSwapped, MembersReset, KeyChanged, - Dummy(core::marker::PhantomData<(_0, _1)>), - __Ignore(core::marker::PhantomData<(_2,)>), + Dummy, + __Ignore(core::marker::PhantomData<(_2, _0, _1)>), } } pub mod pallet_multisig { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - as_multi_threshold_1( - Vec<__runtime_types::sp_core::crypto::AccountId32>, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - as_multi( - u16, - Vec<__runtime_types::sp_core::crypto::AccountId32>, - Option<__runtime_types::pallet_multisig::Timepoint>, - Vec, - bool, - u64, - ), - approve_as_multi( - u16, - Vec<__runtime_types::sp_core::crypto::AccountId32>, - Option<__runtime_types::pallet_multisig::Timepoint>, - [u8; 32usize], - u64, - ), - cancel_as_multi( - u16, - Vec<__runtime_types::sp_core::crypto::AccountId32>, - __runtime_types::pallet_multisig::Timepoint, - [u8; 32usize], - ), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - MinimumThreshold, - AlreadyApproved, - NoApprovalsNeeded, - TooFewSignatories, - TooManySignatories, - SignatoriesOutOfOrder, - SenderInSignatories, - NotFound, - NotOwner, - NoTimepoint, - WrongTimepoint, - UnexpectedTimepoint, - MaxWeightTooLow, - AlreadyStored, + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + as_multi_threshold_1 { + other_signatories: Vec<__runtime_types::sp_core::crypto::AccountId32>, + call: __runtime_types::node_runtime::Call, + }, + as_multi { + threshold: u16, + other_signatories: Vec<__runtime_types::sp_core::crypto::AccountId32>, + maybe_timepoint: Option<__runtime_types::pallet_multisig::Timepoint>, + call: Vec, + store_call: bool, + max_weight: u64, + }, + approve_as_multi { + threshold: u16, + other_signatories: Vec<__runtime_types::sp_core::crypto::AccountId32>, + maybe_timepoint: Option<__runtime_types::pallet_multisig::Timepoint>, + call_hash: [u8; 32usize], + max_weight: u64, + }, + cancel_as_multi { + threshold: u16, + other_signatories: Vec<__runtime_types::sp_core::crypto::AccountId32>, + timepoint: __runtime_types::pallet_multisig::Timepoint, + call_hash: [u8; 32usize], + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + MinimumThreshold, + AlreadyApproved, + NoApprovalsNeeded, + TooFewSignatories, + TooManySignatories, + SignatoriesOutOfOrder, + SenderInSignatories, + NotFound, + NotOwner, + NoTimepoint, + WrongTimepoint, + UnexpectedTimepoint, + MaxWeightTooLow, + AlreadyStored, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + NewMultisig( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + [u8; 32usize], + ), + MultisigApproval( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::pallet_multisig::Timepoint, + __runtime_types::sp_core::crypto::AccountId32, + [u8; 32usize], + ), + MultisigExecuted( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::pallet_multisig::Timepoint, + __runtime_types::sp_core::crypto::AccountId32, + [u8; 32usize], + Result<(), __runtime_types::sp_runtime::DispatchError>, + ), + MultisigCancelled( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::pallet_multisig::Timepoint, + __runtime_types::sp_core::crypto::AccountId32, + [u8; 32usize], + ), + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Multisig<_0, _1, _2> { @@ -4107,19 +4269,6 @@ pub mod node_runtime { pub approvals: Vec<_2>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1, _2> { - NewMultisig(_0, _0, _2), - MultisigApproval(_0, __runtime_types::pallet_multisig::Timepoint<_1>, _0, _2), - MultisigExecuted( - _0, - __runtime_types::pallet_multisig::Timepoint<_1>, - _0, - _2, - Result<(), __runtime_types::sp_runtime::DispatchError>, - ), - MultisigCancelled(_0, __runtime_types::pallet_multisig::Timepoint<_1>, _0, _2), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Timepoint<_0> { pub height: _0, pub index: _0, @@ -4127,74 +4276,69 @@ pub mod node_runtime { } pub mod pallet_offences { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event { - Offence([u8; 16usize], Vec), + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Offence([u8; 16usize], Vec), + } } } pub mod pallet_proxy { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - proxy( - __runtime_types::sp_core::crypto::AccountId32, - Option<__runtime_types::node_runtime::ProxyType>, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - add_proxy( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::node_runtime::ProxyType, - u32, - ), - remove_proxy( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::node_runtime::ProxyType, - u32, - ), + pub enum Call { + proxy { + real: __runtime_types::sp_core::crypto::AccountId32, + force_proxy_type: Option<__runtime_types::node_runtime::ProxyType>, + call: __runtime_types::node_runtime::Call, + }, + add_proxy { + delegate: __runtime_types::sp_core::crypto::AccountId32, + proxy_type: __runtime_types::node_runtime::ProxyType, + delay: u32, + }, + remove_proxy { + delegate: __runtime_types::sp_core::crypto::AccountId32, + proxy_type: __runtime_types::node_runtime::ProxyType, + delay: u32, + }, remove_proxies, - anonymous(__runtime_types::node_runtime::ProxyType, u32, u16), - kill_anonymous( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::node_runtime::ProxyType, - u16, - u32, - u32, - ), - announce( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::primitive_types::H256, - ), - remove_announcement( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::primitive_types::H256, - ), - reject_announcement( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::primitive_types::H256, - ), - proxy_announced( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::sp_core::crypto::AccountId32, - Option<__runtime_types::node_runtime::ProxyType>, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - __Ignore(core::marker::PhantomData<(_0,)>), + anonymous { + proxy_type: __runtime_types::node_runtime::ProxyType, + delay: u32, + index: u16, + }, + kill_anonymous { + spawner: __runtime_types::sp_core::crypto::AccountId32, + proxy_type: __runtime_types::node_runtime::ProxyType, + index: u16, + height: u32, + ext_index: u32, + }, + announce { + real: __runtime_types::sp_core::crypto::AccountId32, + call_hash: __runtime_types::primitive_types::H256, + }, + remove_announcement { + real: __runtime_types::sp_core::crypto::AccountId32, + call_hash: __runtime_types::primitive_types::H256, + }, + reject_announcement { + delegate: __runtime_types::sp_core::crypto::AccountId32, + call_hash: __runtime_types::primitive_types::H256, + }, + proxy_announced { + delegate: __runtime_types::sp_core::crypto::AccountId32, + real: __runtime_types::sp_core::crypto::AccountId32, + force_proxy_type: Option<__runtime_types::node_runtime::ProxyType>, + call: __runtime_types::node_runtime::Call, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { TooMany, NotFound, NotProxy, @@ -4205,7 +4349,7 @@ pub mod node_runtime { NoSelfProxy, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { ProxyExecuted(Result<(), __runtime_types::sp_runtime::DispatchError>), AnonymousCreated( __runtime_types::sp_core::crypto::AccountId32, @@ -4218,7 +4362,6 @@ pub mod node_runtime { __runtime_types::sp_core::crypto::AccountId32, __runtime_types::primitive_types::H256, ), - __Ignore(core::marker::PhantomData<(_0,)>), } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -4234,17 +4377,85 @@ pub mod node_runtime { pub delay: _2, } } - pub mod pallet_randomness_collective_flip { - use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - __Ignore(core::marker::PhantomData<(_0,)>), - } - } pub mod pallet_recovery { use super::__runtime_types; - use std::collections::BTreeMap; + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + as_recovered { + account: __runtime_types::sp_core::crypto::AccountId32, + call: __runtime_types::node_runtime::Call, + }, + set_recovered { + lost: __runtime_types::sp_core::crypto::AccountId32, + rescuer: __runtime_types::sp_core::crypto::AccountId32, + }, + create_recovery { + friends: Vec<__runtime_types::sp_core::crypto::AccountId32>, + threshold: u16, + delay_period: u32, + }, + initiate_recovery { + account: __runtime_types::sp_core::crypto::AccountId32, + }, + vouch_recovery { + lost: __runtime_types::sp_core::crypto::AccountId32, + rescuer: __runtime_types::sp_core::crypto::AccountId32, + }, + claim_recovery { + account: __runtime_types::sp_core::crypto::AccountId32, + }, + close_recovery { + rescuer: __runtime_types::sp_core::crypto::AccountId32, + }, + remove_recovery, + cancel_recovered { + account: __runtime_types::sp_core::crypto::AccountId32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + NotAllowed, + ZeroThreshold, + NotEnoughFriends, + MaxFriends, + NotSorted, + NotRecoverable, + AlreadyRecoverable, + AlreadyStarted, + NotStarted, + NotFriend, + DelayPeriod, + AlreadyVouched, + Threshold, + StillActive, + AlreadyProxy, + BadState, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + RecoveryCreated(__runtime_types::sp_core::crypto::AccountId32), + RecoveryInitiated( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + RecoveryVouched( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + RecoveryClosed( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + AccountRecovered( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + RecoveryRemoved(__runtime_types::sp_core::crypto::AccountId32), + } + } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct ActiveRecovery<_0, _1, _2> { pub created: _0, @@ -4252,61 +4463,6 @@ pub mod node_runtime { pub friends: Vec<_2>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - as_recovered( - __runtime_types::sp_core::crypto::AccountId32, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - set_recovered( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::sp_core::crypto::AccountId32, - ), - create_recovery(Vec<__runtime_types::sp_core::crypto::AccountId32>, u16, u32), - initiate_recovery(__runtime_types::sp_core::crypto::AccountId32), - vouch_recovery( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::sp_core::crypto::AccountId32, - ), - claim_recovery(__runtime_types::sp_core::crypto::AccountId32), - close_recovery(__runtime_types::sp_core::crypto::AccountId32), - remove_recovery, - cancel_recovered(__runtime_types::sp_core::crypto::AccountId32), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - NotAllowed, - ZeroThreshold, - NotEnoughFriends, - MaxFriends, - NotSorted, - NotRecoverable, - AlreadyRecoverable, - AlreadyStarted, - NotStarted, - NotFriend, - DelayPeriod, - AlreadyVouched, - Threshold, - StillActive, - Overflow, - AlreadyProxy, - BadState, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0> { - RecoveryCreated(_0), - RecoveryInitiated(_0, _0), - RecoveryVouched(_0, _0, _0), - RecoveryClosed(_0, _0), - AccountRecovered(_0, _0), - RecoveryRemoved(_0), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RecoveryConfig<_0, _1, _2> { pub delay_period: _0, pub deposit: _1, @@ -4316,59 +4472,61 @@ pub mod node_runtime { } pub mod pallet_scheduler { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - schedule( - u32, - Option<(u32, u32)>, - u8, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - cancel(u32, u32), - schedule_named( - Vec, - u32, - Option<(u32, u32)>, - u8, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - cancel_named(Vec), - schedule_after( - u32, - Option<(u32, u32)>, - u8, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - schedule_named_after( - Vec, - u32, - Option<(u32, u32)>, - u8, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - FailedToSchedule, - NotFound, - TargetBlockNumberInPast, - RescheduleNoChange, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0> { - Scheduled(_0, _0), - Canceled(_0, _0), - Dispatched( - (_0, _0), - Option>, - Result<(), __runtime_types::sp_runtime::DispatchError>, - ), + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + schedule { + when: u32, + maybe_periodic: Option<(u32, u32)>, + priority: u8, + call: __runtime_types::node_runtime::Call, + }, + cancel { + when: u32, + index: u32, + }, + schedule_named { + id: Vec, + when: u32, + maybe_periodic: Option<(u32, u32)>, + priority: u8, + call: __runtime_types::node_runtime::Call, + }, + cancel_named { + id: Vec, + }, + schedule_after { + after: u32, + maybe_periodic: Option<(u32, u32)>, + priority: u8, + call: __runtime_types::node_runtime::Call, + }, + schedule_named_after { + id: Vec, + after: u32, + maybe_periodic: Option<(u32, u32)>, + priority: u8, + call: __runtime_types::node_runtime::Call, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + FailedToSchedule, + NotFound, + TargetBlockNumberInPast, + RescheduleNoChange, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Scheduled(u32, u32), + Canceled(u32, u32), + Dispatched( + (u32, u32), + Option>, + Result<(), __runtime_types::sp_runtime::DispatchError>, + ), + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Releases { @@ -4382,24 +4540,21 @@ pub mod node_runtime { pub call: _0, pub maybe_periodic: Option<(_1, _1)>, pub origin: _2, - pub _phantom: core::marker::PhantomData<_3>, + pub __chameleon_unused_type_params: core::marker::PhantomData<(_3,)>, } } pub mod pallet_session { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - set_keys(__runtime_types::node_runtime::SessionKeys, Vec), + pub enum Call { + set_keys { + keys: __runtime_types::node_runtime::SessionKeys, + proof: Vec, + }, purge_keys, - __Ignore(core::marker::PhantomData<(_0,)>), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { InvalidProof, NoAssociatedValidatorId, DuplicatedKey, @@ -4413,7 +4568,6 @@ pub mod node_runtime { } pub mod pallet_society { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Bid<_0, _1> { pub who: _0, @@ -4426,38 +4580,54 @@ pub mod node_runtime { Vouch(_0, _1), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - bid(u128), - unbid(u32), - vouch(__runtime_types::sp_core::crypto::AccountId32, u128, u128), - unvouch(u32), - vote( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + bid { + value: u128, + }, + unbid { + pos: u32, + }, + vouch { + who: __runtime_types::sp_core::crypto::AccountId32, + value: u128, + tip: u128, + }, + unvouch { + pos: u32, + }, + vote { + candidate: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - bool, - ), - defender_vote(bool), + approve: bool, + }, + defender_vote { + approve: bool, + }, payout, - found(__runtime_types::sp_core::crypto::AccountId32, u32, Vec), + found { + founder: __runtime_types::sp_core::crypto::AccountId32, + max_members: u32, + rules: Vec, + }, unfound, - judge_suspended_member(__runtime_types::sp_core::crypto::AccountId32, bool), - judge_suspended_candidate( - __runtime_types::sp_core::crypto::AccountId32, - __runtime_types::pallet_society::Judgement, - ), - set_max_members(u32), - __Ignore(core::marker::PhantomData<(_0, _1)>), + judge_suspended_member { + who: __runtime_types::sp_core::crypto::AccountId32, + forgive: bool, + }, + judge_suspended_candidate { + who: __runtime_types::sp_core::crypto::AccountId32, + judgement: __runtime_types::pallet_society::Judgement, + }, + set_max_members { + max: u32, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct DefaultInstance {} #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), + pub enum Error { BadPosition, NotMember, AlreadyMember, @@ -4517,10 +4687,159 @@ pub mod node_runtime { } pub mod pallet_staking { use super::__runtime_types; - use std::collections::BTreeMap; + pub mod pallet { + use super::__runtime_types; + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + bond { + controller: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + value: u128, + payee: __runtime_types::pallet_staking::RewardDestination< + __runtime_types::sp_core::crypto::AccountId32, + >, + }, + bond_extra { + max_additional: u128, + }, + unbond { + value: u128, + }, + withdraw_unbonded { + num_slashing_spans: u32, + }, + validate { + prefs: __runtime_types::pallet_staking::ValidatorPrefs, + }, + nominate { + targets: Vec< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + }, + chill, + set_payee { + payee: __runtime_types::pallet_staking::RewardDestination< + __runtime_types::sp_core::crypto::AccountId32, + >, + }, + set_controller { + controller: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + set_validator_count { + new: u32, + }, + increase_validator_count { + additional: u32, + }, + scale_validator_count { + factor: __runtime_types::sp_arithmetic::per_things::Percent, + }, + force_no_eras, + force_new_era, + set_invulnerables { + invulnerables: Vec<__runtime_types::sp_core::crypto::AccountId32>, + }, + force_unstake { + stash: __runtime_types::sp_core::crypto::AccountId32, + num_slashing_spans: u32, + }, + force_new_era_always, + cancel_deferred_slash { + era: u32, + slash_indices: Vec, + }, + payout_stakers { + validator_stash: __runtime_types::sp_core::crypto::AccountId32, + era: u32, + }, + rebond { + value: u128, + }, + set_history_depth { + new_history_depth: u32, + _era_items_deleted: u32, + }, + reap_stash { + stash: __runtime_types::sp_core::crypto::AccountId32, + num_slashing_spans: u32, + }, + kick { + who: Vec< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + }, + set_staking_limits { + min_nominator_bond: u128, + min_validator_bond: u128, + max_nominator_count: Option, + max_validator_count: Option, + threshold: Option<__runtime_types::sp_arithmetic::per_things::Percent>, + }, + chill_other { + controller: __runtime_types::sp_core::crypto::AccountId32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + NotController, + NotStash, + AlreadyBonded, + AlreadyPaired, + EmptyTargets, + DuplicateIndex, + InvalidSlashIndex, + InsufficientBond, + NoMoreChunks, + NoUnlockChunk, + FundedTarget, + InvalidEraToReward, + InvalidNumberOfNominations, + NotSortedAndUnique, + AlreadyClaimed, + IncorrectHistoryDepth, + IncorrectSlashingSpans, + BadState, + TooManyTargets, + BadTarget, + CannotChillOther, + TooManyNominators, + TooManyValidators, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + EraPaid(u32, u128, u128), + Rewarded(__runtime_types::sp_core::crypto::AccountId32, u128), + Slashed(__runtime_types::sp_core::crypto::AccountId32, u128), + OldSlashingReportDiscarded(u32), + StakersElected, + Bonded(__runtime_types::sp_core::crypto::AccountId32, u128), + Unbonded(__runtime_types::sp_core::crypto::AccountId32, u128), + Withdrawn(__runtime_types::sp_core::crypto::AccountId32, u128), + Kicked( + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + StakingElectionFailed, + Chilled(__runtime_types::sp_core::crypto::AccountId32), + PayoutStarted(u32, __runtime_types::sp_core::crypto::AccountId32), + } + } + } pub mod slashing { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct SlashingSpans { pub span_index: u32, @@ -4534,101 +4853,15 @@ pub mod node_runtime { pub paid_out: _0, } } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct ActiveEraInfo { - pub index: u32, - pub start: Option, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - bond( - __runtime_types::sp_runtime::multiaddress::MultiAddress< - __runtime_types::sp_core::crypto::AccountId32, - u32, - >, - u128, - __runtime_types::pallet_staking::RewardDestination< - __runtime_types::sp_core::crypto::AccountId32, - >, - ), - bond_extra(u128), - unbond(u128), - withdraw_unbonded(u32), - validate(__runtime_types::pallet_staking::ValidatorPrefs), - nominate( - Vec< - __runtime_types::sp_runtime::multiaddress::MultiAddress< - __runtime_types::sp_core::crypto::AccountId32, - u32, - >, - >, - ), - chill, - set_payee( - __runtime_types::pallet_staking::RewardDestination< - __runtime_types::sp_core::crypto::AccountId32, - >, - ), - set_controller( - __runtime_types::sp_runtime::multiaddress::MultiAddress< - __runtime_types::sp_core::crypto::AccountId32, - u32, - >, - ), - set_validator_count(u32), - increase_validator_count(u32), - scale_validator_count(__runtime_types::sp_arithmetic::per_things::Percent), - force_no_eras, - force_new_era, - set_invulnerables(Vec<__runtime_types::sp_core::crypto::AccountId32>), - force_unstake(__runtime_types::sp_core::crypto::AccountId32, u32), - force_new_era_always, - cancel_deferred_slash(u32, Vec), - payout_stakers(__runtime_types::sp_core::crypto::AccountId32, u32), - rebond(u128), - set_history_depth(u32, u32), - reap_stash(__runtime_types::sp_core::crypto::AccountId32, u32), - kick( - Vec< - __runtime_types::sp_runtime::multiaddress::MultiAddress< - __runtime_types::sp_core::crypto::AccountId32, - u32, - >, - >, - ), - __Ignore(core::marker::PhantomData<(_0,)>), + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ActiveEraInfo { + pub index: u32, + pub start: Option, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct EraRewardPoints<_0> { pub total: u32, - pub individual: BTreeMap<_0, u32>, - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), - NotController, - NotStash, - AlreadyBonded, - AlreadyPaired, - EmptyTargets, - DuplicateIndex, - InvalidSlashIndex, - InsufficientValue, - NoMoreChunks, - NoUnlockChunk, - FundedTarget, - InvalidEraToReward, - InvalidNumberOfNominations, - NotSortedAndUnique, - AlreadyClaimed, - IncorrectHistoryDepth, - IncorrectSlashingSpans, - BadState, - TooManyTargets, - BadTarget, + pub individual: std::collections::BTreeMap<_0, u32>, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Exposure<_0, _1> { @@ -4655,18 +4888,6 @@ pub mod node_runtime { pub suppressed: bool, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1> { - EraPayout(u32, _0, _0), - Reward(_1, _0), - Slash(_1, _0), - OldSlashingReportDiscarded(u32), - StakingElection, - Bonded(_1, _0), - Unbonded(_1, _0), - Withdrawn(_1, _0), - Kicked(_1, _1), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Releases { V1_0_0Ancient, V2_0_0, @@ -4674,6 +4895,7 @@ pub mod node_runtime { V4_0_0, V5_0_0, V6_0_0, + V7_0_0, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum RewardDestination<_0> { @@ -4712,81 +4934,82 @@ pub mod node_runtime { } pub mod pallet_sudo { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - sudo(std::boxed::Box<__runtime_types::node_runtime::Call>), - sudo_unchecked_weight( - std::boxed::Box<__runtime_types::node_runtime::Call>, - u64, - ), - set_key( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + pub enum Call { + sudo { + call: __runtime_types::node_runtime::Call, + }, + sudo_unchecked_weight { + call: __runtime_types::node_runtime::Call, + _weight: u64, + }, + set_key { + new: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - sudo_as( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + sudo_as { + who: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - std::boxed::Box<__runtime_types::node_runtime::Call>, - ), - __Ignore(core::marker::PhantomData<(_0,)>), + call: __runtime_types::node_runtime::Call, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { RequireSudo, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { Sudid(Result<(), __runtime_types::sp_runtime::DispatchError>), KeyChanged(__runtime_types::sp_core::crypto::AccountId32), SudoAsDone(Result<(), __runtime_types::sp_runtime::DispatchError>), - __Ignore(core::marker::PhantomData<(_0,)>), } } } pub mod pallet_timestamp { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - set(u64), - __Ignore(core::marker::PhantomData<(_0,)>), + pub enum Call { + set { now: u64 }, } } } pub mod pallet_tips { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - report_awesome(Vec, __runtime_types::sp_core::crypto::AccountId32), - retract_tip(__runtime_types::primitive_types::H256), - tip_new(Vec, __runtime_types::sp_core::crypto::AccountId32, u128), - tip(__runtime_types::primitive_types::H256, u128), - close_tip(__runtime_types::primitive_types::H256), - slash_tip(__runtime_types::primitive_types::H256), - __Ignore(core::marker::PhantomData<(_0,)>), - } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<(_0,)>, - __runtime_types::frame_support::Never, - ), + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + report_awesome { + reason: Vec, + who: __runtime_types::sp_core::crypto::AccountId32, + }, + retract_tip { + hash: __runtime_types::primitive_types::H256, + }, + tip_new { + reason: Vec, + who: __runtime_types::sp_core::crypto::AccountId32, + tip_value: u128, + }, + tip { + hash: __runtime_types::primitive_types::H256, + tip_value: u128, + }, + close_tip { + hash: __runtime_types::primitive_types::H256, + }, + slash_tip { + hash: __runtime_types::primitive_types::H256, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { ReasonTooBig, AlreadyKnown, UnknownTip, @@ -4815,42 +5038,99 @@ pub mod node_runtime { } pub mod pallet_transaction_payment { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct ChargeTransactionPayment<_0>(pub u128, pub core::marker::PhantomData<(_0,)>); + pub struct ChargeTransactionPayment(pub u128); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Releases { V1Ancient, V2, } } - pub mod pallet_treasury { + pub mod pallet_transaction_storage { use super::__runtime_types; - use std::collections::BTreeMap; - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0, _1> { - propose_spend( - u128, - __runtime_types::sp_runtime::multiaddress::MultiAddress< - __runtime_types::sp_core::crypto::AccountId32, - u32, - >, - ), - reject_proposal(u32), - approve_proposal(u32), - __Ignore(core::marker::PhantomData<(_0, _1)>), + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + store { + data: Vec, + }, + renew { + block: u32, + index: u32, + }, + check_proof { + proof: + __runtime_types::sp_transaction_storage_proof::TransactionStorageProof, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + InsufficientFunds, + NotConfigured, + RenewedNotFound, + EmptyTransaction, + UnexpectedProof, + InvalidProof, + MissingProof, + MissingStateData, + DoubleCheck, + ProofNotChecked, + TransactionTooLarge, + TooManyTransactions, + BadContext, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Stored(u32), + Renewed(u32), + ProofChecked, + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct DefaultInstance {} - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0, _1> { - __Ignore( - core::marker::PhantomData<(_0, _1)>, - __runtime_types::frame_support::Never, - ), - InsufficientProposersBalance, - InvalidIndex, - TooManyApprovals, + pub struct TransactionInfo { + pub chunk_root: __runtime_types::primitive_types::H256, + pub content_hash: __runtime_types::primitive_types::H256, + pub size: u32, + pub block_chunks: u32, + } + } + pub mod pallet_treasury { + use super::__runtime_types; + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + propose_spend { + value: u128, + beneficiary: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + reject_proposal { + proposal_id: u32, + }, + approve_proposal { + proposal_id: u32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + InsufficientProposersBalance, + InvalidIndex, + TooManyApprovals, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Proposed(u32), + Spending(u128), + Awarded(u32, u128, __runtime_types::sp_core::crypto::AccountId32), + Rejected(u32, u128), + Burnt(u128), + Rollover(u128), + Deposit(u128), + } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Proposal<_0, _1> { @@ -4859,88 +5139,357 @@ pub mod node_runtime { pub beneficiary: _0, pub bond: _1, } - #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum RawEvent<_0, _1, _2> { - Proposed(u32), - Spending(_0), - Awarded(u32, _0, _1), - Rejected(u32, _0), - Burnt(_0), - Rollover(_0), - Deposit(_0), - __Ignore(core::marker::PhantomData<(_2,)>), + } + pub mod pallet_uniques { + use super::__runtime_types; + pub mod pallet { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Call { + create { + class: u32, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + force_create { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + free_holding: bool, + }, + destroy { + class: u32, + witness: __runtime_types::pallet_uniques::types::DestroyWitness, + }, + mint { + class: u32, + instance: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + burn { + class: u32, + instance: u32, + check_owner: Option< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + }, + transfer { + class: u32, + instance: u32, + dest: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + redeposit { + class: u32, + instances: Vec, + }, + freeze { + class: u32, + instance: u32, + }, + thaw { + class: u32, + instance: u32, + }, + freeze_class { + class: u32, + }, + thaw_class { + class: u32, + }, + transfer_ownership { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + set_team { + class: u32, + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + approve_transfer { + class: u32, + instance: u32, + delegate: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + }, + cancel_approval { + class: u32, + instance: u32, + maybe_check_delegate: Option< + __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + >, + }, + force_asset_status { + class: u32, + owner: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + issuer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + admin: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + freezer: __runtime_types::sp_runtime::multiaddress::MultiAddress< + __runtime_types::sp_core::crypto::AccountId32, + u32, + >, + free_holding: bool, + is_frozen: bool, + }, + set_attribute { + class: u32, + maybe_instance: Option, + key: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + value: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + }, + clear_attribute { + class: u32, + maybe_instance: Option, + key: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + }, + set_metadata { + class: u32, + instance: u32, + data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + is_frozen: bool, + }, + clear_metadata { + class: u32, + instance: u32, + }, + set_class_metadata { + class: u32, + data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + is_frozen: bool, + }, + clear_class_metadata { + class: u32, + }, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Error { + NoPermission, + Unknown, + AlreadyExists, + WrongOwner, + BadWitness, + InUse, + Frozen, + WrongDelegate, + NoDelegate, + Unapproved, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum Event { + Created( + u32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + ForceCreated(u32, __runtime_types::sp_core::crypto::AccountId32), + Destroyed(u32), + Issued(u32, u32, __runtime_types::sp_core::crypto::AccountId32), + Transferred( + u32, + u32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + Burned(u32, u32, __runtime_types::sp_core::crypto::AccountId32), + Frozen(u32, u32), + Thawed(u32, u32), + ClassFrozen(u32), + ClassThawed(u32), + OwnerChanged(u32, __runtime_types::sp_core::crypto::AccountId32), + TeamChanged( + u32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + ApprovedTransfer( + u32, + u32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + ApprovalCancelled( + u32, + u32, + __runtime_types::sp_core::crypto::AccountId32, + __runtime_types::sp_core::crypto::AccountId32, + ), + AssetStatusChanged(u32), + ClassMetadataSet( + u32, + __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + bool, + ), + ClassMetadataCleared(u32), + MetadataSet( + u32, + u32, + __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + bool, + ), + MetadataCleared(u32, u32), + Redeposited(u32, Vec), + AttributeSet( + u32, + Option, + __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + ), + AttributeCleared( + u32, + Option, + __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + ), + } + } + pub mod types { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ClassDetails<_0, _1> { + pub owner: _0, + pub issuer: _0, + pub admin: _0, + pub freezer: _0, + pub total_deposit: _1, + pub free_holding: bool, + pub instances: u32, + pub instance_metadatas: u32, + pub attributes: u32, + pub is_frozen: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct ClassMetadata<_0> { + pub deposit: _0, + pub data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + pub is_frozen: bool, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct DestroyWitness { + pub instances: u32, + pub instance_metadatas: u32, + pub attributes: u32, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct InstanceDetails<_0, _1> { + pub owner: _0, + pub approved: Option<_0>, + pub is_frozen: bool, + pub deposit: _1, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct InstanceMetadata<_0> { + pub deposit: _0, + pub data: __runtime_types::frame_support::storage::bounded_vec::BoundedVec, + pub is_frozen: bool, + } } } pub mod pallet_utility { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { - batch(Vec<__runtime_types::node_runtime::Call>), - as_derivative(u16, std::boxed::Box<__runtime_types::node_runtime::Call>), - batch_all(Vec<__runtime_types::node_runtime::Call>), - __Ignore(core::marker::PhantomData<(_0,)>), + pub enum Call { + batch { + calls: Vec<__runtime_types::node_runtime::Call>, + }, + as_derivative { + index: u16, + call: __runtime_types::node_runtime::Call, + }, + batch_all { + calls: Vec<__runtime_types::node_runtime::Call>, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Event { BatchInterrupted(u32, __runtime_types::sp_runtime::DispatchError), BatchCompleted, + ItemCompleted, } } } pub mod pallet_vesting { use super::__runtime_types; - use std::collections::BTreeMap; pub mod pallet { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Call<_0> { + pub enum Call { vest, - vest_other( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + vest_other { + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - ), - vested_transfer( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + }, + vested_transfer { + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::pallet_vesting::VestingInfo, - ), - force_vested_transfer( - __runtime_types::sp_runtime::multiaddress::MultiAddress< + schedule: __runtime_types::pallet_vesting::VestingInfo, + }, + force_vested_transfer { + source: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::sp_runtime::multiaddress::MultiAddress< + target: __runtime_types::sp_runtime::multiaddress::MultiAddress< __runtime_types::sp_core::crypto::AccountId32, u32, >, - __runtime_types::pallet_vesting::VestingInfo, - ), - __Ignore(core::marker::PhantomData<(_0,)>), + schedule: __runtime_types::pallet_vesting::VestingInfo, + }, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Error<_0> { - __Ignore( - core::marker::PhantomData<_0>, - __runtime_types::frame_support::Never, - ), + pub enum Error { NotVesting, ExistingVestingSchedule, AmountLow, } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub enum Event<_0> { + pub enum Event { VestingUpdated(__runtime_types::sp_core::crypto::AccountId32, u128), VestingCompleted(__runtime_types::sp_core::crypto::AccountId32), - __Ignore(core::marker::PhantomData<(_0,)>), } } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -4952,22 +5501,18 @@ pub mod node_runtime { } pub mod primitive_types { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct H256(pub [u8; 32usize]); } pub mod sp_arithmetic { use super::__runtime_types; - use std::collections::BTreeMap; pub mod fixed_point { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct FixedU128(pub u128); } pub mod per_things { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct PerU16(pub u16); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -4982,26 +5527,21 @@ pub mod node_runtime { } pub mod sp_authority_discovery { use super::__runtime_types; - use std::collections::BTreeMap; pub mod app { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub __runtime_types::sp_core::sr25519::Public); } } pub mod sp_consensus_babe { use super::__runtime_types; - use std::collections::BTreeMap; pub mod app { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub __runtime_types::sp_core::sr25519::Public); } pub mod digests { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum NextConfigDescriptor { V1 { @@ -5024,7 +5564,6 @@ pub mod node_runtime { } pub mod sp_consensus_slots { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct EquivocationProof<_0, _1> { pub offender: _1, @@ -5037,10 +5576,8 @@ pub mod node_runtime { } pub mod sp_core { use super::__runtime_types; - use std::collections::BTreeMap; pub mod changes_trie { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct ChangesTrieConfiguration { pub digest_interval: u32, @@ -5049,7 +5586,6 @@ pub mod node_runtime { } pub mod crypto { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct AccountId32(pub [u8; 32usize]); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -5057,7 +5593,6 @@ pub mod node_runtime { } pub mod ed25519 { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub [u8; 32usize]); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -5065,7 +5600,6 @@ pub mod node_runtime { } pub mod offchain { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct OpaqueMultiaddr(pub Vec); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -5077,7 +5611,6 @@ pub mod node_runtime { } pub mod sr25519 { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub [u8; 32usize]); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -5090,10 +5623,8 @@ pub mod node_runtime { } pub mod sp_finality_grandpa { use super::__runtime_types; - use std::collections::BTreeMap; pub mod app { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Public(pub __runtime_types::sp_core::ed25519::Public); #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] @@ -5124,7 +5655,6 @@ pub mod node_runtime { } pub mod sp_npos_elections { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct Support<_0> { pub total: u128, @@ -5133,13 +5663,10 @@ pub mod node_runtime { } pub mod sp_runtime { use super::__runtime_types; - use std::collections::BTreeMap; pub mod generic { use super::__runtime_types; - use std::collections::BTreeMap; pub mod digest { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum ChangesTrieSignal { NewConfiguration( @@ -5166,23 +5693,287 @@ pub mod node_runtime { } pub mod era { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum Era { Immortal, - Mortal(u64, u64), + Mortal1(u8), + Mortal2(u8), + Mortal3(u8), + Mortal4(u8), + Mortal5(u8), + Mortal6(u8), + Mortal7(u8), + Mortal8(u8), + Mortal9(u8), + Mortal10(u8), + Mortal11(u8), + Mortal12(u8), + Mortal13(u8), + Mortal14(u8), + Mortal15(u8), + Mortal16(u8), + Mortal17(u8), + Mortal18(u8), + Mortal19(u8), + Mortal20(u8), + Mortal21(u8), + Mortal22(u8), + Mortal23(u8), + Mortal24(u8), + Mortal25(u8), + Mortal26(u8), + Mortal27(u8), + Mortal28(u8), + Mortal29(u8), + Mortal30(u8), + Mortal31(u8), + Mortal32(u8), + Mortal33(u8), + Mortal34(u8), + Mortal35(u8), + Mortal36(u8), + Mortal37(u8), + Mortal38(u8), + Mortal39(u8), + Mortal40(u8), + Mortal41(u8), + Mortal42(u8), + Mortal43(u8), + Mortal44(u8), + Mortal45(u8), + Mortal46(u8), + Mortal47(u8), + Mortal48(u8), + Mortal49(u8), + Mortal50(u8), + Mortal51(u8), + Mortal52(u8), + Mortal53(u8), + Mortal54(u8), + Mortal55(u8), + Mortal56(u8), + Mortal57(u8), + Mortal58(u8), + Mortal59(u8), + Mortal60(u8), + Mortal61(u8), + Mortal62(u8), + Mortal63(u8), + Mortal64(u8), + Mortal65(u8), + Mortal66(u8), + Mortal67(u8), + Mortal68(u8), + Mortal69(u8), + Mortal70(u8), + Mortal71(u8), + Mortal72(u8), + Mortal73(u8), + Mortal74(u8), + Mortal75(u8), + Mortal76(u8), + Mortal77(u8), + Mortal78(u8), + Mortal79(u8), + Mortal80(u8), + Mortal81(u8), + Mortal82(u8), + Mortal83(u8), + Mortal84(u8), + Mortal85(u8), + Mortal86(u8), + Mortal87(u8), + Mortal88(u8), + Mortal89(u8), + Mortal90(u8), + Mortal91(u8), + Mortal92(u8), + Mortal93(u8), + Mortal94(u8), + Mortal95(u8), + Mortal96(u8), + Mortal97(u8), + Mortal98(u8), + Mortal99(u8), + Mortal100(u8), + Mortal101(u8), + Mortal102(u8), + Mortal103(u8), + Mortal104(u8), + Mortal105(u8), + Mortal106(u8), + Mortal107(u8), + Mortal108(u8), + Mortal109(u8), + Mortal110(u8), + Mortal111(u8), + Mortal112(u8), + Mortal113(u8), + Mortal114(u8), + Mortal115(u8), + Mortal116(u8), + Mortal117(u8), + Mortal118(u8), + Mortal119(u8), + Mortal120(u8), + Mortal121(u8), + Mortal122(u8), + Mortal123(u8), + Mortal124(u8), + Mortal125(u8), + Mortal126(u8), + Mortal127(u8), + Mortal128(u8), + Mortal129(u8), + Mortal130(u8), + Mortal131(u8), + Mortal132(u8), + Mortal133(u8), + Mortal134(u8), + Mortal135(u8), + Mortal136(u8), + Mortal137(u8), + Mortal138(u8), + Mortal139(u8), + Mortal140(u8), + Mortal141(u8), + Mortal142(u8), + Mortal143(u8), + Mortal144(u8), + Mortal145(u8), + Mortal146(u8), + Mortal147(u8), + Mortal148(u8), + Mortal149(u8), + Mortal150(u8), + Mortal151(u8), + Mortal152(u8), + Mortal153(u8), + Mortal154(u8), + Mortal155(u8), + Mortal156(u8), + Mortal157(u8), + Mortal158(u8), + Mortal159(u8), + Mortal160(u8), + Mortal161(u8), + Mortal162(u8), + Mortal163(u8), + Mortal164(u8), + Mortal165(u8), + Mortal166(u8), + Mortal167(u8), + Mortal168(u8), + Mortal169(u8), + Mortal170(u8), + Mortal171(u8), + Mortal172(u8), + Mortal173(u8), + Mortal174(u8), + Mortal175(u8), + Mortal176(u8), + Mortal177(u8), + Mortal178(u8), + Mortal179(u8), + Mortal180(u8), + Mortal181(u8), + Mortal182(u8), + Mortal183(u8), + Mortal184(u8), + Mortal185(u8), + Mortal186(u8), + Mortal187(u8), + Mortal188(u8), + Mortal189(u8), + Mortal190(u8), + Mortal191(u8), + Mortal192(u8), + Mortal193(u8), + Mortal194(u8), + Mortal195(u8), + Mortal196(u8), + Mortal197(u8), + Mortal198(u8), + Mortal199(u8), + Mortal200(u8), + Mortal201(u8), + Mortal202(u8), + Mortal203(u8), + Mortal204(u8), + Mortal205(u8), + Mortal206(u8), + Mortal207(u8), + Mortal208(u8), + Mortal209(u8), + Mortal210(u8), + Mortal211(u8), + Mortal212(u8), + Mortal213(u8), + Mortal214(u8), + Mortal215(u8), + Mortal216(u8), + Mortal217(u8), + Mortal218(u8), + Mortal219(u8), + Mortal220(u8), + Mortal221(u8), + Mortal222(u8), + Mortal223(u8), + Mortal224(u8), + Mortal225(u8), + Mortal226(u8), + Mortal227(u8), + Mortal228(u8), + Mortal229(u8), + Mortal230(u8), + Mortal231(u8), + Mortal232(u8), + Mortal233(u8), + Mortal234(u8), + Mortal235(u8), + Mortal236(u8), + Mortal237(u8), + Mortal238(u8), + Mortal239(u8), + Mortal240(u8), + Mortal241(u8), + Mortal242(u8), + Mortal243(u8), + Mortal244(u8), + Mortal245(u8), + Mortal246(u8), + Mortal247(u8), + Mortal248(u8), + Mortal249(u8), + Mortal250(u8), + Mortal251(u8), + Mortal252(u8), + Mortal253(u8), + Mortal254(u8), + Mortal255(u8), } } pub mod header { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] - pub struct Header {} + pub struct Header { + pub parent_hash: __runtime_types::primitive_types::H256, + pub number: u32, + pub state_root: __runtime_types::primitive_types::H256, + pub extrinsics_root: __runtime_types::primitive_types::H256, + pub digest: __runtime_types::sp_runtime::generic::digest::Digest< + __runtime_types::primitive_types::H256, + >, + } + } + pub mod unchecked_extrinsic { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct UncheckedExtrinsic(Vec); } } pub mod multiaddress { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum MultiAddress<_0, _1> { Id(_0), @@ -5194,11 +5985,16 @@ pub mod node_runtime { } pub mod traits { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct BlakeTwo256 {} } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub enum ArithmeticError { + Underflow, + Overflow, + DivisionByZero, + } + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum DispatchError { Other, CannotLookup, @@ -5207,6 +6003,7 @@ pub mod node_runtime { ConsumerRemaining, NoProviders, Token(__runtime_types::sp_runtime::TokenError), + Arithmetic(__runtime_types::sp_runtime::ArithmeticError), } #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub enum TokenError { @@ -5216,13 +6013,11 @@ pub mod node_runtime { CannotCreate, UnknownAsset, Frozen, - Underflow, - Overflow, + Unsupported, } } pub mod sp_session { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct MembershipProof { pub session: u32, @@ -5232,10 +6027,8 @@ pub mod node_runtime { } pub mod sp_staking { use super::__runtime_types; - use std::collections::BTreeMap; pub mod offence { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct OffenceDetails<_0, _1> { pub offender: _1, @@ -5243,9 +6036,16 @@ pub mod node_runtime { } } } + pub mod sp_transaction_storage_proof { + use super::__runtime_types; + #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] + pub struct TransactionStorageProof { + pub chunk: Vec, + pub proof: Vec>, + } + } pub mod sp_version { use super::__runtime_types; - use std::collections::BTreeMap; #[derive(Debug, :: codec :: Encode, :: codec :: Decode)] pub struct RuntimeVersion { pub spec_name: String,