Unverified Commit b6ea6dde authored by Kian Paimani's avatar Kian Paimani Committed by GitHub
Browse files

Companion for substrate/pull/6896 (#1610)

* make polkadot work again,

* Fix build

* "Update Substrate"

Co-authored-by: parity-processbot <>
parent ba0d1a32
Pipeline #109990 passed with stages
in 26 minutes and 48 seconds
This diff is collapsed.
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
//! Auxillary struct/enums for polkadot runtime. //! Auxillary struct/enums for polkadot runtime.
use sp_runtime::traits::Convert;
use frame_support::traits::{OnUnbalanced, Imbalance, Currency}; use frame_support::traits::{OnUnbalanced, Imbalance, Currency};
use crate::NegativeImbalance; use crate::NegativeImbalance;
...@@ -41,33 +40,3 @@ where ...@@ -41,33 +40,3 @@ where
<frame_system::Module<R>>::deposit_event(pallet_balances::RawEvent::Deposit(author, numeric_amount)); <frame_system::Module<R>>::deposit_event(pallet_balances::RawEvent::Deposit(author, numeric_amount));
} }
} }
/// Converter for currencies to votes.
pub struct CurrencyToVoteHandler<R>(sp_std::marker::PhantomData<R>);
impl<R> CurrencyToVoteHandler<R>
where
R: pallet_balances::Trait,
R::Balance: Into<u128>,
{
fn factor() -> u128 {
let issuance: u128 = <pallet_balances::Module<R>>::total_issuance().into();
(issuance / u64::max_value() as u128).max(1)
}
}
impl<R> Convert<u128, u64> for CurrencyToVoteHandler<R>
where
R: pallet_balances::Trait,
R::Balance: Into<u128>,
{
fn convert(x: u128) -> u64 { (x / Self::factor()) as u64 }
}
impl<R> Convert<u128, u128> for CurrencyToVoteHandler<R>
where
R: pallet_balances::Trait,
R::Balance: Into<u128>,
{
fn convert(x: u128) -> u128 { x * Self::factor() }
}
...@@ -45,7 +45,7 @@ pub use pallet_timestamp::Call as TimestampCall; ...@@ -45,7 +45,7 @@ pub use pallet_timestamp::Call as TimestampCall;
pub use pallet_balances::Call as BalancesCall; pub use pallet_balances::Call as BalancesCall;
/// Implementations of some helper traits passed into runtime modules as associated types. /// Implementations of some helper traits passed into runtime modules as associated types.
pub use impls::{CurrencyToVoteHandler, ToAuthor}; pub use impls::ToAuthor;
pub type NegativeImbalance<T> = <pallet_balances::Module<T> as Currency<<T as frame_system::Trait>::AccountId>>::NegativeImbalance; pub type NegativeImbalance<T> = <pallet_balances::Module<T> as Currency<<T as frame_system::Trait>::AccountId>>::NegativeImbalance;
...@@ -89,6 +89,12 @@ pub type SlowAdjustingFeeUpdate<R> = TargetedFeeAdjustment< ...@@ -89,6 +89,12 @@ pub type SlowAdjustingFeeUpdate<R> = TargetedFeeAdjustment<
MinimumMultiplier MinimumMultiplier
>; >;
/// The type used for currency conversion.
///
/// This must only be used as long as the balance type is u128.
pub type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
static_assertions::assert_eq_size!(primitives::v1::Balance, u128);
/// A placeholder since there is currently no provided session key handler for parachain validator /// A placeholder since there is currently no provided session key handler for parachain validator
/// keys. /// keys.
pub struct ParachainSessionKeyPlaceholder<T>(sp_std::marker::PhantomData<T>); pub struct ParachainSessionKeyPlaceholder<T>(sp_std::marker::PhantomData<T>);
......
...@@ -395,7 +395,7 @@ mod tests { ...@@ -395,7 +395,7 @@ mod tests {
impl pallet_staking::Trait for Test { impl pallet_staking::Trait for Test {
type RewardRemainder = (); type RewardRemainder = ();
type CurrencyToVote = (); type CurrencyToVote = frame_support::traits::SaturatingCurrencyToVote;
type Event = (); type Event = ();
type Currency = pallet_balances::Module<Test>; type Currency = pallet_balances::Module<Test>;
type Slash = (); type Slash = ();
......
...@@ -29,8 +29,8 @@ use primitives::v1::{ ...@@ -29,8 +29,8 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex, PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
}; };
use runtime_common::{ use runtime_common::{
claims, SlowAdjustingFeeUpdate, claims, SlowAdjustingFeeUpdate, CurrencyToVote,
impls::{CurrencyToVoteHandler, ToAuthor}, impls::ToAuthor,
NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight,
MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder, MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder,
...@@ -346,7 +346,7 @@ type SlashCancelOrigin = EnsureOneOf< ...@@ -346,7 +346,7 @@ type SlashCancelOrigin = EnsureOneOf<
impl pallet_staking::Trait for Runtime { impl pallet_staking::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type UnixTime = Timestamp; type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = CurrencyToVote;
type RewardRemainder = Treasury; type RewardRemainder = Treasury;
type Event = Event; type Event = Event;
type Slash = Treasury; type Slash = Treasury;
...@@ -469,7 +469,7 @@ impl pallet_elections_phragmen::Trait for Runtime { ...@@ -469,7 +469,7 @@ impl pallet_elections_phragmen::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type ChangeMembers = Council; type ChangeMembers = Council;
type InitializeMembers = Council; type InitializeMembers = Council;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type CandidacyBond = CandidacyBond; type CandidacyBond = CandidacyBond;
type VotingBond = VotingBond; type VotingBond = VotingBond;
type LoserCandidate = Treasury; type LoserCandidate = Treasury;
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
#![recursion_limit="256"] #![recursion_limit="256"]
use runtime_common::{ use runtime_common::{
claims, SlowAdjustingFeeUpdate, claims, SlowAdjustingFeeUpdate, CurrencyToVote,
impls::{CurrencyToVoteHandler, ToAuthor}, impls::ToAuthor,
NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight,
MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder, MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder,
...@@ -353,7 +353,7 @@ type SlashCancelOrigin = EnsureOneOf< ...@@ -353,7 +353,7 @@ type SlashCancelOrigin = EnsureOneOf<
impl pallet_staking::Trait for Runtime { impl pallet_staking::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type UnixTime = Timestamp; type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = CurrencyToVote;
type RewardRemainder = Treasury; type RewardRemainder = Treasury;
type Event = Event; type Event = Event;
type Slash = Treasury; type Slash = Treasury;
...@@ -516,7 +516,7 @@ impl pallet_elections_phragmen::Trait for Runtime { ...@@ -516,7 +516,7 @@ impl pallet_elections_phragmen::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type ChangeMembers = Council; type ChangeMembers = Council;
type InitializeMembers = Council; type InitializeMembers = Council;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type CandidacyBond = CandidacyBond; type CandidacyBond = CandidacyBond;
type VotingBond = VotingBond; type VotingBond = VotingBond;
type LoserCandidate = Treasury; type LoserCandidate = Treasury;
......
...@@ -30,7 +30,7 @@ use primitives::v1::{ ...@@ -30,7 +30,7 @@ use primitives::v1::{
}; };
use runtime_common::{ use runtime_common::{
SlowAdjustingFeeUpdate, SlowAdjustingFeeUpdate,
impls::{CurrencyToVoteHandler, ToAuthor}, impls::ToAuthor,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength,
BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight,
}; };
...@@ -560,7 +560,7 @@ impl pallet_im_online::Trait for Runtime { ...@@ -560,7 +560,7 @@ impl pallet_im_online::Trait for Runtime {
impl pallet_staking::Trait for Runtime { impl pallet_staking::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type UnixTime = Timestamp; type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type RewardRemainder = (); type RewardRemainder = ();
type Event = Event; type Event = Event;
type Slash = (); type Slash = ();
......
...@@ -37,7 +37,7 @@ use primitives::v1::{ ...@@ -37,7 +37,7 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex, PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
}; };
use runtime_common::{ use runtime_common::{
claims, SlowAdjustingFeeUpdate, impls::CurrencyToVoteHandler, claims, SlowAdjustingFeeUpdate,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, ParachainSessionKeyPlaceholder, MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, ParachainSessionKeyPlaceholder,
}; };
...@@ -297,7 +297,7 @@ parameter_types! { ...@@ -297,7 +297,7 @@ parameter_types! {
impl pallet_staking::Trait for Runtime { impl pallet_staking::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type UnixTime = Timestamp; type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type RewardRemainder = (); type RewardRemainder = ();
type Event = Event; type Event = Event;
type Slash = (); type Slash = ();
......
...@@ -28,8 +28,8 @@ use primitives::v1::{ ...@@ -28,8 +28,8 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex, PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
}; };
use runtime_common::{ use runtime_common::{
SlowAdjustingFeeUpdate, SlowAdjustingFeeUpdate, CurrencyToVote,
impls::{CurrencyToVoteHandler, ToAuthor}, impls::ToAuthor,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength,
BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight,
ParachainSessionKeyPlaceholder, ParachainSessionKeyPlaceholder,
...@@ -318,7 +318,7 @@ parameter_types! { ...@@ -318,7 +318,7 @@ parameter_types! {
impl pallet_staking::Trait for Runtime { impl pallet_staking::Trait for Runtime {
type Currency = Balances; type Currency = Balances;
type UnixTime = Timestamp; type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>; type CurrencyToVote = CurrencyToVote;
type RewardRemainder = (); type RewardRemainder = ();
type Event = Event; type Event = Event;
type Slash = (); type Slash = ();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment