--- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -59,6 +59,7 @@ Properties, PropertiesPermissionMap, PropertyKey, + PropertyValue, PropertyPermission, PropertiesError, PropertyKeyPermission, @@ -902,6 +903,12 @@ Ok(()) } + pub fn get_collection_property(collection_id: CollectionId, key: &PropertyKey) -> Option { + Self::collection_properties(collection_id) + .get(key) + .cloned() + } + pub fn bytes_keys_to_property_keys( keys: Vec>, ) -> Result, DispatchError> { @@ -1240,6 +1247,7 @@ fn token_owner(&self, token: TokenId) -> Option; fn const_metadata(&self, token: TokenId) -> Vec; + fn token_property(&self, token_id: TokenId, key: &PropertyKey) -> Option; fn token_properties(&self, token_id: TokenId, keys: Option>) -> Vec; /// Amount of unique collection tokens fn total_supply(&self) -> u32; --- a/pallets/fungible/src/common.rs +++ b/pallets/fungible/src/common.rs @@ -21,7 +21,7 @@ use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight}; use sp_runtime::ArithmeticError; use sp_std::{vec::Vec, vec}; -use up_data_structs::{Property, PropertyKey, PropertyKeyPermission}; +use up_data_structs::{Property, PropertyKey, PropertyValue, PropertyKeyPermission}; use crate::{ Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo, @@ -319,6 +319,10 @@ Vec::new() } + fn token_property(&self, _token_id: TokenId, _key: &PropertyKey) -> Option { + None + } + fn token_properties( &self, _token_id: TokenId, --- a/pallets/nonfungible/src/common.rs +++ b/pallets/nonfungible/src/common.rs @@ -19,7 +19,7 @@ use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight}; use up_data_structs::{ TokenId, CreateItemExData, CollectionId, budget::Budget, Property, PropertyKey, - PropertyKeyPermission, + PropertyKeyPermission, PropertyValue, }; use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight}; use sp_runtime::DispatchError; @@ -362,6 +362,12 @@ .into_inner() } + fn token_property(&self, token_id: TokenId, key: &PropertyKey) -> Option { + >::token_properties((self.id, token_id)) + .get(key) + .cloned() + } + fn token_properties(&self, token_id: TokenId, keys: Option>) -> Vec { let properties = >::token_properties((self.id, token_id)); --- a/pallets/refungible/src/common.rs +++ b/pallets/refungible/src/common.rs @@ -20,7 +20,7 @@ use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight}; use up_data_structs::{ CollectionId, TokenId, CreateItemExData, CreateRefungibleExData, budget::Budget, Property, - PropertyKey, PropertyKeyPermission, + PropertyKey, PropertyValue, PropertyKeyPermission, }; use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight}; use sp_runtime::DispatchError; @@ -340,6 +340,10 @@ .into_inner() } + fn token_property(&self, _token_id: TokenId, _key: &PropertyKey) -> Option { + None + } + fn token_properties( &self, _token_id: TokenId,