mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-19 00:41:03 +00:00
Return account's asset balances (#13352)
* Runtime method to get user's assets balances * Fix test (typo) * Update frame/assets/src/functions.rs * Remove instance param * Update frame/assets/src/functions.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Remove instance param * Refactor * Chore * Update doc --------- Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -924,4 +924,11 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
Ok(())
|
||||
})
|
||||
}
|
||||
|
||||
/// Returns all the non-zero balances for all assets of the given `account`.
|
||||
pub fn account_balances(account: T::AccountId) -> Vec<(T::AssetId, T::Balance)> {
|
||||
Asset::<T, I>::iter_keys()
|
||||
.filter_map(|id| Self::maybe_balance(id, account.clone()).map(|balance| (id, balance)))
|
||||
.collect::<Vec<_>>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,11 +37,14 @@ fn asset_ids() -> Vec<u32> {
|
||||
fn basic_minting_should_work() {
|
||||
new_test_ext().execute_with(|| {
|
||||
assert_ok!(Assets::force_create(RuntimeOrigin::root(), 0, 1, true, 1));
|
||||
assert_ok!(Assets::force_create(RuntimeOrigin::root(), 1, 1, true, 1));
|
||||
assert_ok!(Assets::mint(RuntimeOrigin::signed(1), 0, 1, 100));
|
||||
assert_eq!(Assets::balance(0, 1), 100);
|
||||
assert_ok!(Assets::mint(RuntimeOrigin::signed(1), 0, 2, 100));
|
||||
assert_eq!(Assets::balance(0, 2), 100);
|
||||
assert_eq!(asset_ids(), vec![0, 999]);
|
||||
assert_eq!(asset_ids(), vec![0, 1, 999]);
|
||||
assert_ok!(Assets::mint(RuntimeOrigin::signed(1), 1, 1, 100));
|
||||
assert_eq!(Assets::account_balances(1), vec![(0, 100), (999, 100), (1, 100)]);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user