Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7007862
Migrate pallet-membership to new pallet attribute macro
koushiro Jun 11, 2021
1e658b0
Add migrations
koushiro Jun 16, 2021
170de2a
more general
koushiro Jun 16, 2021
ca1f821
fix event metadata
koushiro Jun 16, 2021
a3fc53a
some nits
koushiro Jun 16, 2021
29ed84d
fix some nits
koushiro Jun 16, 2021
94ebe35
apply suggestion
koushiro Jun 17, 2021
e7d5ced
some nits
koushiro Jun 23, 2021
4f790e8
Merge remote-tracking branch 'upstream/master' into migrate-pallet-me…
koushiro Jun 24, 2021
c51c30c
Fix
koushiro Jul 22, 2021
a38faa7
Merge remote-tracking branch 'upstream/master' into migrate-pallet-me…
koushiro Jul 22, 2021
e69ad82
Merge remote-tracking branch 'upstream/master' into migrate-pallet-me…
koushiro Aug 13, 2021
03876de
Remove useless
koushiro Aug 13, 2021
e1c0989
Fix migration
koushiro Aug 13, 2021
0fceccd
Fix format
koushiro Aug 13, 2021
0cc05b2
Fix
koushiro Aug 13, 2021
826fdcd
Merge remote-tracking branch 'upstream/master' into migrate-pallet-me…
koushiro Aug 13, 2021
2e3a766
Merge remote-tracking branch 'origin/master' into 9080
gui1117 Aug 27, 2021
01b5ecd
Fix migration
gui1117 Aug 27, 2021
e282784
Merge remote-tracking branch 'upstream/master' into migrate-pallet-me…
koushiro Sep 7, 2021
06d0c00
Merge remote-tracking branch 'myfork/migrate-pallet-membership' into …
koushiro Sep 7, 2021
1994b8a
Fix migration and Add migration test
koushiro Sep 7, 2021
965b451
Fix
koushiro Sep 7, 2021
cf58b30
Fix format
koushiro Sep 7, 2021
aed1182
Use new_test_ext
koushiro Sep 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
apply suggestion
Signed-off-by: koushiro <[email protected]>
  • Loading branch information
koushiro committed Jun 17, 2021
commit 94ebe355f02a01195cb02e5eaeb808e177873c58
49 changes: 16 additions & 33 deletions frame/membership/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,23 +108,6 @@ pub mod pallet {
}
}

#[cfg(feature = "std")]
impl<T: Config<I>, I: 'static> GenesisConfig<T, I> {
/// Direct implementation of `GenesisBuild::build_storage`.
///
/// Kept in order not to break dependency.
pub fn build_storage(&self) -> Result<sp_runtime::Storage, String> {
<Self as GenesisBuild<T, I>>::build_storage(self)
}

/// Direct implementation of `GenesisBuild::assimilate_storage`.
///
/// Kept in order not to break dependency.
pub fn assimilate_storage(&self, storage: &mut sp_runtime::Storage) -> Result<(), String> {
<Self as GenesisBuild<T, I>>::assimilate_storage(self, storage)
}
}

