BREAKING: Rename Origin (#12258)

* BREAKING: Rename Origin

* more renaming

* a bit more renaming

* fix

* more fixing

* fix in frame_support

* even more fixes

* fix

* small fix

* ...

* update .stderr

* docs

* update docs

* update docs

* docs
This commit is contained in:
Sergej Sakac
2022-09-21 00:13:09 +02:00
committed by GitHub
parent 986d20b352
commit e4b6f4a66d
221 changed files with 5233 additions and 4200 deletions
+14 -14
View File
@@ -241,12 +241,12 @@ impl<T: Config<I>, I: 'static> GetMaxVoters for Pallet<T, I> {
/// Guard to ensure that the given origin is a member of the collective. The rank of the member is
/// the `Success` value.
pub struct EnsureRanked<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
for EnsureRanked<T, I, MIN_RANK>
{
type Success = Rank;
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
let who = frame_system::EnsureSigned::try_origin(o)?;
match Members::<T, I>::get(&who) {
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok(rank),
@@ -255,13 +255,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
}
#[cfg(feature = "runtime-benchmarks")]
fn try_successful_origin() -> Result<T::Origin, ()> {
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
Ok(frame_system::RawOrigin::Signed(who).into())
}
#[cfg(feature = "runtime-benchmarks")]
fn successful_origin() -> T::Origin {
fn successful_origin() -> T::RuntimeOrigin {
match Self::try_successful_origin() {
Ok(o) => o,
Err(()) => {
@@ -277,12 +277,12 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
/// Guard to ensure that the given origin is a member of the collective. The account ID of the
/// member is the `Success` value.
pub struct EnsureMember<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
for EnsureMember<T, I, MIN_RANK>
{
type Success = T::AccountId;
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
let who = frame_system::EnsureSigned::try_origin(o)?;
match Members::<T, I>::get(&who) {
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok(who),
@@ -291,13 +291,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
}
#[cfg(feature = "runtime-benchmarks")]
fn try_successful_origin() -> Result<T::Origin, ()> {
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
Ok(frame_system::RawOrigin::Signed(who).into())
}
#[cfg(feature = "runtime-benchmarks")]
fn successful_origin() -> T::Origin {
fn successful_origin() -> T::RuntimeOrigin {
match Self::try_successful_origin() {
Ok(o) => o,
Err(()) => {
@@ -313,12 +313,12 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
/// Guard to ensure that the given origin is a member of the collective. The pair of including both
/// the account ID and the rank of the member is the `Success` value.
pub struct EnsureRankedMember<T, I, const MIN_RANK: u16>(PhantomData<(T, I)>);
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::RuntimeOrigin>
for EnsureRankedMember<T, I, MIN_RANK>
{
type Success = (T::AccountId, Rank);
fn try_origin(o: T::Origin) -> Result<Self::Success, T::Origin> {
fn try_origin(o: T::RuntimeOrigin) -> Result<Self::Success, T::RuntimeOrigin> {
let who = frame_system::EnsureSigned::try_origin(o)?;
match Members::<T, I>::get(&who) {
Some(MemberRecord { rank, .. }) if rank >= MIN_RANK => Ok((who, rank)),
@@ -327,13 +327,13 @@ impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<T::Origin>
}
#[cfg(feature = "runtime-benchmarks")]
fn try_successful_origin() -> Result<T::Origin, ()> {
fn try_successful_origin() -> Result<T::RuntimeOrigin, ()> {
let who = IndexToId::<T, I>::get(MIN_RANK, 0).ok_or(())?;
Ok(frame_system::RawOrigin::Signed(who).into())
}
#[cfg(feature = "runtime-benchmarks")]
fn successful_origin() -> T::Origin {
fn successful_origin() -> T::RuntimeOrigin {
match Self::try_successful_origin() {
Ok(o) => o,
Err(()) => {
@@ -367,11 +367,11 @@ pub mod pallet {
/// The origin required to add or promote a mmember. The success value indicates the
/// maximum rank *to which* the promotion may be.
type PromoteOrigin: EnsureOrigin<Self::Origin, Success = Rank>;
type PromoteOrigin: EnsureOrigin<Self::RuntimeOrigin, Success = Rank>;
/// The origin required to demote or remove a member. The success value indicates the
/// maximum rank *from which* the demotion/removal may be.
type DemoteOrigin: EnsureOrigin<Self::Origin, Success = Rank>;
type DemoteOrigin: EnsureOrigin<Self::RuntimeOrigin, Success = Rank>;
/// The polling system used for our voting.
type Polls: Polling<TallyOf<Self, I>, Votes = Votes, Moment = Self::BlockNumber>;
+133 -102
View File
@@ -58,7 +58,7 @@ impl frame_system::Config for Test {
type BlockWeights = ();
type BlockLength = ();
type DbWeight = ();
type Origin = Origin;
type RuntimeOrigin = RuntimeOrigin;
type Index = u64;
type BlockNumber = u64;
type RuntimeCall = RuntimeCall;
@@ -239,10 +239,10 @@ fn basic_stuff() {
#[test]
fn member_lifecycle_works() {
new_test_ext().execute_with(|| {
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 0);
assert_eq!(member_count(1), 0);
});
@@ -251,29 +251,29 @@ fn member_lifecycle_works() {
#[test]
fn add_remove_works() {
new_test_ext().execute_with(|| {
assert_noop!(Club::add_member(Origin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::add_member(Origin::root(), 1));
assert_noop!(Club::add_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 1);
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 0);
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 1);
assert_ok!(Club::add_member(Origin::root(), 2));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
assert_eq!(member_count(0), 2);
assert_ok!(Club::add_member(Origin::root(), 3));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
assert_eq!(member_count(0), 3);
assert_ok!(Club::demote_member(Origin::root(), 3));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 3));
assert_eq!(member_count(0), 2);
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 1);
assert_ok!(Club::demote_member(Origin::root(), 2));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 2));
assert_eq!(member_count(0), 0);
});
}
@@ -281,29 +281,29 @@ fn add_remove_works() {
#[test]
fn promote_demote_works() {
new_test_ext().execute_with(|| {
assert_noop!(Club::add_member(Origin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::add_member(Origin::root(), 1));
assert_noop!(Club::add_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 1);
assert_eq!(member_count(1), 0);
assert_ok!(Club::add_member(Origin::root(), 2));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
assert_eq!(member_count(0), 2);
assert_eq!(member_count(1), 0);
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 2);
assert_eq!(member_count(1), 1);
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_eq!(member_count(0), 2);
assert_eq!(member_count(1), 2);
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 2);
assert_eq!(member_count(1), 1);
assert_noop!(Club::demote_member(Origin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::demote_member(Origin::root(), 1));
assert_noop!(Club::demote_member(RuntimeOrigin::signed(1), 1), DispatchError::BadOrigin);
assert_ok!(Club::demote_member(RuntimeOrigin::root(), 1));
assert_eq!(member_count(0), 1);
assert_eq!(member_count(1), 1);
});
@@ -312,88 +312,100 @@ fn promote_demote_works() {
#[test]
fn promote_demote_by_rank_works() {
new_test_ext().execute_with(|| {
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
for _ in 0..7 {
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
}
// #1 can add #2 and promote to rank 1
assert_ok!(Club::add_member(Origin::signed(1), 2));
assert_ok!(Club::promote_member(Origin::signed(1), 2));
assert_ok!(Club::add_member(RuntimeOrigin::signed(1), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
// #2 as rank 1 cannot do anything privileged
assert_noop!(Club::add_member(Origin::signed(2), 3), BadOrigin);
assert_noop!(Club::add_member(RuntimeOrigin::signed(2), 3), BadOrigin);
assert_ok!(Club::promote_member(Origin::signed(1), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
// #2 as rank 2 can add #3.
assert_ok!(Club::add_member(Origin::signed(2), 3));
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 3));
// #2 as rank 2 cannot promote #3 to rank 1
assert_noop!(Club::promote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
assert_noop!(
Club::promote_member(RuntimeOrigin::signed(2), 3),
Error::<Test>::NoPermission
);
// #1 as rank 7 can promote #2 only up to rank 5 and once there cannot demote them.
assert_ok!(Club::promote_member(Origin::signed(1), 2));
assert_ok!(Club::promote_member(Origin::signed(1), 2));
assert_ok!(Club::promote_member(Origin::signed(1), 2));
assert_noop!(Club::promote_member(Origin::signed(1), 2), Error::<Test>::NoPermission);
assert_noop!(Club::demote_member(Origin::signed(1), 2), Error::<Test>::NoPermission);
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(1), 2));
assert_noop!(
Club::promote_member(RuntimeOrigin::signed(1), 2),
Error::<Test>::NoPermission
);
assert_noop!(Club::demote_member(RuntimeOrigin::signed(1), 2), Error::<Test>::NoPermission);
// #2 as rank 5 can promote #3 only up to rank 3 and once there cannot demote them.
assert_ok!(Club::promote_member(Origin::signed(2), 3));
assert_ok!(Club::promote_member(Origin::signed(2), 3));
assert_ok!(Club::promote_member(Origin::signed(2), 3));
assert_noop!(Club::promote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
assert_noop!(Club::demote_member(Origin::signed(2), 3), Error::<Test>::NoPermission);
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 3));
assert_noop!(
Club::promote_member(RuntimeOrigin::signed(2), 3),
Error::<Test>::NoPermission
);
assert_noop!(Club::demote_member(RuntimeOrigin::signed(2), 3), Error::<Test>::NoPermission);
// #2 can add #4 & #5 as rank 0 and #6 & #7 as rank 1.
assert_ok!(Club::add_member(Origin::signed(2), 4));
assert_ok!(Club::add_member(Origin::signed(2), 5));
assert_ok!(Club::add_member(Origin::signed(2), 6));
assert_ok!(Club::promote_member(Origin::signed(2), 6));
assert_ok!(Club::add_member(Origin::signed(2), 7));
assert_ok!(Club::promote_member(Origin::signed(2), 7));
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 4));
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 5));
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 6));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 6));
assert_ok!(Club::add_member(RuntimeOrigin::signed(2), 7));
assert_ok!(Club::promote_member(RuntimeOrigin::signed(2), 7));
// #3 as rank 3 can demote/remove #4 & #5 but not #6 & #7
assert_ok!(Club::demote_member(Origin::signed(3), 4));
assert_ok!(Club::remove_member(Origin::signed(3), 5, 0));
assert_noop!(Club::demote_member(Origin::signed(3), 6), Error::<Test>::NoPermission);
assert_noop!(Club::remove_member(Origin::signed(3), 7, 1), Error::<Test>::NoPermission);
assert_ok!(Club::demote_member(RuntimeOrigin::signed(3), 4));
assert_ok!(Club::remove_member(RuntimeOrigin::signed(3), 5, 0));
assert_noop!(Club::demote_member(RuntimeOrigin::signed(3), 6), Error::<Test>::NoPermission);
assert_noop!(
Club::remove_member(RuntimeOrigin::signed(3), 7, 1),
Error::<Test>::NoPermission
);
// #2 as rank 5 can demote/remove #6 & #7
assert_ok!(Club::demote_member(Origin::signed(2), 6));
assert_ok!(Club::remove_member(Origin::signed(2), 7, 1));
assert_ok!(Club::demote_member(RuntimeOrigin::signed(2), 6));
assert_ok!(Club::remove_member(RuntimeOrigin::signed(2), 7, 1));
});
}
#[test]
fn voting_works() {
new_test_ext().execute_with(|| {
assert_ok!(Club::add_member(Origin::root(), 0));
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::add_member(Origin::root(), 2));
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::add_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 0));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_noop!(Club::vote(Origin::signed(0), 3, true), Error::<Test>::RankTooLow);
assert_noop!(Club::vote(RuntimeOrigin::signed(0), 3, true), Error::<Test>::RankTooLow);
assert_eq!(tally(3), Tally::from_parts(0, 0, 0));
assert_ok!(Club::vote(Origin::signed(1), 3, true));
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, true));
assert_eq!(tally(3), Tally::from_parts(1, 1, 0));
assert_ok!(Club::vote(Origin::signed(1), 3, false));
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, false));
assert_eq!(tally(3), Tally::from_parts(0, 0, 1));
assert_ok!(Club::vote(Origin::signed(2), 3, true));
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, true));
assert_eq!(tally(3), Tally::from_parts(1, 3, 1));
assert_ok!(Club::vote(Origin::signed(2), 3, false));
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, false));
assert_eq!(tally(3), Tally::from_parts(0, 0, 4));
assert_ok!(Club::vote(Origin::signed(3), 3, true));
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, true));
assert_eq!(tally(3), Tally::from_parts(1, 6, 4));
assert_ok!(Club::vote(Origin::signed(3), 3, false));
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, false));
assert_eq!(tally(3), Tally::from_parts(0, 0, 10));
});
}
@@ -401,59 +413,78 @@ fn voting_works() {
#[test]
fn cleanup_works() {
new_test_ext().execute_with(|| {
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::add_member(Origin::root(), 2));
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::add_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::vote(Origin::signed(1), 3, true));
assert_ok!(Club::vote(Origin::signed(2), 3, false));
assert_ok!(Club::vote(Origin::signed(3), 3, true));
assert_ok!(Club::vote(RuntimeOrigin::signed(1), 3, true));
assert_ok!(Club::vote(RuntimeOrigin::signed(2), 3, false));
assert_ok!(Club::vote(RuntimeOrigin::signed(3), 3, true));
assert_noop!(Club::cleanup_poll(Origin::signed(4), 3, 10), Error::<Test>::Ongoing);
assert_noop!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10), Error::<Test>::Ongoing);
Polls::set(
vec![(1, Completed(1, true)), (2, Completed(2, false)), (3, Completed(3, true))]
.into_iter()
.collect(),
);
assert_ok!(Club::cleanup_poll(Origin::signed(4), 3, 10));
assert_ok!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10));
// NOTE: This will fail until #10016 is merged.
// assert_noop!(Club::cleanup_poll(Origin::signed(4), 3, 10), Error::<Test>::NoneRemaining);
// assert_noop!(Club::cleanup_poll(RuntimeOrigin::signed(4), 3, 10),
// Error::<Test>::NoneRemaining);
});
}
#[test]
fn ensure_ranked_works() {
new_test_ext().execute_with(|| {
assert_ok!(Club::add_member(Origin::root(), 1));
assert_ok!(Club::promote_member(Origin::root(), 1));
assert_ok!(Club::add_member(Origin::root(), 2));
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::promote_member(Origin::root(), 2));
assert_ok!(Club::add_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::promote_member(Origin::root(), 3));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 1));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 2));
assert_ok!(Club::add_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
assert_ok!(Club::promote_member(RuntimeOrigin::root(), 3));
use frame_support::traits::OriginTrait;
type Rank1 = EnsureRanked<Test, (), 1>;
type Rank2 = EnsureRanked<Test, (), 2>;
type Rank3 = EnsureRanked<Test, (), 3>;
type Rank4 = EnsureRanked<Test, (), 4>;
assert_eq!(Rank1::try_origin(Origin::signed(1)).unwrap(), 1);
assert_eq!(Rank1::try_origin(Origin::signed(2)).unwrap(), 2);
assert_eq!(Rank1::try_origin(Origin::signed(3)).unwrap(), 3);
assert_eq!(Rank2::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
assert_eq!(Rank2::try_origin(Origin::signed(2)).unwrap(), 2);
assert_eq!(Rank2::try_origin(Origin::signed(3)).unwrap(), 3);
assert_eq!(Rank3::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
assert_eq!(Rank3::try_origin(Origin::signed(2)).unwrap_err().as_signed().unwrap(), 2);
assert_eq!(Rank3::try_origin(Origin::signed(3)).unwrap(), 3);
assert_eq!(Rank4::try_origin(Origin::signed(1)).unwrap_err().as_signed().unwrap(), 1);
assert_eq!(Rank4::try_origin(Origin::signed(2)).unwrap_err().as_signed().unwrap(), 2);
assert_eq!(Rank4::try_origin(Origin::signed(3)).unwrap_err().as_signed().unwrap(), 3);
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(1)).unwrap(), 1);
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(2)).unwrap(), 2);
assert_eq!(Rank1::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
assert_eq!(
Rank2::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
1
);
assert_eq!(Rank2::try_origin(RuntimeOrigin::signed(2)).unwrap(), 2);
assert_eq!(Rank2::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
assert_eq!(
Rank3::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
1
);
assert_eq!(
Rank3::try_origin(RuntimeOrigin::signed(2)).unwrap_err().as_signed().unwrap(),
2
);
assert_eq!(Rank3::try_origin(RuntimeOrigin::signed(3)).unwrap(), 3);
assert_eq!(
Rank4::try_origin(RuntimeOrigin::signed(1)).unwrap_err().as_signed().unwrap(),
1
);
assert_eq!(
Rank4::try_origin(RuntimeOrigin::signed(2)).unwrap_err().as_signed().unwrap(),
2
);
assert_eq!(
Rank4::try_origin(RuntimeOrigin::signed(3)).unwrap_err().as_signed().unwrap(),
3
);
});
}