Skip to content

Commit 2f4ea46

Browse files
committed
feat: post-register hook
1 parent 5e7817e commit 2f4ea46

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

asset-registry/src/impls.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ where
2020
AssetId: AtLeast32BitUnsigned + Parameter + Member + TypeInfo + Default,
2121
T: Config<AssetId = AssetId>,
2222
{
23-
fn process_asset(id: Option<AssetId>, asset_metadata: Metadata) -> Result<(AssetId, Metadata), DispatchError> {
23+
fn pre_register(id: Option<AssetId>, asset_metadata: Metadata) -> Result<(AssetId, Metadata), DispatchError> {
2424
let next_id = LastAssetId::<T>::get()
2525
.map(|x| x.saturating_add(AssetId::one()))
2626
.unwrap_or_default();

asset-registry/src/lib.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub mod module {
4949

5050
/// A filter ran upon metadata registration that assigns an is and
5151
/// potentially modifies the supplied metadata.
52-
type OnRegisterAsset: AssetProcessor<Self::AssetId, AssetMetadata<Self::Balance, Self::CustomMetadata>>;
52+
type AssetProcessor: AssetProcessor<Self::AssetId, AssetMetadata<Self::Balance, Self::CustomMetadata>>;
5353

5454
/// The balance type.
5555
type Balance: Parameter + Member + AtLeast32BitUnsigned + Default + Copy;
@@ -194,7 +194,7 @@ impl<T: Config> Pallet<T> {
194194
metadata: AssetMetadata<T::Balance, T::CustomMetadata>,
195195
asset_id: Option<T::AssetId>,
196196
) -> DispatchResult {
197-
let (asset_id, metadata) = T::OnRegisterAsset::process_asset(asset_id, metadata)?;
197+
let (asset_id, metadata) = T::AssetProcessor::pre_register(asset_id, metadata)?;
198198

199199
Metadata::<T>::try_mutate(&asset_id, |maybe_metadata| -> DispatchResult {
200200
// make sure this asset id has not been registered yet
@@ -209,6 +209,8 @@ impl<T: Config> Pallet<T> {
209209
Self::do_insert_location(asset_id.clone(), location.clone())?;
210210
}
211211

212+
T::AssetProcessor::post_register(asset_id.clone(), metadata.clone())?;
213+
212214
Self::deposit_event(Event::<T>::RegisteredAsset { asset_id, metadata });
213215

214216
Ok(())

asset-registry/src/mock/para.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ impl orml_asset_registry::Config for Runtime {
105105
type AssetId = u32;
106106
type AuthorityOrigin = EnsureRoot<AccountId>;
107107
type CustomMetadata = CustomMetadata;
108-
type OnRegisterAsset =
108+
type AssetProcessor =
109109
orml_asset_registry::SequentialId<u32, orml_asset_registry::AssetMetadata<Balance, CustomMetadata>, Runtime>;
110110
type WeightInfo = ();
111111
}

traits/src/asset_registry.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@ pub trait FixedConversionRateProvider {
1010
}
1111

1212
pub trait AssetProcessor<AssetId, Metadata> {
13-
fn process_asset(id: Option<AssetId>, asset_metadata: Metadata) -> Result<(AssetId, Metadata), DispatchError>;
13+
fn pre_register(id: Option<AssetId>, asset_metadata: Metadata) -> Result<(AssetId, Metadata), DispatchError>;
14+
fn post_register(_id: AssetId, _asset_metadata: Metadata) -> Result<(), DispatchError> {
15+
Ok(())
16+
}
1417
}

0 commit comments

Comments
 (0)