#[pallet::genesis_build]
impl<T: Config<I>, I: 'static> GenesisBuild<T, I> for GenesisConfig<T, I> {
fn build(&self) {
Expand Down Expand Up @@ -173,7 +156,7 @@ 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) -> DispatchResultWithPostInfo {
pub fn add_member(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
T::AddOrigin::ensure_origin(origin)?;

let mut members = <Members<T, I>>::get();
Expand All @@ -186,14 +169,14 @@ pub mod pallet {
T::MembershipChanged::change_members_sorted(&[who], &[], &members[..]);

Self::deposit_event(Event::MemberAdded);
Ok(().into())
Ok(())
}

/// Remove a member `who` from the set.
///
/// May only be called from `T::RemoveOrigin`.
#[pallet::weight(50_000_000)]
pub fn remove_member(origin: OriginFor<T>, who: T::AccountId) -> DispatchResultWithPostInfo {
pub fn remove_member(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
T::RemoveOrigin::ensure_origin(origin)?;

let mut members = <Members<T, I>>::get();
Expand All @@ -207,7 +190,7 @@ pub mod pallet {
Self::rejig_prime(&members);

Self::deposit_event(Event::MemberRemoved);
Ok(().into())
Ok(())
}

/// Swap out one member `remove` for another `add`.
Expand All @@ -220,10 +203,10 @@ pub mod pallet {
origin: OriginFor<T>,
remove: T::AccountId,
add: T::AccountId
) -> DispatchResultWithPostInfo {
) -> DispatchResult {
T::SwapOrigin::ensure_origin(origin)?;

if remove == add { return Ok(().into()) }
if remove == add { return Ok(()) }

let mut members = <Members<T, I>>::get();
let location = members.binary_search(&remove).ok().ok_or(Error::<T, I>::NotMember)?;
Expand All @@ -242,15 +225,15 @@ pub mod pallet {
Self::rejig_prime(&members);

Self::deposit_event(Event::MembersSwapped);
Ok(().into())
Ok(())
}

/// Change the membership to a new set, disregarding the existing membership. Be nice and
/// pass `members` pre-sorted.
///
/// May only be called from `T::ResetOrigin`.
#[pallet::weight(50_000_000)]
pub fn reset_members(origin: OriginFor<T>, members: Vec<T::AccountId>) -> DispatchResultWithPostInfo {
pub fn reset_members(origin: OriginFor<T>, members: Vec<T::AccountId>) -> DispatchResult {
T::ResetOrigin::ensure_origin(origin)?;

let mut members = members;
Expand All @@ -263,7 +246,7 @@ pub mod pallet {
});

Self::deposit_event(Event::MembersReset);
Ok(().into())
Ok(())
}

/// Swap out the sending member for some other key `new`.
Expand All @@ -272,7 +255,7 @@ 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) -> DispatchResultWithPostInfo {
pub fn change_key(origin: OriginFor<T>, new: T::AccountId) -> DispatchResult {
let remove = ensure_signed(origin)?;

if remove != new {
Expand All @@ -298,30 +281,30 @@ pub mod pallet {
}

Self::deposit_event(Event::KeyChanged);
Ok(().into())
Ok(())
}

/// Set the prime member. Must be a current member.
///
/// May only be called from `T::PrimeOrigin`.
#[pallet::weight(50_000_000)]
pub fn set_prime(origin: OriginFor<T>, who: T::AccountId) -> DispatchResultWithPostInfo {
pub fn set_prime(origin: OriginFor<T>, who: T::AccountId) -> DispatchResult {
T::PrimeOrigin::ensure_origin(origin)?;
Self::members().binary_search(&who).ok().ok_or(Error::<T, I>::NotMember)?;
Prime::<T, I>::put(&who);
T::MembershipChanged::set_prime(Some(who));
Ok(().into())
Ok(())
}

/// Remove the prime member if it exists.
///
/// May only be called from `T::PrimeOrigin`.
#[pallet::weight(50_000_000)]
pub fn clear_prime(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
pub fn clear_prime(origin: OriginFor<T>) -> DispatchResult {
T::PrimeOrigin::ensure_origin(origin)?;
Prime::<T, I>::kill();
T::MembershipChanged::set_prime(None);
Ok(().into())
Ok(())
}
}
}
Expand Down Expand Up @@ -515,7 +498,7 @@ mod tests {
use sp_core::H256;
use sp_runtime::{traits::{BlakeTwo256, IdentityLookup, BadOrigin}, testing::Header};

use frame_support::{assert_ok, assert_noop, parameter_types, ord_parameter_types};
use frame_support::{assert_ok, assert_noop, parameter_types, ord_parameter_types, traits::GenesisBuild};
use frame_system::EnsureSignedBy;

type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
Expand Down