From bc636ed200b5db85406a7a7cbcfbe670de5366ed Mon Sep 17 00:00:00 2001 From: thiolliere Date: Tue, 19 Feb 2019 13:44:59 +0100 Subject: [PATCH 1/3] fix amoun associated + trait + improve serde bound --- node-template/runtime/src/lib.rs | 1 - node/runtime/src/lib.rs | 1 - srml/balances/src/lib.rs | 8 ++- srml/contract/src/tests.rs | 1 - srml/council/src/seats.rs | 4 +- srml/democracy/src/lib.rs | 6 +-- srml/executive/src/lib.rs | 1 - srml/fees/src/lib.rs | 27 +++++----- srml/fees/src/mock.rs | 9 ++-- srml/staking/src/lib.rs | 6 +-- .../procedural/src/storage/transformation.rs | 14 ++--- srml/support/procedural/tools/src/syn_ext.rs | 54 ------------------- srml/support/src/traits.rs | 6 ++- srml/treasury/src/lib.rs | 8 +-- 14 files changed, 47 insertions(+), 99 deletions(-) diff --git a/node-template/runtime/src/lib.rs b/node-template/runtime/src/lib.rs index 39a18593f1e00..7c68046707274 100644 --- a/node-template/runtime/src/lib.rs +++ b/node-template/runtime/src/lib.rs @@ -165,7 +165,6 @@ impl balances::Trait for Runtime { } impl fees::Trait for Runtime { - type Amount = u128; type TransferAsset = Balances; type Event = Event; } diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 89f3a58030fa1..298cccfe9d00a 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -109,7 +109,6 @@ impl balances::Trait for Runtime { impl fees::Trait for Runtime { type Event = Event; - type Amount = Balance; type TransferAsset = Balances; } diff --git a/srml/balances/src/lib.rs b/srml/balances/src/lib.rs index 554f92e868d62..60fb5f6c00736 100644 --- a/srml/balances/src/lib.rs +++ b/srml/balances/src/lib.rs @@ -29,7 +29,7 @@ use rstd::{cmp, result}; use parity_codec::Codec; use parity_codec_derive::{Encode, Decode}; use srml_support::{StorageValue, StorageMap, Parameter, decl_event, decl_storage, decl_module, ensure}; -use srml_support::traits::{UpdateBalanceOutcome, Currency, EnsureAccountLiquid, OnFreeBalanceZero}; +use srml_support::traits::{UpdateBalanceOutcome, Currency, EnsureAccountLiquid, OnFreeBalanceZero, ArithmeticType}; use srml_support::dispatch::Result; use primitives::traits::{Zero, SimpleArithmetic, As, StaticLookup, Member, CheckedAdd, CheckedSub, MaybeSerializeDebug, TransferAsset}; @@ -40,7 +40,7 @@ mod tests; pub trait Trait: system::Trait { /// The balance of an account. - type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As + As; + type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As + As + MaybeSerializeDebug; /// A function which is invoked when the free-balance has fallen below the existential deposit and /// has been reduced to zero. @@ -58,6 +58,10 @@ pub trait Trait: system::Trait { type Event: From> + Into<::Event>; } +impl ArithmeticType for Module { + type Type = ::Balance; +} + decl_event!( pub enum Event where ::AccountId, diff --git a/srml/contract/src/tests.rs b/srml/contract/src/tests.rs index 6febc2dec475b..b49cbdcbaf1af 100644 --- a/srml/contract/src/tests.rs +++ b/srml/contract/src/tests.rs @@ -91,7 +91,6 @@ impl consensus::Trait for Test { } impl fees::Trait for Test { type Event = MetaEvent; - type Amount = u64; type TransferAsset = Balances; } impl Trait for Test { diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index 6fd4f1cfec001..27a22bbf47133 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -77,11 +77,11 @@ use system::{self, ensure_signed}; // after each vote as all but K entries are cleared. newly registering candidates must use cleared // entries before they increase the capacity. -use srml_support::decl_module; +use srml_support::{decl_module, traits::ArithmeticType}; pub type VoteIndex = u32; -type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; +type BalanceOf = <::Currency as ArithmeticType>::Type; pub trait Trait: democracy::Trait { type Event: From> + Into<::Event>; diff --git a/srml/democracy/src/lib.rs b/srml/democracy/src/lib.rs index 5045a0ca3d8b3..539aa4227b001 100644 --- a/srml/democracy/src/lib.rs +++ b/srml/democracy/src/lib.rs @@ -24,7 +24,7 @@ use primitives::traits::{Zero, As}; use parity_codec_derive::{Encode, Decode}; use srml_support::{StorageValue, StorageMap, Parameter, Dispatchable, IsSubType}; use srml_support::{decl_module, decl_storage, decl_event, ensure}; -use srml_support::traits::{Currency, OnFreeBalanceZero, EnsureAccountLiquid}; +use srml_support::traits::{Currency, OnFreeBalanceZero, EnsureAccountLiquid, ArithmeticType}; use srml_support::dispatch::Result; use system::ensure_signed; @@ -65,10 +65,10 @@ impl Vote { } } -type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; +type BalanceOf = <::Currency as ArithmeticType>::Type; pub trait Trait: system::Trait + Sized { - type Currency: Currency<::AccountId>; + type Currency: ArithmeticType + Currency<::AccountId, Balance=BalanceOf>; type Proposal: Parameter + Dispatchable + IsSubType>; diff --git a/srml/executive/src/lib.rs b/srml/executive/src/lib.rs index dfc369174fefe..1638bc6e62528 100644 --- a/srml/executive/src/lib.rs +++ b/srml/executive/src/lib.rs @@ -324,7 +324,6 @@ mod tests { } impl fees::Trait for Runtime { type Event = MetaEvent; - type Amount = u64; type TransferAsset = balances::Module; } diff --git a/srml/fees/src/lib.rs b/srml/fees/src/lib.rs index a86ea68cdb46e..d6809bac30de4 100644 --- a/srml/fees/src/lib.rs +++ b/srml/fees/src/lib.rs @@ -19,9 +19,9 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] -use srml_support::{dispatch::Result, Parameter, StorageMap, decl_event, decl_storage, decl_module}; +use srml_support::{dispatch::Result, traits::ArithmeticType, StorageMap, decl_event, decl_storage, decl_module}; use runtime_primitives::traits::{ - As, Member, SimpleArithmetic, ChargeBytesFee, ChargeFee, + As, ChargeBytesFee, ChargeFee, TransferAsset, CheckedAdd, CheckedSub, CheckedMul, Zero }; use system; @@ -29,15 +29,14 @@ use system; mod mock; mod tests; +type AssetOf = <::TransferAsset as ArithmeticType>::Type; + pub trait Trait: system::Trait { /// The overarching event type. type Event: From> + Into<::Event>; - /// The unit for fee amount - type Amount: Member + Parameter + SimpleArithmetic + Default + Copy + As; - /// A function does the asset transfer between accounts - type TransferAsset: TransferAsset; + type TransferAsset: ArithmeticType + TransferAsset>; } decl_module! { @@ -58,7 +57,7 @@ decl_module! { } decl_event!( - pub enum Event where ::Amount { + pub enum Event where Amount = AssetOf { /// Fee charged (extrinsic_index, fee_amount) Charged(u32, Amount), } @@ -67,22 +66,22 @@ decl_event!( decl_storage! { trait Store for Module as Fees { /// The fee to be paid for making a transaction; the base. - pub TransactionBaseFee get(transaction_base_fee) config(): T::Amount; + pub TransactionBaseFee get(transaction_base_fee) config(): AssetOf; /// The fee to be paid for making a transaction; the per-byte portion. - pub TransactionByteFee get(transaction_byte_fee) config(): T::Amount; + pub TransactionByteFee get(transaction_byte_fee) config(): AssetOf; /// The `extrinsic_index => accumulated_fees` map, containing records to /// track the overall charged fees for each transaction. /// /// All records should be removed at finalise stage. - CurrentTransactionFee get(current_transaction_fee): map u32 => T::Amount; + CurrentTransactionFee get(current_transaction_fee): map u32 => AssetOf; } } impl ChargeBytesFee for Module { fn charge_base_bytes_fee(transactor: &T::AccountId, encoded_len: usize) -> Result { let bytes_fee = Self::transaction_byte_fee().checked_mul( - &>::sa(encoded_len as u64) + & as As>::sa(encoded_len as u64) ).ok_or_else(|| "bytes fee overflow")?; let overall = Self::transaction_base_fee().checked_add(&bytes_fee).ok_or_else(|| "bytes fee overflow")?; Self::charge_fee(transactor, overall) @@ -90,9 +89,9 @@ impl ChargeBytesFee for Module { } impl ChargeFee for Module { - type Amount = T::Amount; + type Amount = AssetOf; - fn charge_fee(transactor: &T::AccountId, amount: T::Amount) -> Result { + fn charge_fee(transactor: &T::AccountId, amount: AssetOf) -> Result { let extrinsic_index = >::extrinsic_index().ok_or_else(|| "no extrinsic index found")?; let current_fee = Self::current_transaction_fee(extrinsic_index); let new_fee = current_fee.checked_add(&amount).ok_or_else(|| "fee got overflow after charge")?; @@ -103,7 +102,7 @@ impl ChargeFee for Module { Ok(()) } - fn refund_fee(transactor: &T::AccountId, amount: T::Amount) -> Result { + fn refund_fee(transactor: &T::AccountId, amount: AssetOf) -> Result { let extrinsic_index = >::extrinsic_index().ok_or_else(|| "no extrinsic index found")?; let current_fee = Self::current_transaction_fee(extrinsic_index); let new_fee = current_fee.checked_sub(&amount).ok_or_else(|| "fee got underflow after refund")?; diff --git a/srml/fees/src/mock.rs b/srml/fees/src/mock.rs index 46058e192182b..dd93335eef064 100644 --- a/srml/fees/src/mock.rs +++ b/srml/fees/src/mock.rs @@ -25,7 +25,7 @@ use runtime_primitives::{ }; use primitives::{H256, Blake2Hasher}; use runtime_io; -use srml_support::{impl_outer_origin, impl_outer_event}; +use srml_support::{impl_outer_origin, impl_outer_event, traits::ArithmeticType}; use crate::{GenesisConfig, Module, Trait, system}; impl_outer_origin!{ @@ -52,6 +52,10 @@ impl TransferAsset for TransferAssetMock { fn add_to(_: &AccountId, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } } +impl ArithmeticType for TransferAssetMock { + type Type = u64; +} + // Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted. #[derive(Clone, PartialEq, Eq, Debug)] pub struct Test; @@ -69,8 +73,7 @@ impl system::Trait for Test { type Log = DigestItem; } impl Trait for Test { - type Amount = u64; - type Event =TestEvent; + type Event = TestEvent; type TransferAsset = TransferAssetMock; } diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index b22190eae364a..34fa4f036c838 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -25,7 +25,7 @@ use parity_codec::HasCompact; use parity_codec_derive::{Encode, Decode}; use srml_support::{Parameter, StorageValue, StorageMap, dispatch::Result}; use srml_support::{decl_module, decl_event, decl_storage, ensure}; -use srml_support::traits::{Currency, OnDilution, EnsureAccountLiquid, OnFreeBalanceZero}; +use srml_support::traits::{Currency, OnDilution, EnsureAccountLiquid, OnFreeBalanceZero, ArithmeticType}; use session::OnSessionChange; use primitives::Perbill; use primitives::traits::{Zero, One, Bounded, As, StaticLookup}; @@ -67,11 +67,11 @@ impl Default for ValidatorPrefs { } } -type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; +type BalanceOf = <::Currency as ArithmeticType>::Type; pub trait Trait: system::Trait + session::Trait { /// The staking balance. - type Currency: Currency; + type Currency: ArithmeticType + Currency>; /// Some tokens minted. type OnRewardMinted: OnDilution>; diff --git a/srml/support/procedural/src/storage/transformation.rs b/srml/support/procedural/src/storage/transformation.rs index 736d39cae7bb2..f5eefb7844b5c 100644 --- a/srml/support/procedural/src/storage/transformation.rs +++ b/srml/support/procedural/src/storage/transformation.rs @@ -192,13 +192,10 @@ fn decl_store_extra_genesis( is_trait_needed = true; has_trait_field = true; } - for t in ext::get_non_bound_serde_derive_types(type_infos.value_type, &traitinstance) { - serde_complete_bound.insert(t); - } + + serde_complete_bound.insert(type_infos.value_type); if let DeclStorageTypeInfosKind::Map { key_type, .. } = type_infos.kind { - for t in ext::get_non_bound_serde_derive_types(key_type, &traitinstance) { - serde_complete_bound.insert(t); - } + serde_complete_bound.insert(key_type); } let storage_type = type_infos.typ.clone(); config_field.extend(match type_infos.kind { @@ -285,9 +282,7 @@ fn decl_store_extra_genesis( has_trait_field = true; } - for t in ext::get_non_bound_serde_derive_types(extra_type, &traitinstance).into_iter() { - serde_complete_bound.insert(t); - } + serde_complete_bound.insert(extra_type); let extrafield = &extra_field.content; genesis_extrafields.extend(quote!{ @@ -315,6 +310,7 @@ fn decl_store_extra_genesis( let serde_bug_bound = if !serde_complete_bound.is_empty() { let mut b_ser = String::new(); let mut b_dser = String::new(); + // panic!("{:#?}", serde_complete_bound); serde_complete_bound.into_iter().for_each(|bound| { let stype = quote!(#bound); b_ser.push_str(&format!("{} : {}::serde::Serialize, ", stype, scrate)); diff --git a/srml/support/procedural/tools/src/syn_ext.rs b/srml/support/procedural/tools/src/syn_ext.rs index 0ea403a6520a8..74233b2d0ba64 100644 --- a/srml/support/procedural/tools/src/syn_ext.rs +++ b/srml/support/procedural/tools/src/syn_ext.rs @@ -327,57 +327,3 @@ pub fn has_parametric_type_def(typ: &syn::Type, ident: &Ident, default: bool) -> pub fn has_parametric_type(typ: &syn::Type, ident: &Ident) -> bool { has_parametric_type_def(typ, ident, true) } - -/// Get case where serde does not include bound with serde_derive macros: -/// see https://github.com/serde-rs/serde/issues/1454 -pub fn get_non_bound_serde_derive_types(typ: &syn::Type, t: &syn::Ident) -> Vec { - let mut result = Vec::new(); - get_non_bound_serde_derive_types_inner(typ, t, &mut result); - result -} - -fn get_non_bound_serde_derive_types_inner(typ: &syn::Type, t: &syn::Ident, result: &mut Vec) { - match *typ { - syn::Type::Path(ref path) => { - if heuristic_is_associated_path(&path.path,t) { - result.push(typ.clone()); - } - for p in path.path.segments.iter() { - if let syn::PathArguments::AngleBracketed(ref args) = p.arguments { - for a in args.args.iter() { - if let syn::GenericArgument::Type(ref ty) = a { - get_non_bound_serde_derive_types_inner(ty, t, result) - } - } - } - } - }, - syn::Type::Slice(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::Array(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::Ptr(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::Reference(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::BareFn(..) => (), - syn::Type::Never(..) => (), - syn::Type::Tuple(ref inner) => for e in inner.elems.iter() { - get_non_bound_serde_derive_types_inner(e, t, result) - }, - syn::Type::TraitObject(..) => (), - syn::Type::ImplTrait(..) => (), - syn::Type::Paren(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::Group(ref inner) => get_non_bound_serde_derive_types_inner(&inner.elem, t, result), - syn::Type::Infer(..) => (), - syn::Type::Macro(..) => (), - syn::Type::Verbatim(..) => (), - } - -} - -fn heuristic_is_associated_path(path: &syn::Path,t: &syn::Ident) -> bool { - - if let Some(syn::punctuated::Pair::Punctuated(s,_)) = path.segments.first() { - &s.ident == t - } else { - false - } - -} diff --git a/srml/support/src/traits.rs b/srml/support/src/traits.rs index 416ed4e959c41..873f61e9611b7 100644 --- a/srml/support/src/traits.rs +++ b/srml/support/src/traits.rs @@ -79,10 +79,14 @@ pub enum UpdateBalanceOutcome { AccountKilled, } +pub trait ArithmeticType { + type Type: SimpleArithmetic + As + As + Codec + Copy + MaybeSerializeDebug + Default; +} + /// Abstraction over a fungible assets system. pub trait Currency { /// The balance of an account. - type Balance: SimpleArithmetic + As + As + Codec + Copy + MaybeSerializeDebug + Default; + type Balance; // PUBLIC IMMUTABLES diff --git a/srml/treasury/src/lib.rs b/srml/treasury/src/lib.rs index ad861ac7ece83..4a8913bc4d9bb 100644 --- a/srml/treasury/src/lib.rs +++ b/srml/treasury/src/lib.rs @@ -22,12 +22,12 @@ use serde_derive::{Serialize, Deserialize}; use rstd::prelude::*; use srml_support::{StorageValue, StorageMap, decl_module, decl_storage, decl_event, ensure}; -use srml_support::traits::{Currency, OnDilution}; +use srml_support::traits::{Currency, OnDilution, ArithmeticType}; use runtime_primitives::{Permill, traits::{Zero, EnsureOrigin, StaticLookup}}; use parity_codec_derive::{Encode, Decode}; use system::ensure_signed; -type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; +type BalanceOf = <::Currency as ArithmeticType>::Type; /// Our module's configuration trait. All our types and consts go in here. If the /// module is dependent on specific other modules, then their configuration traits @@ -36,7 +36,7 @@ type BalanceOf = <::Currency as Currency<::Ac /// `system::Trait` should always be included in our implied traits. pub trait Trait: system::Trait { /// The staking balance. - type Currency: Currency; + type Currency: ArithmeticType + Currency>; /// Origin from which approvals must come. type ApproveOrigin: EnsureOrigin; @@ -172,7 +172,7 @@ decl_storage! { decl_event!( pub enum Event where - Balance = <::Currency as Currency<::AccountId>>::Balance, + Balance = BalanceOf, ::AccountId { /// New proposal. From fd7558fddff1626085b38d7d5d776d1bb62dfdb7 Mon Sep 17 00:00:00 2001 From: thiolliere Date: Tue, 19 Feb 2019 14:06:12 +0100 Subject: [PATCH 2/3] runtime --- .../substrate_test_runtime.compact.wasm | Bin 56872 -> 56887 bytes node/runtime/src/lib.rs | 4 ++-- .../release/node_runtime.compact.wasm | Bin 822578 -> 822694 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 23239e917eabf85bb24340d0747d52bad15d2723..8bd317e605a271cded36c515e80948ed531a7eda 100644 GIT binary patch delta 2960 zcmb7FYit$A72erJAbrT#E!)3`Jh(3OHMImQqJZh4tUc|?#JwWw(oMI|Z)NJGjY1|YBvtS_nVTk%Y#|PZNPXtO zzCIy)n_vxunc^E_UeQ!uP+wb@^`C!N#c5$Uv+Tcdc)WBm>4aUSb0&BFIEpT0 zk4HP}v$j6L5@{iPT&m>_U|zZyPm0zaOh?BPM7l%>XH;yPo^xjh8saNjX8kSv?UGd@ z`DYk=dJZ8yP_?X{>%l)%27(9 zhBjDTXh4hMXLXh6ezNXh8rcIatN%o%LEUrtwf8YwUF?V@#YMyrC!tH*-iHTv#2%ir z6ZKJD)=(r!DBK?v1_djFPDIUM_`!2a;60<#T!mw zCZ`)>B!6%xR;|#=$aRbu-v0itMYP`CG>;TRchhXNzunYBCjB&(TN~CIWt)@A7LK&! z<&GwYgiuq2=z|+A4BfI`xh}Gfl-tmV+c%3G62Dm_OsEVgl^U%T)5X6;Q|bIaqeq>ESvyu^ptfa`VBd~~S@$DG zM=c+OYdh{?+;eYcM-961qqCF7L?367;W0q>t`@YKv-{tXRmTzj|Dm)JF4y>GMp;U&Niy{@4Ag;hA;+lf`@=-k${XTzN^mg6I+a7#djB@H6#Mf|T z;+h_(!o)H9CXAo{E&5#}dKvA0b(;|ooWz1SK{+N#L0-?L&pf~ z@Hz5(G(KHO1s+u>aUs>8C~)-K2lapWXu{Y3$+Mt_l);l{R#J&^)zvlAHe^>em;?vU z%%Y4NisX2T&Q+aBiUdPvnkO(@wQWx}99NbU&SA~javDgQF8KjB9feD>A;C}1)>1{+ zCGMM=;n+4eJrC}kZKS#>yMY>*uBin9^Htb*ZV}bofJwT|ICErS4B~=NrZIp#5fkUeMTDUA<1$OwN5z<%Z`87dDv-l564O zg;IF`0;Otzy>~TPlQ?$*--Nq^wbb{08SB+0PjfY&IZ$_TMM7q>u9{r-Fk8jc{BkHg z_bBCoiKcGg;&e@0mqEN#GeK81S&?}lYdV+I0O~Jw<=S4v32dLK;Dr33N{77{3Ja^N z{U*2B^RZvPfhDMFV5^4hF;9j1%MH0WAQl8h#1hVA+hEI~?M4CIxjZX3(0oIS_@!y4 zt{SdXfz8jGh$l&o&updzHs`vmGA(@K$_IohnjtF;r>L2}%?urKt{$a0KqgC)=W>pe z(HLC5x+%eYm-|kDGHc delta 2981 zcmb7FdvF!i89%%CCM3Cu>P4Rpvw+ae+fk66i-`PEQDAIE%vaeBq6~att6iQ&D@THs>AyEO|5SHfmzSvJ|Ibht2iq ze!Tg$93c%ID?b$OhUSMRHC@9VxY!*@hzkT=EJ2s+8O>@}>mFjFn;?tO%08k+p! z*-wP!w@t91YNS+Vf0Gd|{yyB5Jzp?;I9aIKx)Kwm7ni_`Tjv#A3mF}bd;l(P{X6D8 z{ah>@(B&82D;bl0Tv8a_2I$+?fmSoO|0}fWSXlxMJ5DBUTPA~$tGsGAU#T+hn;z~ppSK!-cJK^KqX6~g7L4xX+o-VB3g``X5 zC!*4WVK+CcPlwvVtTqkD_9|H2r+c57-JKbcF`BFzLynRV8H}=l+d~l(spRN32d}!?d2sxueF=*fWX#uhA%PLMG*967&d|p$r}KZe@6` zXY*b7HOW7CALdzdFoH)9mi4ycnd|SZtlyW(iDx)W$ub$kXjo)Iuw-&cda zw9l&V&3Iv+&@22Dj5dj3P%gs~@XTd9ghPD{6W{2o7H9Wo-0)b3Zg+Bb%sJ1td+(tG z^(VhTro`LFgc11o?ZvTz1i>;ikw^tF@9;}P51c(*hv)C#habTY;;JK4@cGn{4fy=) zk$do2)*p5@zrU)eh%7jN?y zR33deSbtO$<5|U=C)?LO_C$x}c(C)>7LgDrIo|qz7pFnr@f3VzU>;NrOoz<_b-~XE z@Sk!0#MkroAoF6~Q3A~;>&-_9Axi{8au6>OiF_Hc4KdWWWc9uvks^G50I?kLLPR3- z;g=_uZ<>ozHEPa?5?O$_3~#K8OhA3@7=0Km)W3pu_+PnYzc#DyMf*yWGm#OW#ycPH ziBXA67^82)igIu3H{EjBmR+bthp~a)$m%zseil0Z6tNKT0Ad93B4Qlz8sa3xKVp^P zC`b6_;`=>^5y*IgbKZ7$Q&9fBO)iuqrd{47|U_(u%uBYGt9I6_M<+zGI?W^;;ID@N0(_v&-l2q4s zO&1+)Q}(G!;kQFfvN*FX><_2xP+N6j>Tu(D*|uy~_YB#>xhoE|4fDx3a-A~fGoQbR-aiW;kJ3Y zX)xEZ98J?1ymO{e(y6Lgp6MD)Ru$jyAbz%SyytVw=P0^jQ`fO!&Dq{!$MGztP{o&h zS2cWhHiwso%F7!Xyf&xZ^%@%1a;~Wsvcp!fIh0_{xl}Q?OxL!V=_{1mx~kA6u=8>m z{Ow##v8DK)f)jRhN-f+KxekU0ODA9?!*VspFd1^d(_PyOTF$>ENSftx$5&h~o17Yk z4CNONN}BJOHZ>T>QCb|E`rU=Dxa@kWZu_RG*ovxZv;n3@rojsrS4fV^LdH?sMt*3H z8T{$u1&mBNGqHbLF;r8vmEhdv7BTMoI7S`$<5ENSxbrnw8ZCvU57tYRBXJp1eQJ0( z3LW16V6Mbi mL2B8WrTTuj7kKy__|=t1CmNQgtJGpFp-|bJMU`2U)%_P_kV$#~ diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 298cccfe9d00a..9ea9f86998e5e 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -60,8 +60,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 29, - impl_version: 30, + spec_version: 30, + impl_version: 31, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index b6ff057716ca4196181b2e7c1a221188c6837854..5dcfa9bf01188bd1dad196f8a72ab741fc6b96d1 100644 GIT binary patch delta 66518 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 P_thZWBNT0fVh;I#K{;S~ delta 66302 zcmeFa1$b3Q&@g;=_t=#r7Xl<91nv!%1b1!W;H6jv3N6Ko7l%@zl!W5$6FkA8xE-KK za3?q^PH~qY0RnupN0J)~yzTdY|MNfp^L+5Yp7q(;+1Z)d*}e0o7GF7~`0{Ryxh4Pc zJz3}R7g)7|lAnZsLUV}vA4!k|K_d9ijAI};BoR}DFx&WgLYwich0yVbg~E<8x3=4y z{cP%(TjLe6VS!Q9UA1eEHqBf9(5rpd9vymhXw%a+nr7D1+Wge!yB~VBY2K<+*YCc! zje+iMT|v|~X?(nxg#i52-j$QurUSHhg;Cp#@lV9uWajt~DHoYNzMK?F=D~`Nu0q5H z-M@F`p|*wN7fRlKi)dE$haN4}ZXKHU?9{ba^VS&Y)uC$_+aJ_Ej1rqloWn@&!So@S zNQck|IV z@`|h=$H^)>i|nECB#z7^Ysd^TolGO^NI#9NC9B9vvV$a%8}v54PH)lgJ8N_ueM6$@ zYtpTI*A()cJR|GrZE}a)A{*!pa+6#qf6^snIr)QZq%TP-c|kVO$z%$NC7bCsvYl)t zTj&b9k}jtS^ly5ZUZPv+NpgyuAlv9YdY|5<+v!nqj1)XVcF>)47u`({(`d4f-l2!+ z6Z)7Y(?|3neL#n^5o{zI#YQv7n^lkHS?i((GN;q#v3ZDxx(6|*jNk47%;{%S9}V7S zQ^VbY&E|C2)Cs3oB_vFd>5imTP4}FTFdQF$C;zIi6JrJb-E_~ORlgh`#`E>>5ohzK zrB}FAks9Um&7OJLZhXdO2nvk5*V#x&|KcTJYi2Sqy`&X=Ux*;3*H8a4`}#+M4-8g| zMhgwb2d9MbZkz7OF}~>Ifbp$Tie~_i7mpa<_<2NzRIHq_E1y<<`pN*MPr6l_hpkp^ zds8O>TlY=mnE3xgyp`q(CEs%z;m|gLqh1n4$IOSE<&FLZT5GRhYXvaJ@=So6Y zKU&%N>!A@;2xn@)I=J$PSD=+WthyiKBZAtz)Wh7N;X-vkhH&!8M3&v@VJhhrE@B{b z45yeZei9lkswNm5EDqdPLrkpMW1Kap%xc+U*$$_7h7}0l9!s zn&N*j@fpcS3PL8QkWD-Kj9kb>)@Up3^aqg?)FJ}tAVSu_GB=IDAjwS^Vru_Pv^~Kp zw=>fm3CSYol+%$)Lk%WuY{dz+{AT0#98*FbI+%~8RzAI>5&7sxn7S_?&BL*BKR=Da%=>E5eY`mO0cqa5U+$; z3-qitP^17Yg>AJdK<8rMEU06mctPHerWK^8IH02oQxD>9d10KPf)G-K$F%ZA=1 z6E_c`1+|hN(O!hEkAX!W(~o)Tis4xF)yK39jZcNrm1q&)#4xzO+abcVO4LEu^@jzO zXkNPN1teB7>SEuY^Z0j_X`L$Rt4HgPk30F7NV~wgGZ$`(!lT= zPQxI3C7PWbiP;L3tI#aqUxQ|Y3o5mz6?&!8%48&bT!ofPPx}}v)~_Rpu(S%Tj=7Jk z&_?t~4AiMgt4UX5w%XJXh^tO>fTsox$XG48Dh;PsV<4y+ZIJtY@LJpg#|Fcy(MXQL zHPz_Yw5D{>f2xj6A;PCsr{B;csqnlyEzL{d9Q6(x)nBb(*XzbHm?X(4lmx-eF1JmriGEzob9Y?Qu}7AuY=j ze;tLy`+GxLfu4+mgtrodwWvn)C*qd@{jlsS8sfvL{|#NG&6CIArSGYe5c_XQl_te% zpERb~1;1x66Kvkns?A%5qq|#ES|)61+*X^nx+;2W;7nYRJ9=y4K2b{z^nRk^$agfQ zhwV%M##$qYx)i2=OH1b9`16h?s@pq;sQtWSiSHEN{g(D5d!c1BIxrw^3O2o(s5!lB zi2D3*?MXBGocM2^qR$cYl!>&houZ|-pwArMlT*}i|MEDKex8VqJm(N5$eg(Rcx=}c zElVdFD}=o^C)h0Y%!*=}`*GUdZph=TGCfQpHOuti1baUYR`#H6(}<~7PZ}(EPW)Y& z_au0RAp09dB5en)1RmM>w-)^)oym%>x>#AKHP0Bc*y4+NJ(^Z;j+MacP1EZ4p>tTV zCx7eJSX#BaM(ZrC+EpuoS3CE&mZu+87y+$Ne|m(_=Sgb^&@XAODK{(YYtNI2-5^2*89ZEmN z4q+pP?)xP% zxr2E26E420L1y8?|E#o!mlVu`9z|79ID_9N(aao}(J!Uo1}L%d#0)#$+YQDgZ~G6s z;xZNtnSov-XW=>EPEZJj#nO=hp&k*1&W>CX3{Z2`)$&fJMM=Ni|EHu?_F-xDJ;JK| z0cn*?rST@E25Q<=+Lj>Fv|Q8aS?ZZF0H=uWS-x9|4Hq3Qz9B@N0ikg;#;Ob};^nr)hPqw(W?yuP(P^e~LLh{# z!+mka652JJPlM~OrjY{VUW#^u4QF_*NNBzanHC~se#kOP=(Cp)y4+a!Rxi0=@N)VS zU(I9%Ex`LPyn-&{@e3Gl0^X{Axu ze-+KguJ2EPOp9nyXt#>yln$K1ISGZjYiNGIDmE`eLAhfY80vtUxlAn(-QQRKB&SFw}lF6n9||MyoQ!CvvpWYN~6zWx7i_JHTB4EcZdS% z8X6&8=a6NCi`x-TGq+IDx5-9UF2Y@18kveEv+%}p@-f){IfgK3rO|L}u)H8V*hihP zN~2+9IvmkZG)CN7GkD|O+$JMoV4u1k`M;U!$@@>*6lPzTFB=`M|%FWdBIYlqJxI$a_}InPc~~|hft?YTRX@T!?b3Jv?HbG&%nMTv+qEMG(hFme~7+px;64a}mr17Y*UOP#5GfS;tCK^q(f^jsWTCwjm zsz%uM!xxelYMnu)2gh*f4EBOLSZs{Le1Yuk|^7gi6Kt zf75(n$*G2(RBTK&}|f_EIT15b9l_t&68EKyH)aa#4iM zY#%p#T}(3DN83)M?K1WSEk75-LApv)kbO_OMs+>NYS0UZ?$bK3_8QIzGWWl((K;5q z?`{vOT&D~C)@{}ip!cx?o?WMl!lqo(RW_^E_)EI5rk5CgY5wLLl!l=;P#zb9RRnbb zzBcqCs0p08MKANM7;x~xkaUN}N^3cVg#yw|UYL59X5vV;Aa}xnyR=Esf8Zn1W=@vX zjX7C*H_uYFhWDsb-^f0CfNXpCeM7d*&}uf0l+GL|6=LP2$lT+L?yJGI_%XOQuNw1>BEP0L*qB}Q!)%5$}9>Fy`fICy)qLs zvq%fpiEUY+mF@@^s@OjFBkF>+6F0JY23$dKh_Gx>mN5T}5cVdlvN@E1!zud~YiT%&mDCsFcaI}I)#Lc5&>p)MdWozIvf0HVtIC^wD6%(%KGo4#400>1 zjI?1AV!$6r1dD*vuV@CCbHgEp)ecMVMODmR+-bdOrR+?mWDmUd$59teMLSif!tBt^ z$x2HXdE=QUsw@(glx5s*rQtAtrS#Dx*qWaOLU(^Q!l+w=gH
4vPB0QQ8(e{!>i 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�W*1&of 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 YyNu25vhS}y_rnFgJ4(?;DaNq>2m4jUNdN!< From 1c4d050cd4674c8497eb9d08489b9d5bdeaca470 Mon Sep 17 00:00:00 2001 From: thiolliere Date: Tue, 19 Feb 2019 16:52:00 +0100 Subject: [PATCH 3/3] unset spec version increase --- node/runtime/src/lib.rs | 2 +- .../release/node_runtime.compact.wasm | Bin 822694 -> 822694 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 9ea9f86998e5e..3f242dcc5b19c 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -60,7 +60,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 30, + spec_version: 29, impl_version: 31, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 5dcfa9bf01188bd1dad196f8a72ab741fc6b96d1..d320f9a372bff82472003f1075be115b1e34a9e5 100644 GIT binary patch delta 51 zcmZ2B+i2NrqlOm77N!>F7M2#)7Pc+y2O1b<+YdId12G2>a{@6J5OZ%o*ue9Y2LJ_v B6t@5X delta 51 zcmZ2B+i2NrqlOm77N!>F7M2#)7Pc+y2O1dV+7C9c12G2>a{@6J5OZ%o*ue9Y2LJ_~ B6u1BY