Improve call, and usage in pallet utility (#9418)

* WIP

* WIP

* WIP

* add some tests and limit

* remove wip test

* fmt

* Update bin/node/runtime/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* fmt

* use primitives allocation limit

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
Guillaume Thiolliere
2021-08-07 11:34:25 +02:00
committed by GitHub
parent 27d4177f93
commit 38db14089b
17 changed files with 197 additions and 92 deletions
+8 -8
View File
@@ -77,7 +77,7 @@ fn create_sub_accounts<T: Config>(
// Set identity so `set_subs` does not fail.
let _ = T::Currency::make_free_balance_be(&who, BalanceOf::<T>::max_value());
let info = create_identity_info::<T>(1);
Identity::<T>::set_identity(who_origin.clone().into(), info)?;
Identity::<T>::set_identity(who_origin.clone().into(), Box::new(info))?;
Ok(subs)
}
@@ -137,7 +137,7 @@ benchmarks! {
// Add an initial identity
let initial_info = create_identity_info::<T>(1);
Identity::<T>::set_identity(caller_origin.clone(), initial_info)?;
Identity::<T>::set_identity(caller_origin.clone(), Box::new(initial_info))?;
// User requests judgement from all the registrars, and they approve
for i in 0..r {
@@ -151,7 +151,7 @@ benchmarks! {
}
caller
};
}: _(RawOrigin::Signed(caller.clone()), create_identity_info::<T>(x))
}: _(RawOrigin::Signed(caller.clone()), Box::new(create_identity_info::<T>(x)))
verify {
assert_last_event::<T>(Event::<T>::IdentitySet(caller).into());
}
@@ -204,7 +204,7 @@ benchmarks! {
let info = create_identity_info::<T>(x);
let caller: T::AccountId = whitelisted_caller();
let caller_origin = <T as frame_system::Config>::Origin::from(RawOrigin::Signed(caller));
Identity::<T>::set_identity(caller_origin, info)?;
Identity::<T>::set_identity(caller_origin, Box::new(info))?;
};
// User requests judgement from all the registrars, and they approve
@@ -233,7 +233,7 @@ benchmarks! {
let info = create_identity_info::<T>(x);
let caller: T::AccountId = whitelisted_caller();
let caller_origin = <T as frame_system::Config>::Origin::from(RawOrigin::Signed(caller));
Identity::<T>::set_identity(caller_origin, info)?;
Identity::<T>::set_identity(caller_origin, Box::new(info))?;
};
}: _(RawOrigin::Signed(caller.clone()), r - 1, 10u32.into())
verify {
@@ -251,7 +251,7 @@ benchmarks! {
let info = create_identity_info::<T>(x);
let caller: T::AccountId = whitelisted_caller();
let caller_origin = <T as frame_system::Config>::Origin::from(RawOrigin::Signed(caller));
Identity::<T>::set_identity(caller_origin, info)?;
Identity::<T>::set_identity(caller_origin, Box::new(info))?;
};
Identity::<T>::request_judgement(caller_origin, r - 1, 10u32.into())?;
@@ -321,7 +321,7 @@ benchmarks! {
let r in 1 .. T::MaxRegistrars::get() - 1 => add_registrars::<T>(r)?;
let x in 1 .. T::MaxAdditionalFields::get() => {
let info = create_identity_info::<T>(x);
Identity::<T>::set_identity(user_origin.clone(), info)?;
Identity::<T>::set_identity(user_origin.clone(), Box::new(info))?;
};
Identity::<T>::add_registrar(RawOrigin::Root.into(), caller.clone())?;
@@ -342,7 +342,7 @@ benchmarks! {
let _ = T::Currency::make_free_balance_be(&target, BalanceOf::<T>::max_value());
let info = create_identity_info::<T>(x);
Identity::<T>::set_identity(target_origin.clone(), info)?;
Identity::<T>::set_identity(target_origin.clone(), Box::new(info))?;
let _ = add_sub_accounts::<T>(&target, s)?;
// User requests judgement from all the registrars, and they approve
+7 -4
View File
@@ -335,7 +335,7 @@ pub mod pallet {
))]
pub fn set_identity(
origin: OriginFor<T>,
info: IdentityInfo<T::MaxAdditionalFields>,
info: Box<IdentityInfo<T::MaxAdditionalFields>>,
) -> DispatchResultWithPostInfo {
let sender = ensure_signed(origin)?;
let extra_fields = info.additional.len() as u32;
@@ -346,11 +346,14 @@ pub mod pallet {
Some(mut id) => {
// Only keep non-positive judgements.
id.judgements.retain(|j| j.1.is_sticky());
id.info = info;
id.info = *info;
id
},
None =>
Registration { info, judgements: BoundedVec::default(), deposit: Zero::zero() },
None => Registration {
info: *info,
judgements: BoundedVec::default(),
deposit: Zero::zero(),
},
};
let old_deposit = id.deposit;
+14 -14
View File
@@ -150,7 +150,7 @@ fn editing_subaccounts_should_work() {
assert_noop!(Identity::add_sub(Origin::signed(10), 20, data(1)), Error::<Test>::NoIdentity);
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
// first sub account
assert_ok!(Identity::add_sub(Origin::signed(10), 1, data(1)));
@@ -195,8 +195,8 @@ fn resolving_subaccount_ownership_works() {
new_test_ext().execute_with(|| {
let data = |x| Data::Raw(vec![x; 1].try_into().unwrap());
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(20), twenty()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::set_identity(Origin::signed(20), Box::new(twenty())));
// 10 claims 1 as a subaccount
assert_ok!(Identity::add_sub(Origin::signed(10), 1, data(1)));
@@ -266,7 +266,7 @@ fn registration_should_work() {
three_fields.additional.try_push(Default::default()).unwrap();
three_fields.additional.try_push(Default::default()).unwrap();
assert_eq!(three_fields.additional.try_push(Default::default()), Err(()));
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_eq!(Identity::identity(10).unwrap().info, ten());
assert_eq!(Balances::free_balance(10), 90);
assert_ok!(Identity::clear_identity(Origin::signed(10)));
@@ -289,7 +289,7 @@ fn uninvited_judgement_should_work() {
Error::<Test>::InvalidTarget
);
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_noop!(
Identity::provide_judgement(Origin::signed(10), 0, 10, Judgement::Reasonable),
Error::<Test>::InvalidIndex
@@ -308,7 +308,7 @@ fn uninvited_judgement_should_work() {
fn clearing_judgement_should_work() {
new_test_ext().execute_with(|| {
assert_ok!(Identity::add_registrar(Origin::signed(1), 3));
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::provide_judgement(Origin::signed(3), 0, 10, Judgement::Reasonable));
assert_ok!(Identity::clear_identity(Origin::signed(10)));
assert_eq!(Identity::identity(10), None);
@@ -318,7 +318,7 @@ fn clearing_judgement_should_work() {
#[test]
fn killing_slashing_should_work() {
new_test_ext().execute_with(|| {
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_noop!(Identity::kill_identity(Origin::signed(1), 10), BadOrigin);
assert_ok!(Identity::kill_identity(Origin::signed(2), 10));
assert_eq!(Identity::identity(10), None);
@@ -333,7 +333,7 @@ fn setting_subaccounts_should_work() {
let mut subs = vec![(20, Data::Raw(vec![40; 1].try_into().unwrap()))];
assert_noop!(Identity::set_subs(Origin::signed(10), subs.clone()), Error::<Test>::NotFound);
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::set_subs(Origin::signed(10), subs.clone()));
assert_eq!(Balances::free_balance(10), 80);
assert_eq!(Identity::subs_of(10), (10, vec![20].try_into().unwrap()));
@@ -374,7 +374,7 @@ fn setting_subaccounts_should_work() {
#[test]
fn clearing_account_should_remove_subaccounts_and_refund() {
new_test_ext().execute_with(|| {
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::set_subs(
Origin::signed(10),
vec![(20, Data::Raw(vec![40; 1].try_into().unwrap()))]
@@ -388,7 +388,7 @@ fn clearing_account_should_remove_subaccounts_and_refund() {
#[test]
fn killing_account_should_remove_subaccounts_and_not_refund() {
new_test_ext().execute_with(|| {
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::set_subs(
Origin::signed(10),
vec![(20, Data::Raw(vec![40; 1].try_into().unwrap()))]
@@ -405,7 +405,7 @@ fn cancelling_requested_judgement_should_work() {
assert_ok!(Identity::add_registrar(Origin::signed(1), 3));
assert_ok!(Identity::set_fee(Origin::signed(3), 0, 10));
assert_noop!(Identity::cancel_request(Origin::signed(10), 0), Error::<Test>::NoIdentity);
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_ok!(Identity::request_judgement(Origin::signed(10), 0, 10));
assert_ok!(Identity::cancel_request(Origin::signed(10), 0));
assert_eq!(Balances::free_balance(10), 90);
@@ -424,7 +424,7 @@ fn requesting_judgement_should_work() {
new_test_ext().execute_with(|| {
assert_ok!(Identity::add_registrar(Origin::signed(1), 3));
assert_ok!(Identity::set_fee(Origin::signed(3), 0, 10));
assert_ok!(Identity::set_identity(Origin::signed(10), ten()));
assert_ok!(Identity::set_identity(Origin::signed(10), Box::new(ten())));
assert_noop!(
Identity::request_judgement(Origin::signed(10), 0, 9),
Error::<Test>::FeeChanged
@@ -465,7 +465,7 @@ fn field_deposit_should_work() {
assert_ok!(Identity::set_fee(Origin::signed(3), 0, 10));
assert_ok!(Identity::set_identity(
Origin::signed(10),
IdentityInfo {
Box::new(IdentityInfo {
additional: vec![
(
Data::Raw(b"number".to_vec().try_into().unwrap()),
@@ -479,7 +479,7 @@ fn field_deposit_should_work() {
.try_into()
.unwrap(),
..Default::default()
}
})
));
assert_eq!(Balances::free_balance(10), 70);
});