diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index b3daece243a70ac62969bca83fee881cc5c6d8eb..22dcba93a5dc8783eca2f2694ee31d3c53c6e5f1 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 7f2c1752a964ff1b4fe861c352d1194a1818ce93..0983c2757a92c6b1f1058befaeabd65d37ac5800 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 cc3c708bb2843a0ca4edcbbc8892768f96a4b67f..09007b48d5b27bc765c33203c4a85230516f367a 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 6f0435a77a01d36160fa9ace1e4156bb8765e373..67b1f973ce4de72dbb5aa88b6f3b73a53a633e03 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.