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
+1
View File
@@ -33,6 +33,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
) -> DispatchResult {
let class_details = Class::<T, I>::get(&class).ok_or(Error::<T, I>::UnknownClass)?;
ensure!(!class_details.is_frozen, Error::<T, I>::Frozen);
ensure!(!T::Locker::is_locked(class, instance), Error::<T, I>::Locked);
let mut details =
Asset::<T, I>::get(&class, &instance).ok_or(Error::<T, I>::UnknownClass)?;