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 @@
//! Auxillary struct/enums for polkadot runtime.
use sp_runtime::traits::Convert;
use frame_support::traits::{OnUnbalanced, Imbalance, Currency};
use crate::NegativeImbalance;
......@@ -41,33 +40,3 @@ where
<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;
pub use pallet_balances::Call as BalancesCall;
/// 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;
......@@ -89,6 +89,12 @@ pub type SlowAdjustingFeeUpdate<R> = TargetedFeeAdjustment<
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
/// keys.
pub struct ParachainSessionKeyPlaceholder<T>(sp_std::marker::PhantomData<T>);
......
......@@ -395,7 +395,7 @@ mod tests {
impl pallet_staking::Trait for Test {
type RewardRemainder = ();
type CurrencyToVote = ();
type CurrencyToVote = frame_support::traits::SaturatingCurrencyToVote;
type Event = ();
type Currency = pallet_balances::Module<Test>;
type Slash = ();
......
......@@ -29,8 +29,8 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
};
use runtime_common::{
claims, SlowAdjustingFeeUpdate,
impls::{CurrencyToVoteHandler, ToAuthor},
claims, SlowAdjustingFeeUpdate, CurrencyToVote,
impls::ToAuthor,
NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight,
MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder,
......@@ -346,7 +346,7 @@ type SlashCancelOrigin = EnsureOneOf<
impl pallet_staking::Trait for Runtime {
type Currency = Balances;
type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = CurrencyToVote;
type RewardRemainder = Treasury;
type Event = Event;
type Slash = Treasury;
......@@ -469,7 +469,7 @@ impl pallet_elections_phragmen::Trait for Runtime {
type Currency = Balances;
type ChangeMembers = Council;
type InitializeMembers = Council;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type CandidacyBond = CandidacyBond;
type VotingBond = VotingBond;
type LoserCandidate = Treasury;
......
......@@ -21,8 +21,8 @@
#![recursion_limit="256"]
use runtime_common::{
claims, SlowAdjustingFeeUpdate,
impls::{CurrencyToVoteHandler, ToAuthor},
claims, SlowAdjustingFeeUpdate, CurrencyToVote,
impls::ToAuthor,
NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight,
MaximumExtrinsicWeight, ParachainSessionKeyPlaceholder,
......@@ -353,7 +353,7 @@ type SlashCancelOrigin = EnsureOneOf<
impl pallet_staking::Trait for Runtime {
type Currency = Balances;
type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = CurrencyToVote;
type RewardRemainder = Treasury;
type Event = Event;
type Slash = Treasury;
......@@ -516,7 +516,7 @@ impl pallet_elections_phragmen::Trait for Runtime {
type Currency = Balances;
type ChangeMembers = Council;
type InitializeMembers = Council;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type CandidacyBond = CandidacyBond;
type VotingBond = VotingBond;
type LoserCandidate = Treasury;
......
......@@ -30,7 +30,7 @@ use primitives::v1::{
};
use runtime_common::{
SlowAdjustingFeeUpdate,
impls::{CurrencyToVoteHandler, ToAuthor},
impls::ToAuthor,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength,
BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight,
};
......@@ -560,7 +560,7 @@ impl pallet_im_online::Trait for Runtime {
impl pallet_staking::Trait for Runtime {
type Currency = Balances;
type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type RewardRemainder = ();
type Event = Event;
type Slash = ();
......
......@@ -37,7 +37,7 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
};
use runtime_common::{
claims, SlowAdjustingFeeUpdate, impls::CurrencyToVoteHandler,
claims, SlowAdjustingFeeUpdate,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, ParachainSessionKeyPlaceholder,
};
......@@ -297,7 +297,7 @@ parameter_types! {
impl pallet_staking::Trait for Runtime {
type Currency = Balances;
type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
type RewardRemainder = ();
type Event = Event;
type Slash = ();
......
......@@ -28,8 +28,8 @@ use primitives::v1::{
PersistedValidationData, Signature, ValidationCode, ValidationData, ValidatorId, ValidatorIndex,
};
use runtime_common::{
SlowAdjustingFeeUpdate,
impls::{CurrencyToVoteHandler, ToAuthor},
SlowAdjustingFeeUpdate, CurrencyToVote,
impls::ToAuthor,
BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength,
BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, MaximumExtrinsicWeight,
ParachainSessionKeyPlaceholder,
......@@ -318,7 +318,7 @@ parameter_types! {
impl pallet_staking::Trait for Runtime {
type Currency = Balances;
type UnixTime = Timestamp;
type CurrencyToVote = CurrencyToVoteHandler<Self>;
type CurrencyToVote = CurrencyToVote;
type RewardRemainder = ();
type Event = Event;
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