mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 22:21:07 +00:00
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:
@@ -27,6 +27,7 @@ use frame_support::{
|
||||
traits::{ChangeMembers, Contains, Get, InitializeMembers, SortedMembers},
|
||||
BoundedVec,
|
||||
};
|
||||
use sp_runtime::traits::StaticLookup;
|
||||
use sp_std::prelude::*;
|
||||
|
||||
pub mod migrations;
|
||||
@@ -35,6 +36,8 @@ pub mod weights;
|
||||
pub use pallet::*;
|
||||
pub use weights::WeightInfo;
|
||||
|
||||
type AccountIdLookupOf<T> = <<T as frame_system::Config>::Lookup as StaticLookup>::Source;
|
||||
|
||||
#[frame_support::pallet]
|
||||
pub mod pallet {
|
||||
use super::*;
|
||||
@@ -163,8 +166,9 @@ pub mod pallet {
|
||||
///
|
||||
/// May only be called from `T::AddOrigin`.
|
||||
#[pallet::weight(50_000_000)]
|
||||
pub fn add_member(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
|
||||
pub fn add_member(origin: OriginFor<T>, who: AccountIdLookupOf<T>) -> DispatchResult {
|
||||
T::AddOrigin::ensure_origin(origin)?;
|
||||
let who = T::Lookup::lookup(who)?;
|
||||
|
||||
let mut members = <Members<T, I>>::get();
|
||||
let location = members.binary_search(&who).err().ok_or(Error::<T, I>::AlreadyMember)?;
|
||||
@@ -184,8 +188,9 @@ pub mod pallet {
|
||||
///
|
||||
/// May only be called from `T::RemoveOrigin`.
|
||||
#[pallet::weight(50_000_000)]
|
||||
pub fn remove_member(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
|
||||
pub fn remove_member(origin: OriginFor<T>, who: AccountIdLookupOf<T>) -> DispatchResult {
|
||||
T::RemoveOrigin::ensure_origin(origin)?;
|
||||
let who = T::Lookup::lookup(who)?;
|
||||
|
||||
let mut members = <Members<T, I>>::get();
|
||||
let location = members.binary_search(&who).ok().ok_or(Error::<T, I>::NotMember)?;
|
||||
@@ -208,10 +213,12 @@ pub mod pallet {
|
||||
#[pallet::weight(50_000_000)]
|
||||
pub fn swap_member(
|
||||
origin: OriginFor<T>,
|
||||
remove: T::AccountId,
|
||||
add: T::AccountId,
|
||||
remove: AccountIdLookupOf<T>,
|
||||
add: AccountIdLookupOf<T>,
|
||||
) -> DispatchResult {
|
||||
T::SwapOrigin::ensure_origin(origin)?;
|
||||
let remove = T::Lookup::lookup(remove)?;
|
||||
let add = T::Lookup::lookup(add)?;
|
||||
|
||||
if remove == add {
|
||||
return Ok(())
|
||||
@@ -259,8 +266,9 @@ pub mod pallet {
|
||||
///
|
||||
/// Prime membership is passed from the origin account to `new`, if extant.
|
||||
#[pallet::weight(50_000_000)]
|
||||
pub fn change_key(origin: OriginFor<T>, new: T::AccountId) -> DispatchResult {
|
||||
pub fn change_key(origin: OriginFor<T>, new: AccountIdLookupOf<T>) -> DispatchResult {
|
||||
let remove = ensure_signed(origin)?;
|
||||
let new = T::Lookup::lookup(new)?;
|
||||
|
||||
if remove != new {
|
||||
let mut members = <Members<T, I>>::get();
|
||||
@@ -292,8 +300,9 @@ pub mod pallet {
|
||||
///
|
||||
/// May only be called from `T::PrimeOrigin`.
|
||||
#[pallet::weight(50_000_000)]
|
||||
pub fn set_prime(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
|
||||
pub fn set_prime(origin: OriginFor<T>, who: AccountIdLookupOf<T>) -> DispatchResult {
|
||||
T::PrimeOrigin::ensure_origin(origin)?;
|
||||
let who = T::Lookup::lookup(who)?;
|
||||
Self::members().binary_search(&who).ok().ok_or(Error::<T, I>::NotMember)?;
|
||||
Prime::<T, I>::put(&who);
|
||||
T::MembershipChanged::set_prime(Some(who));
|
||||
@@ -355,7 +364,8 @@ mod benchmark {
|
||||
|
||||
assert_ok!(<Membership<T, I>>::reset_members(reset_origin, members.clone()));
|
||||
if let Some(prime) = prime.map(|i| members[i].clone()) {
|
||||
assert_ok!(<Membership<T, I>>::set_prime(prime_origin, prime));
|
||||
let prime_lookup = T::Lookup::unlookup(prime);
|
||||
assert_ok!(<Membership<T, I>>::set_prime(prime_origin, prime_lookup));
|
||||
} else {
|
||||
assert_ok!(<Membership<T, I>>::clear_prime(prime_origin));
|
||||
}
|
||||
@@ -368,8 +378,9 @@ mod benchmark {
|
||||
let members = (0..m).map(|i| account("member", i, SEED)).collect::<Vec<T::AccountId>>();
|
||||
set_members::<T, I>(members, None);
|
||||
let new_member = account::<T::AccountId>("add", m, SEED);
|
||||
let new_member_lookup = T::Lookup::unlookup(new_member.clone());
|
||||
}: {
|
||||
assert_ok!(<Membership<T, I>>::add_member(T::AddOrigin::successful_origin(), new_member.clone()));
|
||||
assert_ok!(<Membership<T, I>>::add_member(T::AddOrigin::successful_origin(), new_member_lookup));
|
||||
}
|
||||
verify {
|
||||
assert!(<Members<T, I>>::get().contains(&new_member));
|
||||
@@ -385,8 +396,9 @@ mod benchmark {
|
||||
set_members::<T, I>(members.clone(), Some(members.len() - 1));
|
||||
|
||||
let to_remove = members.first().cloned().unwrap();
|
||||
let to_remove_lookup = T::Lookup::unlookup(to_remove.clone());
|
||||
}: {
|
||||
assert_ok!(<Membership<T, I>>::remove_member(T::RemoveOrigin::successful_origin(), to_remove.clone()));
|
||||
assert_ok!(<Membership<T, I>>::remove_member(T::RemoveOrigin::successful_origin(), to_remove_lookup));
|
||||
} verify {
|
||||
assert!(!<Members<T, I>>::get().contains(&to_remove));
|
||||
// prime is rejigged
|
||||
@@ -401,12 +413,14 @@ mod benchmark {
|
||||
let members = (0..m).map(|i| account("member", i, SEED)).collect::<Vec<T::AccountId>>();
|
||||
set_members::<T, I>(members.clone(), Some(members.len() - 1));
|
||||
let add = account::<T::AccountId>("member", m, SEED);
|
||||
let add_lookup = T::Lookup::unlookup(add.clone());
|
||||
let remove = members.first().cloned().unwrap();
|
||||
let remove_lookup = T::Lookup::unlookup(remove.clone());
|
||||
}: {
|
||||
assert_ok!(<Membership<T, I>>::swap_member(
|
||||
T::SwapOrigin::successful_origin(),
|
||||
remove.clone(),
|
||||
add.clone(),
|
||||
remove_lookup,
|
||||
add_lookup,
|
||||
));
|
||||
} verify {
|
||||
assert!(!<Members<T, I>>::get().contains(&remove));
|
||||
@@ -442,9 +456,10 @@ mod benchmark {
|
||||
set_members::<T, I>(members.clone(), Some(members.len() - 1));
|
||||
|
||||
let add = account::<T::AccountId>("member", m, SEED);
|
||||
let add_lookup = T::Lookup::unlookup(add.clone());
|
||||
whitelist!(prime);
|
||||
}: {
|
||||
assert_ok!(<Membership<T, I>>::change_key(RawOrigin::Signed(prime.clone()).into(), add.clone()));
|
||||
assert_ok!(<Membership<T, I>>::change_key(RawOrigin::Signed(prime.clone()).into(), add_lookup));
|
||||
} verify {
|
||||
assert!(!<Members<T, I>>::get().contains(&prime));
|
||||
assert!(<Members<T, I>>::get().contains(&add));
|
||||
@@ -457,9 +472,10 @@ mod benchmark {
|
||||
let m in 1 .. T::MaxMembers::get();
|
||||
let members = (0..m).map(|i| account("member", i, SEED)).collect::<Vec<T::AccountId>>();
|
||||
let prime = members.last().cloned().unwrap();
|
||||
let prime_lookup = T::Lookup::unlookup(prime.clone());
|
||||
set_members::<T, I>(members, None);
|
||||
}: {
|
||||
assert_ok!(<Membership<T, I>>::set_prime(T::PrimeOrigin::successful_origin(), prime));
|
||||
assert_ok!(<Membership<T, I>>::set_prime(T::PrimeOrigin::successful_origin(), prime_lookup));
|
||||
} verify {
|
||||
assert!(<Prime<T, I>>::get().is_some());
|
||||
assert!(<T::MembershipChanged>::get_prime().is_some());
|
||||
|
||||
Reference in New Issue
Block a user