Dependency Injection Trait Locker for Uniques Pallet (#11025)

* Create a dependency injection trait named Locker that can be implemented downstream to enable locking of an asset. Use case defined in RMRK substrate pallet PR76

* Formatting

* Change impl Locker function name to is_locked

* Remove unused import

* Add docstring header

* Remove impl_locker file and add Locker trait to frame_support::traits

* Expose Locker from frame_support::traits::misc

* Formatting

* Move to tokens folder

* Move to tokens folder

* Format and remove Locker from misc traits

* Punctuation

* Update frame/support/src/traits/tokens/misc.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
This commit is contained in:
Joshua W
2022-04-28 06:05:18 -05:00
committed by GitHub
parent 3ecb5306eb
commit 21341f35e2
7 changed files with 27 additions and 3 deletions
+6 -1
View File
@@ -43,7 +43,7 @@ pub mod weights;
use codec::{Decode, Encode};
use frame_support::traits::{
BalanceStatus::Reserved, Currency, EnsureOriginWithArg, ReservableCurrency,
tokens::Locker, BalanceStatus::Reserved, Currency, EnsureOriginWithArg, ReservableCurrency,
};
use frame_system::Config as SystemConfig;
use sp_runtime::{
@@ -108,6 +108,9 @@ pub mod pallet {
Self::ClassId,
>;
/// Locker trait to enable Locking mechanism downstream.
type Locker: Locker<Self::ClassId, Self::InstanceId>;
/// The basic amount of funds that must be reserved for an asset class.
#[pallet::constant]
type ClassDeposit: Get<DepositBalanceOf<Self, I>>;
@@ -352,6 +355,8 @@ pub mod pallet {
Unapproved,
/// The named owner has not signed ownership of the class is acceptable.
Unaccepted,
/// The asset instance is locked.
Locked,
}
impl<T: Config<I>, I: 'static> Pallet<T, I> {