Pallets: Assets destroy_accounts releases the deposit (#14443)

* assset accounts destroy releases the deposit

* enumerate

* Update frame/assets/src/functions.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* import defensive from frame_support

---------

Co-authored-by: Gavin Wood <gavin@parity.io>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: parity-processbot <>
This commit is contained in:
Muharem Ismailov
2023-07-01 17:48:53 +02:00
committed by GitHub
parent de52e76d52
commit 2f98b56393
2 changed files with 51 additions and 6 deletions
+34
View File
@@ -1741,3 +1741,37 @@ fn weights_sane() {
let info = crate::Call::<Test>::finish_destroy { id: 10 }.get_dispatch_info();
assert_eq!(<() as crate::WeightInfo>::finish_destroy(), info.weight);
}
#[test]
fn asset_destroy_refund_existence_deposit() {
new_test_ext().execute_with(|| {
assert_ok!(Assets::force_create(RuntimeOrigin::root(), 0, 1, false, 1));
Balances::make_free_balance_be(&1, 100);
let admin = 1;
let admin_origin = RuntimeOrigin::signed(admin);
let account2 = 2; // account with own deposit
let account3 = 3; // account with admin's deposit
Balances::make_free_balance_be(&account2, 100);
assert_eq!(Balances::reserved_balance(&account2), 0);
assert_eq!(Balances::reserved_balance(&account3), 0);
assert_eq!(Balances::reserved_balance(&admin), 0);
assert_ok!(Assets::touch(RuntimeOrigin::signed(account2), 0));
assert_ok!(Assets::touch_other(admin_origin.clone(), 0, account3));
assert_eq!(Balances::reserved_balance(&account2), 10);
assert_eq!(Balances::reserved_balance(&account3), 0);
assert_eq!(Balances::reserved_balance(&admin), 10);
assert_ok!(Assets::start_destroy(admin_origin.clone(), 0));
assert_ok!(Assets::destroy_accounts(admin_origin.clone(), 0));
assert_ok!(Assets::destroy_approvals(admin_origin.clone(), 0));
assert_ok!(Assets::finish_destroy(admin_origin.clone(), 0));
assert_eq!(Balances::reserved_balance(&account2), 0);
assert_eq!(Balances::reserved_balance(&account3), 0);
assert_eq!(Balances::reserved_balance(&admin), 0);
});
}