mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-28 05:07:55 +00:00
UnionOf types for merged fungible and fungibles implementations (#2033)
Introduces `UnionOf` types, crafted to merge `fungible` and `fungibles` implementations or two `fungibles` implementations into a single type implementing `fungibles`. This also addresses an issue where `ItemOf` initiates a double drop for an imbalance type, leading to inaccurate total issuance accounting. Find the application of these types in this PR - [link](https://github.com/paritytech/polkadot-sdk/pull/2031), places in code - [1](https://github.com/paritytech/polkadot-sdk/blob/4ec7496fa2632385b08fae860fcf28a523a7b5de/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs#L327), [2](https://github.com/paritytech/polkadot-sdk/blob/4ec7496fa2632385b08fae860fcf28a523a7b5de/cumulus/parachains/runtimes/assets/asset-hub-kusama/src/lib.rs#L343). --------- Co-authored-by: Liam Aharon <liam.aharon@hotmail.com> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: joepetrowski <joe@parity.io>
This commit is contained in:
@@ -17,10 +17,13 @@
|
||||
|
||||
//! Implementation of `fungible` traits for Balances pallet.
|
||||
use super::*;
|
||||
use frame_support::traits::tokens::{
|
||||
Fortitude,
|
||||
Preservation::{self, Preserve, Protect},
|
||||
Provenance::{self, Minted},
|
||||
use frame_support::traits::{
|
||||
tokens::{
|
||||
Fortitude,
|
||||
Preservation::{self, Preserve, Protect},
|
||||
Provenance::{self, Minted},
|
||||
},
|
||||
AccountTouch,
|
||||
};
|
||||
|
||||
impl<T: Config<I>, I: 'static> fungible::Inspect<T::AccountId> for Pallet<T, I> {
|
||||
@@ -356,3 +359,16 @@ impl<T: Config<I>, I: 'static> fungible::Balanced<T::AccountId> for Pallet<T, I>
|
||||
}
|
||||
|
||||
impl<T: Config<I>, I: 'static> fungible::BalancedHold<T::AccountId> for Pallet<T, I> {}
|
||||
|
||||
impl<T: Config<I>, I: 'static> AccountTouch<(), T::AccountId> for Pallet<T, I> {
|
||||
type Balance = T::Balance;
|
||||
fn deposit_required(_: ()) -> Self::Balance {
|
||||
Self::Balance::zero()
|
||||
}
|
||||
fn should_touch(_: (), _: &T::AccountId) -> bool {
|
||||
false
|
||||
}
|
||||
fn touch(_: (), _: &T::AccountId, _: &T::AccountId) -> DispatchResult {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user