Minor Uniques pallet improvements and XCM v3 preparations (#10896)

* Introduce Helper to Uniques for benchmark stuff

* Fixes

* Formatting

* Featuregate the Helper, include ContainsPair

* Introduce & use EnsureOriginWithArg

* Benchmarking

* Docs

* More ContainsBoth helpers

* Formatting

* Formatting

* Fixes

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
This commit is contained in:
Gavin Wood
2022-03-07 09:12:03 +01:00
committed by GitHub
parent 6f59a8b183
commit 2c373c1e16
12 changed files with 422 additions and 118 deletions
+18
View File
@@ -196,6 +196,9 @@ fn origin_guards_should_work() {
new_test_ext().execute_with(|| {
assert_ok!(Uniques::force_create(Origin::root(), 0, 1, true));
assert_ok!(Uniques::mint(Origin::signed(1), 0, 42, 1));
Balances::make_free_balance_be(&2, 100);
assert_ok!(Uniques::set_accept_ownership(Origin::signed(2), Some(0)));
assert_noop!(
Uniques::transfer_ownership(Origin::signed(2), 0, 2),
Error::<Test>::NoPermission
@@ -218,13 +221,20 @@ fn transfer_owner_should_work() {
Balances::make_free_balance_be(&3, 100);
assert_ok!(Uniques::create(Origin::signed(1), 0, 1));
assert_eq!(classes(), vec![(1, 0)]);
assert_noop!(
Uniques::transfer_ownership(Origin::signed(1), 0, 2),
Error::<Test>::Unaccepted
);
assert_ok!(Uniques::set_accept_ownership(Origin::signed(2), Some(0)));
assert_ok!(Uniques::transfer_ownership(Origin::signed(1), 0, 2));
assert_eq!(classes(), vec![(2, 0)]);
assert_eq!(Balances::total_balance(&1), 98);
assert_eq!(Balances::total_balance(&2), 102);
assert_eq!(Balances::reserved_balance(&1), 0);
assert_eq!(Balances::reserved_balance(&2), 2);
assert_ok!(Uniques::set_accept_ownership(Origin::signed(1), Some(0)));
assert_noop!(
Uniques::transfer_ownership(Origin::signed(1), 0, 1),
Error::<Test>::NoPermission
@@ -234,12 +244,20 @@ fn transfer_owner_should_work() {
assert_ok!(Uniques::set_class_metadata(Origin::signed(2), 0, bvec![0u8; 20], false));
assert_ok!(Uniques::mint(Origin::signed(1), 0, 42, 1));
assert_ok!(Uniques::set_metadata(Origin::signed(2), 0, 42, bvec![0u8; 20], false));
assert_ok!(Uniques::set_accept_ownership(Origin::signed(3), Some(0)));
assert_ok!(Uniques::transfer_ownership(Origin::signed(2), 0, 3));
assert_eq!(classes(), vec![(3, 0)]);
assert_eq!(Balances::total_balance(&2), 57);
assert_eq!(Balances::total_balance(&3), 145);
assert_eq!(Balances::reserved_balance(&2), 0);
assert_eq!(Balances::reserved_balance(&3), 45);
// 2's acceptence from before is reset when it became owner, so it cannot be transfered
// without a fresh acceptance.
assert_noop!(
Uniques::transfer_ownership(Origin::signed(3), 0, 2),
Error::<Test>::Unaccepted
);
});
}