Skip to content

Commit bd82a15

Browse files
authored
Added create and transfer resolver (#821)
## Describe your changes Added create and transfer resolver.
2 parents 59a609b + 42951cb commit bd82a15

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

primitives/polkadex/src/assets.rs

+39-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@
1818

1919
use crate::Balance;
2020
use codec::{Decode, Encode, MaxEncodedLen};
21-
use frame_support::traits::{
22-
tokens::{Fortitude, Precision, Preservation},
23-
Get,
21+
use frame_support::{
22+
ensure,
23+
traits::{
24+
tokens::{Fortitude, Precision, Preservation},
25+
Get,
26+
},
2427
};
2528
use scale_info::TypeInfo;
2629
#[cfg(feature = "std")]
@@ -97,6 +100,39 @@ pub trait Resolver<
97100
}
98101
Ok(())
99102
}
103+
104+
/// Create New Asset
105+
fn resolve_create(
106+
asset: AssetId,
107+
admin: AccountId,
108+
min_balance: Balance,
109+
) -> Result<(), DispatchError> {
110+
ensure!(asset != NativeAssetId::get(), DispatchError::Other("Cannot create Native Asset"));
111+
ensure!(!Others::asset_exists(asset.into()), DispatchError::Other("Asset already exists"));
112+
Others::create(asset.into(), admin, true, min_balance.saturated_into())?;
113+
Ok(())
114+
}
115+
116+
///Transfer Asset
117+
fn resolve_transfer(
118+
asset: AssetId,
119+
from: &AccountId,
120+
to: &AccountId,
121+
amount: Balance,
122+
) -> Result<(), DispatchError> {
123+
if asset == NativeAssetId::get() {
124+
Native::transfer(from, to, amount.saturated_into(), Preservation::Preserve)?;
125+
} else {
126+
Others::transfer(
127+
asset.into(),
128+
from,
129+
to,
130+
amount.saturated_into(),
131+
Preservation::Preserve,
132+
)?;
133+
}
134+
Ok(())
135+
}
100136
}
101137

102138
/// Enumerated asset on chain

0 commit comments

Comments
 (0)