diff --git a/substrate/frame/assets/src/impl_fungibles.rs b/substrate/frame/assets/src/impl_fungibles.rs index 6e0a9ac08ebb136c740d094121b00870d753262d..b10b8c6b1075559681ebc4c7a05aa53a62ab6a0e 100644 --- a/substrate/frame/assets/src/impl_fungibles.rs +++ b/substrate/frame/assets/src/impl_fungibles.rs @@ -59,6 +59,10 @@ impl<T: Config<I>, I: 'static> fungibles::Inspect<<T as SystemConfig>::AccountId ) -> WithdrawConsequence<Self::Balance> { Pallet::<T, I>::can_decrease(asset, who, amount, false) } + + fn asset_exists(asset: Self::AssetId) -> bool { + Asset::<T, I>::contains_key(asset) + } } impl<T: Config<I>, I: 'static> fungibles::InspectMetadata<<T as SystemConfig>::AccountId> diff --git a/substrate/frame/support/src/traits/tokens/fungibles.rs b/substrate/frame/support/src/traits/tokens/fungibles.rs index 6cc6d70de15a72027961eda91b8a4a5136d1b910..045ecd05134c2abb89171fa864c66e4ef89016a1 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles.rs @@ -83,6 +83,9 @@ pub trait Inspect<AccountId> { who: &AccountId, amount: Self::Balance, ) -> WithdrawConsequence<Self::Balance>; + + /// Returns `true` if an `asset` exists. + fn asset_exists(asset: Self::AssetId) -> bool; } /// Trait for reading metadata from a fungible asset.