From 57164aa74705b01dc9fe4239768cd9ba5d31e62a Mon Sep 17 00:00:00 2001 From: Xiliang Chen <xlchen1291@gmail.com> Date: Thu, 9 May 2019 19:40:28 +1200 Subject: [PATCH] Remove As trait bound from Currency::Balance (#2205) * remove As<64> bond * Currency trait refactor * bump spec version --- substrate/node/runtime/src/lib.rs | 4 ++-- substrate/srml/balances/src/lib.rs | 4 ++-- substrate/srml/staking/src/lib.rs | 6 ++++-- substrate/srml/support/src/traits.rs | 6 +++--- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index b3daece243a..22dcba93a5d 100644 --- a/substrate/node/runtime/src/lib.rs +++ b/substrate/node/runtime/src/lib.rs @@ -58,8 +58,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 72, - impl_version: 74, + spec_version: 73, + impl_version: 73, apis: RUNTIME_API_VERSIONS, }; diff --git a/substrate/srml/balances/src/lib.rs b/substrate/srml/balances/src/lib.rs index 7f2c1752a96..0983c2757a9 100644 --- a/substrate/srml/balances/src/lib.rs +++ b/substrate/srml/balances/src/lib.rs @@ -167,7 +167,7 @@ pub use self::imbalances::{PositiveImbalance, NegativeImbalance}; pub trait Subtrait<I: Instance = DefaultInstance>: system::Trait { /// The balance of an account. - type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As<usize> + As<u64> + MaybeSerializeDebug; + type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + MaybeSerializeDebug; /// A function that is invoked when the free-balance has fallen below the existential deposit and /// has been reduced to zero. @@ -181,7 +181,7 @@ pub trait Subtrait<I: Instance = DefaultInstance>: system::Trait { pub trait Trait<I: Instance = DefaultInstance>: system::Trait { /// The balance of an account. - type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As<usize> + As<u64> + MaybeSerializeDebug; + type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + MaybeSerializeDebug; /// A function that is invoked when the free-balance has fallen below the existential deposit and /// has been reduced to zero. diff --git a/substrate/srml/staking/src/lib.rs b/substrate/srml/staking/src/lib.rs index cc3c708bb28..09007b48d5b 100644 --- a/substrate/srml/staking/src/lib.rs +++ b/substrate/srml/staking/src/lib.rs @@ -894,8 +894,10 @@ impl<T: Trait> Module<T> { Self::reward_validator(v, reward); } Self::deposit_event(RawEvent::Reward(reward)); - let total_minted = reward * <BalanceOf<T> as As<usize>>::sa(validators.len()); - let total_rewarded_stake = Self::slot_stake() * <BalanceOf<T> as As<usize>>::sa(validators.len()); + let len = validators.len() as u64; // validators length can never overflow u64 + let len = BalanceOf::<T>::sa(len); + let total_minted = reward * len; + let total_rewarded_stake = Self::slot_stake() * len; T::OnRewardMinted::on_dilution(total_minted, total_rewarded_stake); } diff --git a/substrate/srml/support/src/traits.rs b/substrate/srml/support/src/traits.rs index 6f0435a77a0..67b1f973ce4 100644 --- a/substrate/srml/support/src/traits.rs +++ b/substrate/srml/support/src/traits.rs @@ -19,7 +19,7 @@ use crate::rstd::result; use crate::codec::{Codec, Encode, Decode}; use crate::runtime_primitives::traits::{ - MaybeSerializeDebug, SimpleArithmetic, As + MaybeSerializeDebug, SimpleArithmetic }; /// The account with the given id was killed. @@ -195,7 +195,7 @@ pub enum SignedImbalance<B, P: Imbalance<B>>{ impl< P: Imbalance<B, Opposite=N>, N: Imbalance<B, Opposite=P>, - B: SimpleArithmetic + As<usize> + As<u64> + Codec + Copy + MaybeSerializeDebug + Default, + B: SimpleArithmetic + Codec + Copy + MaybeSerializeDebug + Default, > SignedImbalance<B, P> { pub fn zero() -> Self { SignedImbalance::Positive(P::zero()) @@ -230,7 +230,7 @@ impl< /// Abstraction over a fungible assets system. pub trait Currency<AccountId> { /// The balance of an account. - type Balance: SimpleArithmetic + As<usize> + As<u64> + Codec + Copy + MaybeSerializeDebug + Default; + type Balance: SimpleArithmetic + Codec + Copy + MaybeSerializeDebug + Default; /// The opaque token type for an imbalance. This is returned by unbalanced operations /// and must be dealt with. It may be dropped but cannot be cloned. -- GitLab