Replace T::AccountId with <T::Lookup as StaticLookup>::Source (#11670)

* initial

* update

* update

* update

* cargo fmt

* update

* update benchmarks

* AccountIdLookupOf<T>

* cargo fmt

* fix conflits

* cargo fmt

* update

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
Doordashcon
2022-08-18 10:30:46 +01:00
committed by GitHub
parent 511e5c9651
commit d46f6f0d34
50 changed files with 465 additions and 309 deletions
@@ -31,7 +31,7 @@ use pallet_nomination_pools::{
MaxPoolMembersPerPool, MaxPools, Metadata, MinCreateBond, MinJoinBond, Pallet as Pools,
PoolMembers, PoolRoles, PoolState, RewardPools, SubPoolsStorage,
};
use sp_runtime::traits::{Bounded, Zero};
use sp_runtime::traits::{Bounded, StaticLookup, Zero};
use sp_staking::{EraIndex, StakingInterface};
// `frame_benchmarking::benchmarks!` macro needs this
use pallet_nomination_pools::Call;
@@ -73,13 +73,14 @@ fn create_pool_account<T: pallet_nomination_pools::Config>(
let ed = CurrencyOf::<T>::minimum_balance();
let pool_creator: T::AccountId =
create_funded_user_with_balance::<T>("pool_creator", n, ed + balance * 2u32.into());
let pool_creator_lookup = T::Lookup::unlookup(pool_creator.clone());
Pools::<T>::create(
Origin::Signed(pool_creator.clone()).into(),
balance,
pool_creator.clone(),
pool_creator.clone(),
pool_creator.clone(),
pool_creator_lookup.clone(),
pool_creator_lookup.clone(),
pool_creator_lookup,
)
.unwrap();
@@ -310,9 +311,10 @@ frame_benchmarking::benchmarks! {
let scenario = scenario.add_joiner(amount);
let member_id = scenario.origin1_member.unwrap().clone();
let member_id_lookup = T::Lookup::unlookup(member_id.clone());
let all_points = PoolMembers::<T>::get(&member_id).unwrap().points;
whitelist_account!(member_id);
}: _(Origin::Signed(member_id.clone()), member_id.clone(), all_points)
}: _(Origin::Signed(member_id.clone()), member_id_lookup, all_points)
verify {
let bonded_after = T::StakingInterface::active_stake(&scenario.origin1).unwrap();
// We at least went down to the destination bag
@@ -382,6 +384,7 @@ frame_benchmarking::benchmarks! {
// Add a new member
let min_join_bond = MinJoinBond::<T>::get().max(CurrencyOf::<T>::minimum_balance());
let joiner = create_funded_user_with_balance::<T>("joiner", 0, min_join_bond * 2u32.into());
let joiner_lookup = T::Lookup::unlookup(joiner.clone());
Pools::<T>::join(Origin::Signed(joiner.clone()).into(), min_join_bond, 1)
.unwrap();
@@ -408,7 +411,7 @@ frame_benchmarking::benchmarks! {
pallet_staking::benchmarking::add_slashing_spans::<T>(&pool_account, s);
whitelist_account!(joiner);
}: withdraw_unbonded(Origin::Signed(joiner.clone()), joiner.clone(), s)
}: withdraw_unbonded(Origin::Signed(joiner.clone()), joiner_lookup, s)
verify {
assert_eq!(
CurrencyOf::<T>::free_balance(&joiner),
@@ -423,6 +426,7 @@ frame_benchmarking::benchmarks! {
let min_create_bond = min_create_bond::<T>();
let (depositor, pool_account) = create_pool_account::<T>(0, min_create_bond);
let depositor_lookup = T::Lookup::unlookup(depositor.clone());
// We set the pool to the destroying state so the depositor can leave
BondedPools::<T>::try_mutate(&1, |maybe_bonded_pool| {
@@ -465,7 +469,7 @@ frame_benchmarking::benchmarks! {
assert!(frame_system::Account::<T>::contains_key(&reward_account));
whitelist_account!(depositor);
}: withdraw_unbonded(Origin::Signed(depositor.clone()), depositor.clone(), s)
}: withdraw_unbonded(Origin::Signed(depositor.clone()), depositor_lookup, s)
verify {
// Pool removal worked
assert!(!pallet_staking::Ledger::<T>::contains_key(&pool_account));
@@ -487,6 +491,7 @@ frame_benchmarking::benchmarks! {
create {
let min_create_bond = min_create_bond::<T>();
let depositor: T::AccountId = account("depositor", USER_SEED, 0);
let depositor_lookup = T::Lookup::unlookup(depositor.clone());
// Give the depositor some balance to bond
CurrencyOf::<T>::make_free_balance_be(&depositor, min_create_bond * 2u32.into());
@@ -499,9 +504,9 @@ frame_benchmarking::benchmarks! {
}: _(
Origin::Signed(depositor.clone()),
min_create_bond,
depositor.clone(),
depositor.clone(),
depositor.clone()
depositor_lookup.clone(),
depositor_lookup.clone(),
depositor_lookup
)
verify {
assert_eq!(RewardPools::<T>::count(), 1);
+18 -7
View File
@@ -282,7 +282,10 @@ use frame_support::{
use scale_info::TypeInfo;
use sp_core::U256;
use sp_runtime::{
traits::{AccountIdConversion, Bounded, CheckedAdd, CheckedSub, Convert, Saturating, Zero},
traits::{
AccountIdConversion, Bounded, CheckedAdd, CheckedSub, Convert, Saturating, StaticLookup,
Zero,
},
FixedPointNumber, FixedPointOperand,
};
use sp_staking::{EraIndex, OnStakerSlash, StakingInterface};
@@ -321,6 +324,8 @@ pub type PoolId = u32;
type UnbondingPoolsWithEra<T> = BoundedBTreeMap<EraIndex, UnbondPool<T>, TotalUnbondingPools<T>>;
type AccountIdLookupOf<T> = <<T as frame_system::Config>::Lookup as StaticLookup>::Source;
pub const POINTS_TO_BALANCE_INIT_RATIO: u32 = 1;
/// Possible operations on the configuration values of this pallet.
@@ -1629,10 +1634,11 @@ pub mod pallet {
#[transactional]
pub fn unbond(
origin: OriginFor<T>,
member_account: T::AccountId,
member_account: AccountIdLookupOf<T>,
#[pallet::compact] unbonding_points: BalanceOf<T>,
) -> DispatchResult {
let who = ensure_signed(origin)?;
let member_account = T::Lookup::lookup(member_account)?;
let (mut member, mut bonded_pool, mut reward_pool) =
Self::get_member_with_pools(&member_account)?;
@@ -1741,10 +1747,11 @@ pub mod pallet {
#[transactional]
pub fn withdraw_unbonded(
origin: OriginFor<T>,
member_account: T::AccountId,
member_account: AccountIdLookupOf<T>,
num_slashing_spans: u32,
) -> DispatchResultWithPostInfo {
let caller = ensure_signed(origin)?;
let member_account = T::Lookup::lookup(member_account)?;
let mut member =
PoolMembers::<T>::get(&member_account).ok_or(Error::<T>::PoolMemberNotFound)?;
let current_era = T::StakingInterface::current_era();
@@ -1863,11 +1870,14 @@ pub mod pallet {
pub fn create(
origin: OriginFor<T>,
#[pallet::compact] amount: BalanceOf<T>,
root: T::AccountId,
nominator: T::AccountId,
state_toggler: T::AccountId,
root: AccountIdLookupOf<T>,
nominator: AccountIdLookupOf<T>,
state_toggler: AccountIdLookupOf<T>,
) -> DispatchResult {
let who = ensure_signed(origin)?;
let root = T::Lookup::lookup(root)?;
let nominator = T::Lookup::lookup(nominator)?;
let state_toggler = T::Lookup::lookup(state_toggler)?;
ensure!(amount >= Pallet::<T>::depositor_min_bond(), Error::<T>::MinimumBondNotMet);
ensure!(
@@ -2461,7 +2471,8 @@ impl<T: Config> Pallet<T> {
member: T::AccountId,
) -> DispatchResult {
let points = PoolMembers::<T>::get(&member).map(|d| d.active_points()).unwrap_or_default();
Self::unbond(origin, member, points)
let member_lookup = T::Lookup::unlookup(member);
Self::unbond(origin, member_lookup, points)
}
}